대회 선택 :
- 토너먼트 선택은 개인의 인구에서 개인을 선택하는 방법이다.
- 토너먼트 선택에는 인구 집단에서 무작위로 선택한 소수의 개인 중에서 여러 개의 "토너먼트"를 운영하는 것이 포함됩니다.
- 크로스 오버를 위해 각 토너먼트의 승자가 가장 적합합니다.
- 토너먼트 크기가 작을수록 토너먼트 선택은 모든 개인을 선택할 수있는 기회를 제공하므로 다양성을 유지하면 수렴 속도가 저하 될 수 있습니다.
- 그러나 토너먼트 크기가 클수록 약한 개인은 선택의 기회가 적기 때문에 다양성이 손실됩니다.
의사 :
choose k (the tournament size) individuals from the population at random
choose the best individual from pool/tournament with probability p
choose the second best individual with probability p*(1-p)
choose the third best individual with probability p*((1-p)^2)
and so on...
결정적 토너먼트 선택이 최상의 선택을 개별 (경우 p = 1) 상관 토너먼트이다. 1 방향 토너먼트 (k = 1) 선택은 무작위 선택과 동일합니다.선택한 개인은 원하는 경우 선택이 이루어진 집단에서 삭제 될 수 있습니다. 그렇지 않으면 다음 세대에 대해 개인을 두 번 이상 선택할 수 있습니다. (확률 론적) 적합성 비례 선택 방법과 비교할 때, 토너먼트 선택은 확률 론적 잡음이 부족하기 때문에 실제로 구현됩니다.
매트랩에서 토너먼트 선택 :
Matepool=randi(PopLength,PopLength,2);%%select two individuals randomly for tournament and chooose the one with best fitness value
%% number of tournament is equal to the number of population size
for i=1:PopLength
if Fitness(Matepool(i,1))>= Fitness(Matepool(i,2))
SelectedPop(i,1:IndLength)=CurrentPop(Matepool(i,1),1:IndLength);
else
SelectedPop(i,1:IndLength)=CurrentPop(Matepool(i,2),1:IndLength);
end
end
적절하게 사용하면 코드를 포맷하십시오. http://stackoverflow.com/editing-help – bdhar
오, 미안 해요! 다른 누군가가 이미 가지고있는 것처럼 보입니다. 다음에 이것을 기억합니다. – Reu