2017-11-20 11 views
0

유전 알고리즘에 대한 순위 선택에 대해 묻는 다른 질문을 보았지만 여전히 혼란 스럽습니다. 나는 이것에 대한 답을 실제로 보지 못했거나, 아마도 그것을 이해하지 못했을 것입니다. 순위 선택을 사용할 때, 순위가 매겨지는 인구는 무엇입니까? 나는 어떤 응답이 그것이 적당이라고 말한 것을 보았고, 다른 사람들은 그렇지 않다고 말한다. 코드 스 니펫 (snippet)을 얻을 수 있다면 더 잘 이해할 수있을 것입니다. 다른 질문이있는 경우 명확하게 설명하도록 답변 할 수 있습니다.유전자 알고리즘에 대한 순위 선택에 대한 혼란

편집 주셔서 감사합니다 : 내가 해결하기 위해 노력하고이 사건은 내가 프로그램 (나는 그것이 무엇인지 알고 그것을 하드 코딩 한) 제대로하는

답변

1

그 코드를 필요로 문자열을 가지고있다 , 피트니스 기능은 애플리케이션에 전적으로 의존합니다. 그것은 정말로 선택 과정을 정의합니다. 5 카드 드로우 (포커)를 플레이하기위한 간단한 프로그램을 상상해보십시오. 각 후보는 교체 할 카드를 결정하는 알고리즘입니다.

피트니스 기능은 다음과 같이 작동 할 수 있습니다. (1) 지정된 카드를 제거하십시오. (2) 100 번 시도 : 카드를 교체하고 손의 강도를 계산하십시오. (3) 100 회 시도의 평균을 반환합니다.

평균은 알고리즘의 순위를 결정하는 적합성 측정 값으로 표시됩니다.

약간 명확한 점이 있습니까?

FOLLOW-UP은

이것은 당신이 메트릭 유사성을 선택해야하는 것을 의미한다. 정확한 일치를 위해 구별되고 옳은 대답에서 멀어짐에 따라 정상적으로 저하되는 것을 원할 것입니다. 간단한 검색으로 popular ones을 찾을 수 있습니다.

+0

약간은 그렇지만, 나는 그것을 나의 관점에서 보려고합니다. 우리는 특정 문자열을 파악하려고 노력하고 있으며, 다음 반복에 배치 할 문자열을 선택하는 방법 중 하나는 순위 선택입니다. 내가 가지고있는 책에서, 그리고 내가 온라인으로 읽은 것에서는 문자열의 순위를 매기는 것이었지만, 순위를 정하는 것은 무엇인지 밝히지 않았다. – Azotherian

+0

그런 다음 추가 된 세부 사항으로 질문을 업데이트하십시오. 무엇보다도 "특정 문자열 이해"는 무엇을 의미합니까? 알고리즘을 이미 알고있는 주어진 문자열로 수렴하려고합니까? – Prune

+0

나는 내 질문을 업데이트했으며 예, 유전 알고리즘을 사용하여 프로그램을 올바르게 만들려고 노력한 하드 코딩 된 문자열이 있습니다. – Azotherian