-
- 유전체 생성
(w:f,b:i)인 유전체 4개 생성한다.
이때$$w$ 의 범위는$0$ 부터 입력 데이터의 최대 기울기까지,$b$ 의 범위는 0부터 입력 데이터의 최대값으로 정하여 설정하였다.
이럴 경우 의미없는 염기를 선택하지 않을 수 있다.
- 유전체 생성
-
- 유전체 적합도측정
유전체가 가지는
$Err$ 값의 역수를 이용한$F=\frac{1}{Err}$ 을 적합도로 정한다. 즉 에러값이 작을 수록 적합도가 커지게 된다.
- 유전체 적합도측정
유전체가 가지는
-
- 유전체 교차선택
가중치는
$\frac{F_{i}}{\sum{F}}$ 로 정하여 가중치에 따라 유전체 2개를 선택한다.
가중치에 따라 선택된 유전체$[w_{1},b_{1}], [w_{2},b_{2}] \Rightarrow [w_{1},b_{2}],[w_{2},b_{1}]$ 로 교차시킨다.
이때 교차는$100$ % 일어나는 것으로 한다.
- 유전체 교차선택
가중치는
-
- 염기의 변이
특정한 확률에 따라 염기를 변이 시킨다. 이때 변이의$Range$ 는 최초 생성될때의$w,b$ 와 같게 설정하였다.
- 염기의 변이
-
반복 2~4 과정을 우리가 원하는 적합도에 도달하는 유전자가 등장 할 때까지 반복시킨다.
위 함수를 통하여 만들어진 데이터를 이용하였다. 데이터를 산점도로 확인하면 아래와 같다.
데이터셋과
변이 확률이
| ---AveGen--- | ---p_{mu}--- |
|---|---|
| 2000 | 0.005 |
| 1061 | 0.01 |
| 268 | |
| 84 | 0.1 |
변이 확률이 높을수록 목표에 점차 빨리 도달하는 것을 알 수 있다.
전체데이터는 첨부된 ResultDataAboutMu 에서 확인 가능하다.
돌연변이 확률을
요구오차
https://user-images.githubusercontent.com/102293576/174293365-d6bd9c3f-937a-4f59-8796-3810b05bb8c4.png
다음과 같은 산점도가 그려지게 되는 것을 확인했다.
네 유전체가 비슷한 오차값을 유지하며 진행되면서 변이가 발생할 때마다 값이 이탈되는 것이 보인다.
그러다 좋은 값으로 변이가 이루어 졌을 경우 이후 세대부터는 어느정도 감소된 오류감으로 전체적으로 수렴하는 과정이 이루어진다.
이 유전체는
전체 데이터는 ResultDataAboutErr 에서 확인가능하다.