문제

유전자 알고리즘에서, 룰렛 휠 선택 방법을 사용하여 크로스 오버를 위해 멤버를 선택할 때, 인구는 먼저 피트니스 순위별로 정렬해야합니까?

가능성은 다음과 같습니다.

  1. 피트니스를 올라가서 먼저 인구를 정렬하십시오
  2. 체력을 내림으로써 인구를 정렬하십시오
  3. 모집단을 분류하지 않고 룰렛 볼이 어디에서 떨어지게하십시오 ..

나는 어느 쪽이든 분류가 효과가 없을 것이라고 생각합니다. 다른 크기의 (피트니스) 슬라이스를 포함하는 휠에 무작위로 페블 착륙은 더 큰 슬라이스가 함께 그룹화되어 있는지 여부에 관계없이 정확히 동일한 결과 기회를 갖습니다. 그러나 나는 100% 확신이 아닙니다.

어떻게 생각해?

모든 세대의 종류를 수행해야 할 필요성은 알고리즘의 속도에도 영향을 미칩니다. 따라서 나는 엘리트주의를 사용하는 경우 정렬을 할 것입니다. 그러나이 경우에는 그렇지 않습니다). Google 등을 통해 결정적인 답변을 찾을 수 없으므로 감사합니다.

도움이 되었습니까?

해결책

아니요, 실제로 정렬 할 필요는 없습니다. 당신은 고위급 멤버가 함께 그룹화되어 있거나 그렇지 않으면 (적어도 좋은 무작위 숫자 생성기 :)) 효과가 없다는 것이 정확합니다.

당신의 직관은 여기서 죽었습니다 - 통계적으로, 분류에 영향을 미치지 않을 것이며, 당신이 언급했듯이, 당신은 많은 시간과 노력을 낭비 할 필요가 없습니다!

다른 팁

엘리트주의를 적용하더라도 인구를 분류 할 필요가 없습니다.

최고의 N 개인을 찾는 데는 인구를 통한 단일 반복 만 있으면됩니다.

그러한 선택을 사용하는 경우 모집단을 정렬 할 필요가 없습니다.

그리고 당신은 또한 복잡성에 대해 옳습니다. 정렬은 n*log (n)이며, 유전자 알고리즘을 상당히 느리게 만듭니다 (그러나 여전히 복잡성은 다항식으로 남아 있으며 유전자 알고리즘의 중요한 특징).

다음은 내가하는 방법입니다 (그리고 학교에서 추가 포인트를 얻습니다) :

  1. 후크를 사용하여보다 일반적인 솔루션을 구현 - 돌연변이 전, 선택 후 등.

  2. 반복 횟수와 알고리즘의 속도 / 각 반복 속도를 측정하십시오.

  3. 고리로 정렬하십시오. 측정하다. 이제 후크를 비워두고 측정하십시오.

당신은 멋진 데이터를 얻고 직관이 당신에게 말하는 것을 실험적으로 확인할 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top