유전 알고리즘: 두 판 사이의 차이

내용 삭제됨 내용 추가됨
Namobot (토론 | 기여)
봇: 인용 틀 변수 이름 수정
알타리 (토론 | 기여)
편집 요약 없음
12번째 줄:
== 구성 ==
=== 요구 조건 ===
유전 알고리즘을 어떤 문제에 적용하기 위해서는 해를 [[유전자]]의 형식으로 표현할 수 있어야 하며, 이 해가 얼마나 적합한지를 [[적합도 함수]]를 통해 계산할 수 있어야 한다. 일반 생명체의 특성이 [[게놈|유전체]]의 집합인 [[유전자]]로 나타나는 것과 같이, 유전 알고리즘에서는 해의 특성을 숫자의 배열이나 문자열과 같은 자료 구조를 통해서 표시하게 된다. 적합도 함수는 이렇게 나타내어진 해가 얼마나 문제의 답으로 적합한지를 평가하기 위한 함수이다. 이는 실세계의 생명체가 유전적 특성에 따라 환경에 얼마나 잘 적응할 수 있는지가 결정되는 것과 비교할 수 있다.
 
=== 흐름 ===
45번째 줄:
 
== 예 ==
{1, 5, 6, 8, 3, 7, 3, 5, 9, 0} 중 3개를 골라서 20으로 만드는 문제가 있다고 하자. 여기서 유전체는[[게놈|유전체]]는 각 숫자이며, 각 해의 유전자는 (1,5,3)와 같이 [[게놈|유전체]] 3개의 집합으로 이루어진다. 적합도 함수를 20과 얼마나 가까운지를 나타내는 값으로 둔다면, (1,5,3)에 대한 적합도는 f( (1,5,3) ) = 11이 된다.
 
먼저 첫 세대를 아무렇게나 생성한다. 첫 세대가 만약 { (1,5,3) (8,0,9) (9,9,8) (3,7,5) } 으로 형성되었다고 하자. 각각의 적합도를 구하면, { 11, 3, 6, 5 }이 되며, 이 값이 높을수록 20에서 멀기 때문에 해로서 부적당하다는 것을 의미하며, 따라서 세대를 거침에 따라 살아남을 확률이 낮게 된다.