GA 알고리즘을 이용한 최대, 최소값 찾기
- 최초 등록일
- 2011.12.12
- 최종 저작일
- 2008.06
- 12페이지/
한컴오피스
- 가격 2,000원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
GA 알고리즘을 이용한 최대, 최소값 찾기, MATLAB 프로그램 코드
목차
Problem 1.
1. Representation
2. Initial Population
3. Evaluation
4. Selection
5. Crossover
6. Mutation
7. Check Fitness
8. 결과
Problem 2.
Matlab Program.
1. Main
2. initialize.m
3. bi2dec.m
4. roulette.m
5. selection.m
6. crossover.m
7. mutate.m
8. check.m
본문내용
1. Representation
x1, x2의 실수값을 binary string 으로 표현한다.
requirement : 소수점 5째 자리까지 표현
정규화 하면,
chromosome을 생성하기 위한 최소 bit수를 각각 m1, m2라고 하면
< 1510000 ≤ -1, < 170000 ≤ -1
∴ =21, =18
따라서 chromosome 필요 비트수는 39(m1+m2)개가 된다.
39개의 비트로 만들어진 정규화된 데이터를 원래의 데이터와 mapping 시킨다.
즉, x1의 -3은 000000000000000000000, 12.1은 *************11111111가 되고,
x2의 4.1은 000000000000000000, 5.8은 *************11111가 된다.
2. Initial Population
초기 Population은 39(m1+m2)개의 Bit로 임의로 생성한다. Popsize는 20개로 결정하였다.
>> Gen = round(rand(popsize,(m1+m2)));
결과값은 위와 같이 각 chromosome의 population의 열거로 출력된다.
결과값을 정규화하기 전 값을 알기 위하여 bi2dec() 라는 함수를 만들어 실행하였다.
v = bi2dec(Gen,m1,m2,x1min,x1max,x2min,x2max)
3. Evaluation
생성된 genotype(binary)의 v를 phenotype(decimal)의 x1과 x2로 변환한다.
그런다음 를 이용하여 fitness를 측정한다.
x1 = v(:,1);
x2 = v(:,2);
fitness = 21.5 + x1 .* sin(4*pi.*x1) + x2 .* sin(20*pi.*x2);
4. Selection
정해진 fitness에 따라서 다음 세대를 생성하기 위해 Roulette Wheel method를 이용한다.
적용시키는 단계는 다음과 같다.
1) fitness의 총합을 계산한다.
참고 자료
없음