결국 무작위에 의한 알고리즘이다.
2가지 방식을 이용해서 구현한다.
돌연변위
무작위로 하나의 인덱스를 선택하여 vec[index] +-step 만큼 변경하여 , 리스트에 넣고, cost를 계산
교배
무작위로 하나의 인덱스를 선택하여 'A'vec[0:index] + 'B'vec[index:]하여 새로운 'C'개체군을 생성한다.
이 과정을 정해진 횟수만큼 반복하거나
몇세대의 걸처 개선이 없을 때까지 반복
개체군size을 정한다 .ex) 50개
size * topelite 만큼만 돌연변이와 교배를 시키고, 돌연변위와 교배된 vec를 다시 개체군에 추가한다.
추가된 vec의 size가 정한 size가 되면 다시 size * topelite만큼만 돌연변이와 교배를 시킨다. 이 과정을 반복한다.