MT 개발자를 위한 것이 아닙니다! INIT_PARAMETERS_INCORRECT를 대체하는 방법? - 페이지 2

 

OnTesterInit에서 고유한 최적화 세트를 생성하고 최적화 프로그램이 하나의 sinput int NumPass만 최적화되고 있다고 생각하도록 강제할 수 있습니다.

이것이 최종 결과에 어떤 영향을 미칠지, 즉 원하는 전역(로컬) 극한값이 발견되는지 여부를 말하기는 어렵습니다.

예제를 제공할 준비가 되지 않았습니다. 문서를 참조하십시오. 잘 쓰여졌습니다.

 
fxsaber :

레시피 중 하나는 개발자가 INCORRECT 패스의 결과를 이전에 계산된 가장 가까운 CORRECT 패스로 간주하는 것입니다. 이것은 최적화 표면의 구멍을 제거합니다.

이것이 개발자들이 반대하는 것입니다. 이 경우 인구의 다른 개인이 "생존"합니다. 그리고 유전학은 오류와 함께 작동하기 시작할 것입니다.

 

숫자로 유효한 체인만 반환하는 함수를 작성하면 어떻게 될까요?

가장 먼저 떠오르는 것은 117649개의 값으로 구성된 테이블이며 유전학이 이 테이블에서 숫자를 찾도록 합니다.

 
Sergey Savinkin :

이것이 개발자들이 반대하는 것입니다. 이 경우 인구의 다른 개인이 "생존"합니다. 그리고 유전학은 오류와 함께 작동하기 시작할 것입니다.

저도 그런 알고리즘에 반대합니다. INCORRECT는 잘못된 매개변수 세트이며 "가장 가까운 유효한" 매개변수 세트로 대체할 수 없습니다.

 
Sergey Savinkin :

이것이 개발자들이 반대하는 것입니다. 이 경우 인구의 다른 개인이 "생존"합니다. 그리고 유전학은 오류와 함께 작동하기 시작할 것입니다.

실제로 유전학은 거의 항상 틀립니다. 이것이 표준입니다. 이 분야에 대한 적절한 연구 없이는 제안된 옵션에 따라 어떠한 주장도 하지 않을 것입니다.

 
Georgiy Merts :

숫자로 유효한 체인만 반환하는 함수를 작성하면 어떻게 될까요?

가장 먼저 떠오르는 것은 117649개의 값으로 구성된 테이블이며 유전학이 이 테이블에서 숫자를 찾도록 합니다.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

MT 개발자를 위한 것이 아닙니다! INIT_PARAMETERS_INCORRECT를 대체하는 방법?

fxsaber , 2018.07.10 16:22

OnTesterInit에서 고유한 최적화 세트를 생성하고 최적화 프로그램이 하나의 sinput int NumPass만 최적화되고 있다고 생각하도록 강제할 수 있습니다.

이것이 최종 결과에 어떤 영향을 미칠지, 즉 원하는 전역(로컬) 극한값이 발견되는지 여부를 말하기는 어렵습니다.

최종 결과에 대한 만족도 기준에 크게 좌우됩니다.


분명히, 철저한 검색을 따른다면 y = x^2입니다. 그런 다음 최적화 문자열을 무작위로 섞고 섞기를 기반으로 새 집합을 만듭니다. 그러면 GA는 포물선의 꼭짓점을 찾지 않습니다.

 
fxsaber :

분명히, 철저한 검색을 따른다면 y = x^2입니다. 그런 다음 최적화 문자열을 무작위로 섞고 섞기를 기반으로 새 집합을 만듭니다. 그러면 GA는 포물선의 꼭짓점을 찾지 않습니다.

예, 이러한 잘못된 오류는 피트니스 기능의 공간을 너무 많이 "찢어"버리는 것으로 나타났습니다.

입력 매개변수의 급진적인 처리 외에도 여기에서는 아무 것도 생각할 수 없습니다. Passes OnTick() - 당신이 제안한 것처럼 INCORRECT 매개변수를 대체하는 목발일 뿐이지만 실제로는 유전 알고리즘 이 여전히 "죽은" 상태입니다. 유전학은 결과 함수의 일부 "기울기"를 가정하므로 최대값으로 이동할 수 있습니다. 그리고 유효한 값보다 부정확한 값이 더 많을 때 최대값을 찾는 방법은 무엇입니까?

완전한 열거를 제외하고는 여기에서 아무 것도 생각할 수 없으며 완전한 열거는 매우 불안정한 솔루션을 찾을 것이라고 생각합니다.
 

입력 매개변수를 약간 설정할 수 있어야 합니다.

아주 일반적인 예를 들 수 있습니다. 일일 거래 간격을 최적화할 때 가장 자주 간격의 일일 시작 및 종료 시간이 설정됩니다(두 개의 입력 매개변수).

그러나 이것은 예를 들어 시작 시간과 지속 시간을 설정하는 것보다 GA의 경우 훨씬 더 나쁩니다. 같은 것 같지만 GA에는 해당되지 않습니다. 두 번째 경우에는 GA가 더 잘할 것입니다. "더 낫다"는 것은 다소 주관적인 평가이지만.

 

Georgiy Merts :

유효한 값보다 부정확한 값이 더 많을 때 최대값을 찾는 방법은 무엇입니까?

위와 같은 포물선을 취합시다. 유일한 입력 매개변수 값의 90% 테스트 간격에서 부정확하다고 가정해 봅시다. 현재 GA는 그러한 작업에서 죽을 것입니다. 그러나 제안된 옵션으로 행동하면 GA가 대처합니다.


@Andrey Dik 이 이러한 문제에 도움이 될 수 있다고 생각합니다. 그러나 정규 GA에 대한 건설적인 비판조차도 그에게 좋게 끝나지 않았습니다 ...

 
fxsaber :

위와 같은 포물선을 취합시다. 유일한 입력 매개변수 값의 90% 테스트 간격에서 부정확하다고 가정해 봅시다. 현재 GA는 그러한 작업에서 죽을 것입니다. 그러나 제안된 옵션으로 행동하면 GA가 대처합니다.

그것은 무엇입니까? 수정 사항을 가장 가까운 수정 사항으로 교체 ??? 모든 것이 이러한 수정 사항을 배포하는 방법에 달려 있습니다. 다음 수정 사항은 정상에서 멀어질 가능성이 큽니다.

그리고 잘못된 매개변수 세트 대신 올바른 결과를 얻을 수 있다는 것이 밝혀질 것입니다. 제 생각에는 이 역시 수행할 수 없습니다. 그러면 무엇을 찾을 수 있습니까? 최대값을 구해 보겠습니다. 하지만 잘못된 매개변수 세트가 있습니까?