유전자 알고리즘에 가장 적합한 매개 변수를 찾는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1075628

  •  21-08-2019
  •  | 
  •  

문제

일부 유전자 알고리즘 프레임 워크 http://www.aforgenet.com/ 돌연변이 율, 모집단 크기 등과 같은 많은 매개 변수가 필요합니다.

그러한 매개 변수에 대한 보편적 인 최고의 숫자가 있습니까? 나는 그것이 문제 (피트니스 기능 지연, 돌연변이 지연, 재조합 지연, 진화 속도 등)에 달려 있다고 생각합니다. 첫 번째 생각은 GA를 사용하여 다른 GA를 구성하는 것이 었습니다.

더 나은 아이디어가 있습니까?

도움이 되었습니까?

해결책

유전자 알고리즘을 프로그래밍했을 때 기본적으로 GA를 사용하여 자체를 구성하는 것처럼 값에 값에 해당 값이 포함되었습니다. 놀랍게도 잘 작동했습니다. 특히 계산 과정에서 이러한 값이 변경되는 것이 유익하다는 것을 알았 기 때문에 특히 잘 작동했습니다.

다른 팁

이러한 문제를 가장 낮은 지점을 찾으려고 노력하는 풍경으로 생각하는 것이 도움이됩니다.

유전자 알고리즘과 같은 방법은 풍경이 너무 커서 모든 점을 테스트하기에는 너무 커질 때 사용되며, 풍경의 "모양"은 그라디언트-미치는 방법이 로컬 미니마에 갇히게 할 수 있도록합니다.

좋은 예는 Rastrigin의 기능입니다 (이미지 Ref): alt text
(원천: Scientific-Computing.com)
:

귀하의 선택은 다음과 같습니다.

생성 크기 :

  • 너무 커서 : 당신은 긴 시대 시간을 가질 것이며, 각 개인이 이웃을 탐험해야 할 기회를 제한합니다.
  • 너무 작습니다 : 검색 공간을 잘 보장하지 않습니다.

돌연변이 속도 :

  • 너무 높음 : 당신은 개인이 가까운 솔루션을 통해 "점프"할 위험이 있습니다.
  • 너무 낮습니다 : 그들은 모두 현지 미니마에 갇히게 될 것입니다.

따라서 실제로 자신의 특정 검색 공간에 달려 있습니다. 매개 변수를 실험하고 최적의 조합을 찾으십시오. 다른 GA를 사용하여 매개 변수를 최적화하는 것은 문제를 해결하지 못할 것이라는 데 동의합니다.

유전자 알고리즘에 가장 적합한 매개 변수를 자동으로 찾을 수 없다고 가정하는 답이 너무 많습니다. 매개 변수가 문제에 따라 다르지만 찾을 수있는 방법이 있다는 데 동의합니다.

또한 무료 점심 정리가 없습니다 사실에 이의를 제기하는 토론이 이미 있었기 때문에 최고의 매개 변수를 찾는 것을 막을 수는 없습니다.

매개 변수 설정에는 두 가지 유형이 있습니다.

  • 매개 변수 튜닝 (오프라인 매개 변수 검색 - GA가 실행되기 전)
  • 매개 변수 제어 (온라인 매개 변수 조정 - GA 실행 중)
    • 적응 형
    • 자기 적응
    • 결정 론적

이러한 최적의 매개 변수를 찾을 수있는 방법을 설명하는 많은 문헌이 있습니다. 매개 변수 검색 오프라인 또는 온라인을 수행할지 여부에 따라 다릅니다. 인기있는 믿음은 온라인 매개 변수 제어 방법이 오프라인에서 너무 복잡해지기 때문에 대부분의 경우 오프라인에 더 적합하다는 것입니다.

다음은 "최고의"매개 변수를 찾는 몇 가지 예입니다.

매개 변수 튜닝:

매개 변수 제어:

또한 위에서 사용 된 키워드를 사용하여 문헌을 검색하십시오. 주어진 문제에 대해 적절한 매개 변수를 찾는 과학적 방법이 있습니다!

쉽지 않습니다.

왜요? 때문에 무료 점심이 없습니다 정리. 이것은 기본적으로 아니오가 있음을 나타냅니다 일반 잘 작동하는 검색 알고리즘 모두 문제.

당신이 할 수있는 최선은 특정한 문제 공간. 솔루션에 맞게 매개 변수를 수동으로 조정해야합니다. 죄송합니다.

GA를 사용하여 GA 매개 변수를 찾으면 복잡해집니다. 가가 검색을위한 최적의 매개 변수를 어떻게 찾습니까? 또 다른 GA ...?

주어진 데이터 세트에 대해 자동으로 수행하는 방법은 없습니다. 있다면, 그들은 그 매개 변수를 노출시키지 않을 것입니다. 두 번째 GA를 사용하여 첫 번째 GA의 매개 변수를 조정하는 것은 위험합니다. 세 번째 GA를 사용하여 두 번째 GA의 매개 변수를 조정합니까? 당신이 그렇게하더라도, 그것은 어쨌든 과적으로 조리법입니다.

저의 조언은 매개 변수를 가지고 놀고, 각 세대의 인구 산만에 어떤 영향을 미치는지, 수용 가능한 답변에 도달하는 데 얼마나 많은 세대가 필요한지를 보는 것입니다. 너무 작아서 동질성으로 끝날 것입니다.

가스를 조정하는 것은 과학이 아니라 예술이라는 더러운 비밀입니다.

다른 사람들이 말했듯이, 대답은 없습니다. 0.7-0.9 레벨에서 크로스 오버 속도를 사용하는 경향이 있지만 0.1-0.3의 돌연변이는 실제로 달라집니다. 문제에 따라 다르고 피트니스 기능에 따라 다를 수 있으며 유전자 알고리즘 자체에 달려 있습니다. 많은 GA 변형이 있으며 동일한 문제에 대한 최적 매개 변수가 다를 수 있습니다.

GA를 사용하여 Target GA의 매개 변수를 조정하는 경우 이와 같은 접근 방식이 있지만 지적한 바와 같이 First GA의 매개 변수를 조정하는 방법은 무엇입니까? 처음에는 돌연변이 비율이 높아야하며 교차 속도가 증가 해야하는 동안 감소해야 할 것보다 더 높아야합니다. 탐사 대 착취 문제입니다. GA를보다 적응력있게하고 솔루션을 찾을 때 매개 변수를 변경하도록하는 접근법이 있습니다. 퍼지 컨트롤러는 때때로 GA의 매개 변수를 조작하는 데 사용됩니다. 다른 접근법도 있습니다.

더 알고 싶다면 책을 사거나 학술 연구 논문을 살펴보십시오.
광범위한 연구없이 자신의 GA를 설정 해야하는 경우 다른 사람들의 가치를 시도하고 실험하십시오.

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