GA - 오델로 - 결과

6. 결과
앞과 같은 방식으로 100세대 동안 진화시킨 결과입니다.
6개 무리에서 가장 적응도가 높은 개체들의 적응도 변화 그래프입니다.



서로간에 엎치락뒤치락하기는 합니다만, 이것만으로는 얼마나 실력이 좋아졌는지 알 수가 없습니다.
어쩔수 없이 기본이 되는 AI를 하나 만들어서 비교해야겠네요.
StandardAI라 이름붙인 이 AI는 오델로플레이어와 비슷하게 돌을 놓을 수 있는 장소들의 가중치를 계산합니다. 다만 가중치를 유전자에서 계산하는 것이 아니라, 그 위치에서 잡을 수 있는 돌의 수 * 그 위치의 중요도로 계산합니다. 그 위치의 중요도란 가장자리는 10, 가장자리에서 한칸 안쪽은 1, 나머지는 5로 정의합니다.

아무튼 매 세대마다 각 무리에서 최고가중치를 가진 오델로플레이어와 이 StandardAI를 10회 대결시킨 후 오델로플레이어가 얻은 점수를 그래프로 그린 결과는 다음과 같습니다.


여기서는 20세대도 채 지나기 전에 StandardAI를 상대로한 전과가 급상승하는 것을 알 수 있습니다. 참고로 이 때의 유전자 크기(즉 유전자가 가지고 있는 패턴 갯수)는 11039입니다(물론 이것이 최대값인지는 모릅니다. 세대가 진행되면서 더 늘어날 수도 있습니다).

7. 뱀발
결과적으로 유전자알고리즘이 얼마나 진화되었는지 알기 위해 StandardAI라는 새로운 AI를 만들 수밖에 없었습니다.
그렇다면, 구태여 공진화시킬 필요 없이 이 StandardAI와의 대결을 통해 적응도를 계산, 진화시킬 수도 있지 않을까요?
물론 그럴 수도 있습니다만, 만약 StandardAI와의 대결을 통해 진화시킨다면 한가지 큰 단점이 있습니다. 오델로플레이어들이 StandardAI만을 상대하기 위해 진화한다는 점이죠. 만약 StandardAI에게 어떤 약점이 존재한다면 그 약점만을 공략하는 오델로플레이어들이 진화할 가능성이 있습니다. 그렇게 된다면 StandardAI를 상대로는 강하지만 다른 AI(심지어는 StandardAI보다 약하지만 StandardAI의 약점이 없는 AI)들을 상대로는 맥을 못추는 오델로플레이어들이 진화될 수 있습니다.

댓글 없음:

댓글 쓰기