기고글 토론 "유전 알고리즘-쉬워요" - 페이지 11

 
ivandurak:
어떤 기준과 얼마나 많은 자손을 죽여야하는지 . 얼마나 많은 부모와 자손이 최적화 된 매개 변수의 수에 따라 얼마나 많은 부모와 자손이 있어야합니다 .어떤 에포크 근친상간이 허용 될 수 있습니다 . 일반적으로 부모를 죽이는 원칙에 대해 명확하지 않습니다 .불행히도 당신의 노동은 내 목적에 적합하지 않지만 브러시로 대단히 감사합니다 .

아무도 죽일 필요가 없습니다. 하나의 염색체 (자체 교배)로도 작동 할 수 있습니다. 따라서 평균적으로 50 개의 염색체는 모든 목적에 충분합니다.

알고리즘을 이해하지 못하는 것뿐입니다.

알고리즘은 보편적이며 모든 목적에 적합하며, 이를 UGA라고 합니다. 다른 방법으로 더 빨리 해결할 수 있는 몇 가지 작업이 있을 뿐입니다.

 
ivandurak:

1. 힌트를주세요 plz....

2. 어떤 기준으로 얼마나 많은 후손을 죽일 것인가 .

3. 최적화 할 매개 변수의 수에 따라 부모와 자손이 몇 명이어야하는지 .

4. 어느 시대 근친상간이 허용 될 수 있는지 .

5. 일반적으로 부모를 죽이는 원칙에 대해 명확하지 않습니다 .

6. 불행히도 당신의 노동은 내 목적에 적합하지 않지만 브러시로 많은 감사를드립니다 .

1. 나는 당신의 게시물의 목적이 명확하지 않습니다. 알고리즘 구현에 대한 조언이 필요한 경우 세부 사항, 말하자면 일반적인 개념이 필요하므로 논의 할 내용이 있습니다.

문서에 설명된 알고리즘에 대한 질문인 경우 2, 3, 4, 5, 5를 참조하세요. 2, 3, 4, 5, 6.

2. 후손은 죽지 않습니다. 부모와 그 자손의 복제본이 죽습니다.

3. 인구의 대부분인 50명이 가장 일반적으로 사용되는 의미입니다.

4. "자체와의" 교배는 허용되지 않습니다. 그러나 그것이 매우 필요하다면 (인구가 "죽어 가고있다")-가능합니다. :) 적합한 "파트너"를 찾기 위해 여러 번의 시도가 이루어집니다.

5. 부모는 무작위로 또는 특정 조건에서 "살해"되지 않고 자손으로 대체됩니다 (물론 인구가 가득 찬 경우 인구의 정확히 절반이 자손으로 대체됩니다).

6. 문제가 매우 "구체적"인 경우 - 아마도 (가능한 경우) 먼저 분석적 해결책을 찾으려고 노력할 것입니다.

 

신속한 답변에 감사드립니다. 다양한 실험을 위해 유전학이 필요합니다. 나에게 보이는 당신의 서지는 사용하기에별로 편리하지 않으므로 나는 내 자신을 쓰고 있습니다. 불행히도 네트워크에서 전체 알고리즘을 주로 GA 결정자 만 제대로 설명하지 않았으므로 설명에 대한 링크를 제공하면 (러시아어로) 매우 감사하겠습니다. 아래에서는 수정하기가 어렵지 않다면 모든 것을 어떻게 보는지 설명하겠습니다.

1 무작위로 50 명 이상의 부모 개인을 무작위로 만듭니다.

2 자손의 교배와 돌연변이 식민지로 그들로부터 생성하는 것 ..... 아무데도 설명을 찾지 못했습니다.

3 중복을 찾으면 부모 개체가 제거됩니다.

5 필요한 경우 자손과 부모의 식민지를 완성합니다. 부모는 무작위로 생성됩니다 자연적으로 자손 .

4 FF를 통해 모두 실행합니다. FF는 GA 외부에 배치됩니다.

5 모두 순위를 매깁니다. 최고에게는 람보의 지위가 주어집니다. 순위가 높을수록 아빠가 될 가능성이 높아집니다.

6 전체 군중을 강자와 약자로 나눕니다 .강한 사람은 다음 단계에서 부모가 될 것입니다.

7 자손 (가장 부적합한)에 의해 식민지의 일부를 잘라냅니다. 작은 확률로 우리는 부모의 식민지의 일부를 잘라냅니다 .우발적 인 죽음처럼 .람보는 프레임의 숙청을받지 않습니다.

8 이것은 시대의 끝입니다.

9 동안 .... (지정 ) 하나의 동일한 개인이 깃발을 들고있는 경우 람보 - 계산이 끝납니다 GA 수렴, 그렇지 않으면 지점 3으로 이동합니다.

 
ivandurak:
....
죄송하지만 기사를 다시 읽어야 할 것 같은 인상을 받았습니다.
 
많은 노력을 기울여 GA를 작성했습니다. 하지만 지역적 한계에 부딪혔습니다. 이를 방지하는 방법에 대한 일반적인 권장 사항이 있나요?
 
ivandurak:
많은 노력을 기울여 GA를 작성했습니다. 하지만 지역적 한계에 부딪혔습니다. 이를 방지하는 방법에 대한 일반적인 권장 사항을 알려주실 수 있나요?

