안녕하세요 저는 새로운 세대를 만들기 위해 유전자 알고리즘을 연구하고 있습니다. 다음 중 하나에 문제가 있습니다.유전자 알고리즘에서 복제와 크로스 오버를 사용하여 새로운 세대를 창조하십시오
이 질문은 유전자 알고리즘을 참조합니다. 10 명의 개인으로 구성된 인구가 있다고 가정합니다. 각 개체는 5 비트로 구성됩니다. 여기에 초기 인구가 있습니다.
x1 = (1, 0, 0, 1, 1)
x2 = (1, 1, 0, 0, 1)
x3 = (1, 1, 0, 1, 1)
x4 = (1, 1, 1, 1, 1)
x5 = (0, 0, 0, 1, 1)
x6 = (0, 0, 1, 1, 1)
x7 = (0, 0, 0, 0, 1)
x8 = (0, 0, 0, 0, 0)
x9 = (1, 0, 1, 1, 1)
x10 = (1, 0, 0, 1, 0)
개인은 피트니스 값 (x1은 가장 큰 적합성 값, x2는 차선책 등)에 따라 순위가 매겨집니다. 샘플링 할 때 순위가 매겨진 것과 동일한 순서로 개인을 얻는다 고 가정합니다. 다음을 가정하는 새로운 세대의 솔루션을 만듭니다.
복제가 20 %입니다. 교차율은 80 %입니다 (다음과 같이 교차 마스크를 가정합니다 : 11100, 순위가 같은 순서로 쌍 예제). 돌연변이는 일어나지 않습니다.
내 솔루션 : 복제는 처음 두 인구가 변하지 않았 음을 의미하는 20 %입니다. 다음으로 주어진 교차 마스크는 11100입니다. 크로스 오버 (11100) 마스크에서 임의로 3 단어를 선택하므로 x3 및 x4에서 시작하고 여기에서 처음에는 3을 유지합니다. 단어는 x3과 x4 모두 동일하며 마지막으로 x3과 x4에 대한 나머지 두 단어를 바꿔 새로운 인구를 생성합니다. 나는 x5와 x6, x7과 x8, x9와 x10에 대해서도 같은 규칙을 따른다. 나는이 해답이 맞는지 틀린 지 확신하지 못한다. 어떤 몸이라도 나를 도울 수 있습니까?
20 % 복제는 귀하의 개인 중 20 %가 재조합 (귀하의 경우에는 교차)에 참여한다는 것을 의미합니다. 크로스 오버 포인트가 비트 1과 비트 2 사이에있는 크로스 오버 포인트 (단일 포인트 크로스 오버, 비트 열거는 (4,3,2,1,0) 임)로 이해합니다. 즉, 한 개체에서 bit2-4를 가져 와서 다른 개체에서 bit2-4로 바꾸어 자손을 만듭니다. – orange