GA - 여덟여왕문제(8-Queen's Problem)[3] - 다양성에 대하여

6. 1차결과

앞에서 나온 대로 교차와 돌연변이를 실행하여 16384개의 하렘을 500세대동안 진화시켰습니다.
그 결과는 다음과 같습니다.

Generation : 499 : 1
[16349](0/-3)(3/2)(-2/3)(3/2)(2/-1)(1/3)(-2/3)(-3/-1)
* . Q . * . * .

. * . * . Q . *
* Q * . * . * .
. * . * . * Q *
* . * . Q . * .
Q * . * . * . *
* . * . * . * Q
. * . Q . * . *

.은 체스판의 흰 칸, *은 검은 칸, Q는 여왕이 위치한 자리입니다. 분명히 찾긴 찾았는데... 전체 16384개의 하렘들 중 동일한 하렘이 16349개나 생겼군요. 다양성이 완전히 훼손되고 말았습니다. 왜 이런 결과가 나왔을까요?

다른 형태의 해답 A, B, C, D가 유전자 알고리즘에 의해 생겼다고 해 봅시다. 개체 비율은 다음과 같다고 가정해 보죠.

ABCD
25.01%
25%
25%
24.99%

재생산시 A, B, C, D는 동일한 적응도를 가지므로 각각이 선택될 확률은 각각의 개체비율과 동일합니다. 이때 A와 A가 만나 교배를 한다면 A가 다시 나오겠죠. A와 B가 만나 교배를 한다면, 이미 나온 답을 섞으면 그것은 엉뚱한 해답, 곧 낮은 적응도를 가진 개체가 나올 것입니다.
즉, 다음세대에 A가 나올 확률은 전세대의 A가 선택될 확률의 제곱이 됩니다(A가 두개 선택되어야 교배결과 A가 나오므로). 그러므로 다음 세대 각 개체의 비율은

ABCD
6.255001%
6.25%
6.25% 6.245001%
25.02%
25%
25% 24.98%

약간 많던 A의 개체비율은 더 올라갔고(25.01%->25.02%) 반대로 약간 적던 D의 개체비율은 더 떨어졌습니다(24.99%->24.98%). 이런 식으로 해서 세대가 반복되면 다음 그림과 같이 불과 20세대도 지나기 전에 A가 전체를 차지해 버립니다.


즉 불과 0.01% 우세였던 개체가 자신과 같은 점수였던 다른 개체들을 밀어내고 혼자 전체를 차지해 버리는 것이죠.

그렇다면 어떻게 해야 이 시스템의 다양성을 유지하여 많은 해답을 구할 수 있을까요?

댓글 없음:

댓글 쓰기