5

인구 조정을위한 일반적인 경험 법칙이 있는지 궁금합니다. 필자는 염색체 길이의 2 배가 좋은 시작점이라는 책을 읽었습니다. 나는 5 개의 변수가있는 방정식을 가지고 있다면 인구가 10이되어야한다고 가정하면 맞습니까?유전자 알고리즘, 큰 개체 대 작은 개체

큰 인구 크기 : 다음과 같은 경우 필자도 궁금

올바른 것입니다.

장점 : 좋은 체력을 반환 특성에 데리러 큰 다양성 때문에 가능성이 높습니다.

단점 : 처리가 더 오래 걸립니다.

작은 인구 크기.

장점 : 단위 시간당 더 많은 세대가 발생했습니다.

단점 : 작은 인구를 보완하기 위해 돌연변이가 더 중요할까요 ??

편집

약간의 추가 정보는, 내가 5 개 알 수없는 매개 변수가있는 방정식을 말한다. 각 매개 변수에 대해 나는이 변수들 각각에 할당하려고하는 10-50 사이의 값을 가지고 있습니다. 그래서 예를 들어

변수 1 = 20 개 다른 값 변수 2 = 15 개 서로 다른 값 은 ...

내가 검색 공간, 즉 최악의 경우 매우 큰로서 GA 이러한 문제에 괜찮은 방법이 될 것이라고 생각 위의 경우 312,500,000 순열이 될 것입니다 (내가 망쳐 놓지 않는 한?) n!/(nk)! 여기서 n = 50 및 k = 1 => 50 * 50 * 50 * 50 * 012

불행히도 확인해야 할 매개 변수/값의 범위는 다양 할 수 있으므로 엄지 법칙을 찾고있었습니다. 얼마나 큰 인구를 설정해야합니다.

ur 도움말을 보내 주셔서 감사합니다. 더 많은 정보가 필요 하시거나 대화방에서 토론하고 싶다면 나에게 외쳐보십시오.

+0

Ive도 엄지 손가락의 2 * 규칙을 제안합니다. 참조 : http://stackoverflow.com/a/7609715/571138 – NWS

답변

6

염색체 길이를 2 배로 읽는 것이 좋은 출발점인지는 확실치 않지만, 더 큰 문제에 집중된 책이라고 생각합니다.

변수가 5 개인 경우 유전자 알고리즘은 솔루션에 수렴하는 데 적합하지 않을 수 있습니다. 염색체 길이가 5 인 경우, 지역적 최소값을 매우 빠르게 결정하고 (이후 실행에서 변경됨) 실제의 지역 최소값을 찾을 때까지 천천히 반복합니다.

그러나 GA 사용에 대해 주저한다면이 문제에 대한 경험 법칙을 포기하고 최종 솔루션에서 얼마나 멀어 질지에 대한 측정으로 인구를 시작하는 것이 좋습니다.

많은 어림짐작이 염색체 길이에 의존하는 이유는 백개의 변수가 있다면 괜찮은 프록시이기 때문이며 무작위로 dna 시퀀스를 생성하면 주어진 것보다 더 이상적 일 것입니다. 하나의 변수.

또한 계산 강도가 걱정된다면 나는 작은 솔루션 세트를 다루고 있으므로 문제가되어서는 안된다고 말하고 싶습니다. 이 같은 작은 세트의 엄지 손가락의 좋은 규칙의 라인을 따라있을 거라고 생각 :

(ln(chromosome_length*(solution_space/granularity)/mutation_rate))^2 

아마 던진 일정에 특정 문제에 대한 확장.

  • 염색체의 길이가 솔루션 공간의 크기를위한 단지 프록시, 그래서 계정으로의 크기를 복용 :

    은 그것은 내 논리를 여기에 확실히 엄지 손가락의 좋은 규칙 (어떤 규칙이 없음)은 아니지만 솔루션 공간은 반드시이 프록시의 정확성을 높일 것입니다

  • 작은 돌연변이 비율은 로컬 미니 마에서 잡히기 쉽다는 사실을 보완하기 위해 더 큰 인구 크기를 필요로합니다
  • 어떤 규칙도 대수적으로 유전 알고리즘은 솔루션 공간의 트리 검색과 비슷합니다.
  • 제곱 된 용어는 대부분 이것을 시도한 결과 였지만 일반적인 모양이 옳았음에도 불구하고 로그 스케일링이 조금 공격적이었던 것처럼 보입니다.

그러나 더 나은 선택은 합리적인 수 (100)부터 시작하여 실행 속도와 정확성의 균형을 맞추는 것으로 보이는 인구 크기를 찾을 때까지 반복적으로 시도하는 것입니다.

+0

+1 항상 2 배 염색체 길이에 대한 좋은 생각이 아니에요. 나는 그것을 언급하는 것을 잊었다. – OnABauer

+0

@TerryMalone 감사합니다. 나는 더 합리적인 어림짐작으로 놀고있다, 나는 생각한다. –

+1

나는 보통 비슷한 접근법을 사용합니다. 나는 주로 매개 변수 추정을위한 유전자 알고리즘을 사용하고 염색체 크기는 보통 약 40-100에서 다릅니다. 나는 엄지 손가락의 규칙을 발견하지 못했고 일반적으로 언급 한 접근 방식을 사용합니다. 내 유전 알고리즘은 대개 며칠 동안 다른 인구 규모 (다른 매개 변수뿐만 아니라)를 테스트하는 데 많은 시간을 투자하여 수백 번 수행되기 때문에 잘 작동합니다. – OnABauer

1

대부분의 유전자 알고리즘 매개 변수와 마찬가지로 인구 크기는 문제에 크게 의존합니다. 크거나 작은 모집단 크기를 가져야하는지 여부를 지시하는 데 도움이되는 특정 요소가 있지만 문제를 해결하기 전에 알려진 솔루션에 대해 다른 값을 테스트하는 데 많은 시간이 걸리는 것이 좋습니다. 물론 가능).

인구 크기가 10이라면 다소 작게 보입니다. 5 개의 변수가있는 방정식이 있다고 가정 해보십시오. 귀하의 문제는 5 가지 값의 염색체로 표현됩니까? 그것은 염색체에 대해 작은 것처럼 보입니다.이 경우 유전 알고리즘을 사용하면 문제를 해결하는 가장 좋은 방법이 아닐 수도 있습니다. 아마도 당신이 당신의 문제에 대해 좀 더 자세하게 설명하고 그것을 표현하는 방법을 사람들에게 당신에게 조언하는 방법에 대한 더 좋은 생각이있을 수 있습니다.

크고 작은 인구 규모에 대한 귀하의 단점이 정확하게 맞지 않는다고 덧붙였습니다. 더 큰 모집단 크기는 작은 크기보다 처리하는 데 오랜 시간이 걸리지 만, 종종 문제를 더 빨리 해결할 수 있기 때문에 전반적으로 처리 시간이 더 길어지는 것은 아닙니다. 이득, 그것은 문제에 크게 의존합니다. 인구가 적을수록 돌연변이가 두드러 질 필요는 없습니다. 돌연변이는 일반적으로 유전자 알고리즘이 국소 최대치에 머물러있는 것을 막기 위해 사용되며 대개 매우 작은 값이어야합니다. 작은 개체군은 지역 최대치에 머물러있을 가능성이 더 높지만 너무 높은 돌연변이 값을 가진다면 유전자 알고리즘의 자연스러운 향상을 무효화 할 수 있습니다.