유전알고리즘 - 운전 학습시키기

2021. 5. 1. 00:16알고리즘

유전적 알고리즘으로 ~을 학습시켰다 시리즈를 너무 재밌게 보기도했고 

만들때 재밌을 것같아서 시작하게되었다

 

 

유전자의 구성은 유전적 알고리즘으로 그네타는법을 학습시켰다라는 영상에서 아이디어를 많이 얻었다

어떤 타이밍에 어떤 행동을 할지와 회전하는 힘으로 구성되어있다

0은 직진 1은 좌회전 2는 우회전으로 00011002222111000 이런식으로 구성되어있다

한 세대는 200마리의 개체로 이루어져있다

가장 우수한 개체를 뽑는 기준으로는 y축 방향으로 가장 먼 길이를 이동한 개체로 뽑았다

그리고 벽에 비비면서 앞으로 나아가는 꼼수를 막기위해 벽에 닿으면 죽도록,멈추도록 만들었다

그후 우수한 개체를 뽑아 교차,변이,대치를 반복하면서 세대가 지날수록 더 우수한 유전자를 갖도록 만들었다

만들면서 처음에는 아무리 세대가 지나도 도착을 못하거나 혹은 변이,대치가 제대로 이루어지지 않아

한가지의 유전자를 200마리가 갖게되어 모두 같은 행동을 하게 짜여졌었는데 고치다보니

생각보다 결과물이 잘나와서 만족하고있다

지금 만든 방법의 단점으로는 환경,즉 맵을 바꾸면 처음부터 다시 학습해야한다는 문제점이 있는데

이를 보완하기위해 또 새로운 방법을 생각해보고있다