유니티를 사용한 유전 알고리즘

자동차가 코스를 통해 스스로 향해 하는 방법을 배우는 2D 시뮬레이션 입니다. 이 작품 안에 총 30개의 개체가 등장하고 작품 화면에는 세대 수, 신경망, 거리 등을 구현하였습니다. 모든 개체가 탈락 시 새로운 세대를 생성하고 도착 지점에 도달 시 자동으로 멈추도록 설계하였습니다.

각각의 선을 만들어 이어 붙여서 하나의 맵을 완성하였고, 장애물과 코너를 이용하여 난이도를 높이고 선에 닿을 시 탈락되도록 설계하였습니다.

5개의 X표시 센서들을 사용하여 거리 등을 측정하면 자동차의 신경망 데이터로 활용합니다. 상황에 따라 UI의 색이 변하게 되는데 빨간색은 기본 색상이고, 노란색은 선에 부딪치기 바로 전에 나타나는 색입니다. 초록색은 최적의 경로로 가고 있는 개체를 나타냅니다.

왼쪽 상단에 있는 Turn, Engine, Eval은 각각 회전 정도, 속력, 거리를 나타냅니다. Eval이 1이되면 도착을 의미합니다. 왼쪽 하단에 Generation은 학습진행 횟수를 나타냅니다. 우측에는 신경망을 나타내는데 현재 최적의 경로로 가고 있는 자동차의 신경망이 표시됩니다.