전염병이 아니라 특별한 '유전적' 마법입니다. :)

FF로 어떤 기능을 사용하시나요?

이 목적을 위해 특별히 설계된 함수에서 최적화 알고리즘을 테스트, 보정 및 디버깅하는 것이 좋습니다.

Тестовая многопеременная многоэкстремальная функция. - MQL4 форум
  • www.mql5.com
Тестовая многопеременная многоэкстремальная функция. - MQL4 форум
 
방해해서 죄송하지만 이것은 원칙의 문제입니다. 귀하의 글에서 예제를 가져와서 이를 확인하기 위해 스크립트를 작성했습니다. 대답은 스키가 여행하지 않거나 의자와 키보드 사이의 패딩에 문제가있는 예와 일치하지 않습니다. 새끼 고양이처럼 찌르는 것이 어렵지 않다면 둘째 날에는 오류를 찾을 수 없습니다. 안부
void OnStart()
  {
   double y,x1,x2 ;
   x1=-3.315699;
   x2=-3.072485;
   y=pow((cos(2-pow(x1,2))-1.1),2)+pow((sin(0.5-x1)-1.2),2)-pow((cos(2-pow(x2,2))-1.1),2)+pow((sin(0.5-x2)-1.2),2);
   Print("솔루션 1이 맞을 것 같습니다 = ",y) ;
//-------------------------------------------------------------------
   x1=2.252170;
   x2=-4.5171187;
   y=pow((cos(2-pow(x1,2))-1.1),2)+pow((sin(0.5-x1)-1.2),2)-pow((cos(2-pow(x2,2))-1.1),2)+pow((sin(0.5-x2)-1.2),2);
   Print("솔루션 2는 내 것입니다 = ",y) ;
  }
 
ivandurak:
방해해서 죄송하지만 이것은 원칙의 문제입니다. 귀하의 글에서 예제를 가져와 이를 확인하기 위해 스크립트를 작성했습니다. 대답은 스키가 여행하지 않거나 의자와 키보드 사이의 패딩에 문제가있는 예와 일치하지 않습니다. 새끼 고양이처럼 찌르는 것이 어렵지 않다면 둘째 날에는 오류를 찾을 수 없습니다. 안부
정확히 개스킷을 교체해야 합니다. 죄송합니다.
 
ivandurak:
방해해서 죄송하지만 이것은 원칙의 문제입니다. 귀하의 글에서 예제를 가져와 이를 확인하기 위해 스크립트를 작성했습니다. 대답은 스키가 여행하지 않거나 의자와 키보드 사이의 패딩에 문제가있는 예와 일치하지 않습니다. 새끼 고양이처럼 찌르는 것이 어렵지 않다면 둘째 날에는 오류를 찾을 수 없습니다. 진심으로

FF 자체에 대한 확신이 없다면 극한이 그런지 확실하지 않다는 의미에서 테스터에서 기능을 실행할 수 있으며, 이러한 의미에서 테스터 GA는 상당히 좋으며 상당히 정확한 솔루션을 찾지 만 적은 수의 매개 변수 (1,2)로만 찾을 수 있습니다.

일반적으로 GA는 정확하지는 않지만 강력한 솔루션을 찾는다는 것을 이해해야합니다. 즉, 가능한 솔루션 분야에 비해 상당히 좋은 솔루션입니다.

 
ivandurak:
방해해서 죄송하지만 이것은 원칙의 문제입니다. 귀하의 글에서 예제를 가져와 이를 확인하기 위해 스크립트를 작성했습니다. 대답은 스키가 여행하지 않거나 의자와 키보드 사이의 패딩에 문제가있는 예와 일치하지 않습니다. 새끼 고양이처럼 찌르는 것이 어렵지 않다면 둘째 날에는 오류를 찾을 수 없습니다. 안부.
void OnStart()
  {
   double y,x1,x2 ;
   x1=-3.315699;
   x2=-3.072485;
   //y=pow((cos(2.0-pow(x1,2.0))-1.1),2.0)+pow((sin(0.5-x1)-1.2),2.0)-
   //  pow((cos(2.0-pow(x2,2.0))-1.1),2.0)+pow((sin(0.5-x2)-1.2),2.0);
   y=  pow(cos((double)(2*x1*x1))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x1)-0.12 e1,0.2 e1) - 
       pow(cos((double)(2*x2*x2))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x2)-0.12 e1,0.2 e1);
   Print("솔루션 1이 맞습니다 = ",y) ;
   //-------------------------------------------------------------------
   x1=2.252170;
   x2=-4.5171187;
   //y=pow((cos(2.0-pow(x1,2.0))-1.1),2.0)+pow((sin(0.5-x1)-1.2),2.0)-
   //  pow((cos(2.0-pow(x2,2.0))-1.1),2.0)+pow((sin(0.5-x2)-1.2),2.0);
   y=  pow(cos((double)(2*x1*x1))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x1)-0.12 e1,0.2 e1) - 
       pow(cos((double)(2*x2*x2))-0.11 e1, 0.2 e1)+pow(sin(0.5 e0*(double)x2)-0.12 e1,0.2 e1);
   Print("결정 2. 틀린 = ",y) ;
  }
나는 어떤 이유로 일치하는 것이 있습니다. 아마도 기사에서와 같이 기능을 사용했기 때문일 것입니다.