2014-05-01 2 views
0

안녕하세요 저는 새로운 세대를 만들기 위해 유전자 알고리즘을 연구하고 있습니다. 다음 중 하나에 문제가 있습니다.유전자 알고리즘에서 복제와 크로스 오버를 사용하여 새로운 세대를 창조하십시오

이 질문은 유전자 알고리즘을 참조합니다. 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에 대해서도 같은 규칙을 따른다. 나는이 해답이 맞는지 틀린 지 확신하지 못한다. 어떤 몸이라도 나를 도울 수 있습니까?

+0

20 % 복제는 귀하의 개인 중 20 %가 재조합 (귀하의 경우에는 교차)에 참여한다는 것을 의미합니다. 크로스 오버 포인트가 비트 1과 비트 2 사이에있는 크로스 오버 포인트 (단일 포인트 크로스 오버, 비트 열거는 (4,3,2,1,0) 임)로 이해합니다. 즉, 한 개체에서 bit2-4를 가져 와서 다른 개체에서 bit2-4로 바꾸어 자손을 만듭니다. – orange

답변

0

내가 사용하고있는 구현의 배경을 알지 못해서 정확하지 않을 수도 있지만 유전 알고리즘의 관점에서 볼 때 대부분의 답변이 정확합니다.

제가 알 수있는 한, 당신의 추론에서 유일한 문제는 크로스 오버입니다. 복제가 수행 된 후에는 크로스 오버를 위해 남아있는 염색체를 사용합니다. 이것은 본질적으로 유전 알고리즘의 관점에서 결함이있는 것 같습니다. 유전자 알고리즘은 일반적으로 크로스 오버에서 최상의 염색체를 사용합니다. 당신은 이미 최선을 모았고 재조합에서 그들을 제외시키는 것처럼 보입니다. 이 아이디어는 적자의 재조합을 통해 개체군을 진화시키는 유전자 알고리즘의 개념에 어긋납니다. 최소한 가장 적절한 염색체가 포함되어야합니다.

일반적으로 대부분의 구현에는 더 많은 가중치가 주어진 가장 적합한 염색체가있는 선택에서 임의성 요소가 포함됩니다. 귀하의 질문에 명시 적으로 쌍이 순위의 순서대로 선택되어 있으므로 임의성이 없음을 명시 했으므로 크로스 오버가 1에서 8까지의 염색체에서 수행되어야한다고 가정합니다.

크로스 오버 마스크에 대한 이해가 문제가있는 것 같습니다.

다시 말해 구현에 대해 전혀 알지 못해서 내 이해가 얼마나 좋은지 잘 모르겠습니다. 유전자 알고리즘이 매우 특이한 것 같아서 근원을 아는 데 관심이 있습니다.