글 수 10

유전 알고리즘을 이용한 우주선 게임

조회 수 603 추천 수 0 2016.03.24 03:33:47


spaceship.jpg

 

 

 

'쉽게 풀어쓴 인공지능 게임 프로그래밍'(Mat Buckland, 김석중 역, 정보문화사)이란 책에서 나온 유전자 알고리즘을 이용한 프로그램을 하나 소개해 드리겠습니다.

 

두 개의 프로그램이 포함되어 있는데 하나는 사람이 직접 우주선을 조종하여 바닥에 안전하게 착륙하도록 하는 프로그램입니다. 다른 하나는 유전자 알고리즘을 사용하여 우주선이 무사히 착륙할 수 있는 방법을 진화를 통해 스스로 터득합니다.

 

 

 

우주선의 조종방법은 다음의 4가지가 있습니다.

 

1. 분출한다.

2. 왼쪽으로 회전한다.

3. 오른쪽으로 회전한다.

4. 현재 상태를 유지한다.

 

유전자의 인코딩은 우주선이 취하는 행동과 그 지속시간의 쌍으로 구성됩니다.

 

 

 

그리고 적합도 함수는 다음의 4가지를 사용하였습니다.

 

1. 착륙목표 지점과 실제 착륙지점과의 거리

2. 착륙시의 속도

3. 착륙시의 우주선의 각도

4. 우주선의 비행시간

 

우주선의 비행시간은 착륙이 좀 더 사실적으로 보이게 하기위해 추가하였습니다.

 

 

 

직접 해보시면 알겠지만 키보드로 조종하여 우주선을 착륙시키는 것이 상당히 어렵더군요. 하지만 유전자 알고리즘을 사용하니 몇 십 세대만에 금방 멋지게 착륙에 성공하였습니다.

 

유전자 알고리즘을 사용한 방법뿐만아니라 프로그램에 사용된 벡터, 행렬, 물리법칙 등이 책에 매우 자세하게 설명되어 있습니다. 관심있는 분들은 참고하시면 좋을 것 같습니다.

List of Articles
제목 글쓴이 날짜 조회 수
타이핑 치는 원숭이가 셰익스피어의 소설을 쓸 수 있을까? file 깊은바다 2018-07-03 132
신경망과 유전 알고리즘을 사용한 플래피 버드 깊은바다 2017-08-26 478
유전 프로그래밍 [2] LegenDUST 2017-08-19 532
유전 알고리즘을 설명하는 동영상 [3] 깊은바다 2016-03-27 366
유전 알고리즘으로 하스스톤 카드덱 조합 file 깊은바다 2016-03-24 557
유전 알고리즘을 이용한 우주선 게임 file 깊은바다 2016-03-24 603
유전 알고리즘을 사용한 인공진화 file 깊은바다 2016-03-24 415
유전 알고리즘의 소개 깊은바다 2016-03-24 3467
유전 알고리즘을 사용한 인공생태계 구현 file [1] 깊은바다 2016-03-24 869
자동 그림생성 프로그램 - Evolving Image file 깊은바다 2016-03-24 642