- AI Dev - 인공지능 개발자 모임
- 정보공유
- 유전 알고리즘
글 수 12
'쉽게 풀어쓴 인공지능 게임 프로그래밍'(Mat Buckland, 김석중 역, 정보문화사)이란 책에서 나온 유전자 알고리즘을 이용한 프로그램을 하나 소개해 드리겠습니다.
두 개의 프로그램이 포함되어 있는데 하나는 사람이 직접 우주선을 조종하여 바닥에 안전하게 착륙하도록 하는 프로그램입니다. 다른 하나는 유전자 알고리즘을 사용하여 우주선이 무사히 착륙할 수 있는 방법을 진화를 통해 스스로 터득합니다.
우주선의 조종방법은 다음의 4가지가 있습니다.
1. 분출한다.
2. 왼쪽으로 회전한다.
3. 오른쪽으로 회전한다.
4. 현재 상태를 유지한다.
유전자의 인코딩은 우주선이 취하는 행동과 그 지속시간의 쌍으로 구성됩니다.
그리고 적합도 함수는 다음의 4가지를 사용하였습니다.
1. 착륙목표 지점과 실제 착륙지점과의 거리
2. 착륙시의 속도
3. 착륙시의 우주선의 각도
4. 우주선의 비행시간
우주선의 비행시간은 착륙이 좀 더 사실적으로 보이게 하기위해 추가하였습니다.
직접 해보시면 알겠지만 키보드로 조종하여 우주선을 착륙시키는 것이 상당히 어렵더군요. 하지만 유전자 알고리즘을 사용하니 몇 십 세대만에 금방 멋지게 착륙에 성공하였습니다.
유전자 알고리즘을 사용한 방법뿐만아니라 프로그램에 사용된 벡터, 행렬, 물리법칙 등이 책에 매우 자세하게 설명되어 있습니다. 관심있는 분들은 참고하시면 좋을 것 같습니다.