최적화 알고리즘 챔피언십.

 

최적화 알고리즘의 챔피언십은 검색하고 탐구하는 사람들을 위한 경쟁으로 생각됩니다.

챔피언십은 일상 생활에서 마주하는 것보다 더 힘들고 까다로운 경쟁 조건에서 알고리즘을 테스트할 수 있는 좋은 기회입니다. 이것은 당신의 알고리즘이 더 이상 나아질 수 없다는 것을 확인하는 기회입니다. 즉, 다가오는 삶의 문제를 해결할 가능성에 대한 확신을 의미하거나 알고리즘을 더 개선하고 개선하는 것이 필요하거나 가능하다는 것을 의미합니다.

규칙:

1. 검색의 원칙과 이론에 기반한 최적화 알고리즘은 절대적으로 모든 것이 챔피언십에 허용됩니다.

2. 각 참가자는 자신을 대신하여 소스 코드 또는 *.ex5 라이브러리의 컴파일된 형식으로 하나의 알고리즘만 제출할 수 있습니다.

3. 챔피언십 결과에 따라 참가자는 알고리즘 속도, 피트니스 기능 실행 횟수, 솔루션 찾기 정확도와 같은 기준에 따라 순위가 매겨집니다.

정황:

1. 주최자는 정당한 사유 없이 누구든지 참가를 거부할 수 있는 권리를 가집니다.

2. 주최자는 대회에 참가할 권리가 있다.

3. 주최자는 경품 발표 시점에 잠재적 후원자로부터 경품 자금이 있는 경우 참가자에게 유리한 경품 수령을 거부합니다.

최적화 알고리즘 챔피언십 주최자: Joo .

용기를 내서 참여하고 승리하십시오. 당신의 알고리즘이 미래에 일반 MT 옵티마이저에서 사용될 가능성이 있습니다. 왜 안 될까요?

 

등록 오픈을 선언합니다.

참여를 원하는 사람은 여기에서 등록하십시오. 2016년 6월 20일, 알고리즘 연결을 위한 인터페이스가 있는 실행 가능한 스크립트의 예제 코드가 제공 됩니다. 그리고 3주 후인 2016년 7월 11일, 챔피언십 자체가 시작됩니다.

 
일반적으로 그렇습니다. "최적화 알고리즘" 주제에 대해서만 토론 하십시오 . 오른쪽 단계, 왼쪽 단계 - 실행 :)
 
Andrey Dik :

등록 오픈을 선언합니다.

참여를 원하는 사람은 여기에서 등록하십시오. 2016년 6월 20일 에 알고리즘 연결을 위한 인터페이스가 있는 실행 가능한 스크립트의 예제 코드 가 제공됩니다. 그리고 3주 안에 챔피언십 자체가 시작됩니다.

일반적으로 아이디어가 있거나 모든 것이 생각하는 과정에 있습니다. 그렇다면 내 생각을 나눌 수 있습니다.
 

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

안드레이 딕 , 2016.06.10 17:24

안드레이 딕
피터 코노프
이고르 볼로딘
드미트리 페도세프
세르게이 찰리셰프
게나디 툼코
이고르 볼로딘

 
이것을 잠시 미룰 수 있습니까? 기사를 작성하십시오 . 코드 베이스에 클래스 템플릿을 넣습니다. 매우 성공적인 템플릿을 얻은 것 같습니다 :)
 
7명이면 우승을 차지할 수 있을까요? (MQ 측면에서)
 
Dmitry Fedoseev :
일반적으로 아이디어가 있거나 모든 것이 생각하는 과정에 있습니다. 그렇다면 내 생각을 나눌 수 있습니다.

물론 아이디어가 있습니다.

기사가 아주 좋습니다. 어떤 방향으로 기사를 쓰고 싶습니까?

실제로 필요한 경우 챔피언십을 연기할 수 있습니다. 하지만 개막까지는 아직 시간이 많이 남아 2016년 7월 11일 대회가 시작된다 .

 
Andrey Dik :

물론 있습니다.

퍼뜨려라. 정죄합시다.

기사가 아주 좋습니다. 하지만 더 이상 기다릴 수 없습니다. 사람들은 기억력이 짧고 모든 것이 어떻게 시작되는지 빨리 잊어버리는 경향이 있습니다.

 class CFF{
   public :
   virtual double fun( double & x[]){ return ( 0 );}
   virtual string type(){ return ( "" );}
   virtual double value(){ return ( 0 );}
   virtual string note(){ return ( "" );}
};

class CFF1: public CFF{
   public :
   double fun( double & x[]){
       int c= ArraySize (x);
       double s= 0 ;
       for ( int i= 0 ;i<c;i++){
         s+= MathPow (x[i], 2 );
      }
       return (s);   
   }
   virtual string type(){
       return ( "min" );
   }
   virtual double value(){
       return ( 0 );
   }
   virtual string note(){
       return ( "" );
   }   
};

class CFF2: public CFF{
   public :
   double fun( double & x[]){
       int c= ArraySize (x);
       double s= 0 ;
       double p= 0 ;
       for ( int i= 0 ;i<c;i++){
         s+= MathAbs (x[i]);
         p*= MathAbs (x[i]);
      }
       return (s+p); 
   }
   virtual string type(){
       return ( "min" );
   }
   virtual double value(){
       return ( 0 );
   }
   virtual string note(){
       return ( "" );
   }   
};

조사된 기능(ff)을 선택하기 위한 구성입니다. 가상 메서드가 있는 기본 클래스와 다양한 기능이 있는 자식 클래스.

이것이 내가 선언하는 방법입니다.

CFF * ff= new CFF1();

또는 필요한 기능에 따라:

CFF * ff= new CFF2();

최적화 함수에는 ff가 선택된 클래스에 대한 포인터를 전달하기 위해 CFF 유형의 매개변수가 있습니다.

***

기본 클래스 메서드:

   virtual double fun( double & x[]){ return ( 0 );}
   virtual string type(){ return ( "" );}   

fun - 실제 함수, 매개변수는 double 유형의 배열로 전달됩니다.

유형 - 함수 유형: 최소 또는 최대 - 함수 최소 또는 최대에서 찾을 항목.

나머지는 필요하지 않습니다. 직접 하신 건가요? 메모리의 경우: 값 - 극한값, 참고 - 일부 설명. 챔피언십, 특히 가치에는 필요하지 않습니다.

***

이제 함수는 없지만 ff를 설정하는 클래스와 메서드가 있습니다.

   
       void SetFF(CFF * aff){
         this .ff=aff;
      }  
그런 다음 this.ff.fun(...)을 사용합니다.
 

챔피언십의 경우 클래스를 도서관에 배치해야 합니다. 외부에서 호출될 라이브러리에 하나의 함수를 만드십시오. 클래스의 인스턴스 생성, 함수에 전달된 모든 매개변수 설정 등 모든 것이 이 함수에 있습니다.

함수 이름은 모두의 표준입니다. 모든 사람은 자신의 라이브러리 파일 이름을 가지고 있습니다.

확인 스크립트에서. 검증자는 가져온 라이브러리의 이름을 변경하고 컴파일하고 실행합니다.

여기있어:

CFF * ff= new CFF1();

검증자의 스크립트에서.

 
Dmitry Fedoseev :

챔피언십의 경우 클래스를 도서관에 배치해야 합니다. 외부에서 호출될 라이브러리에 하나의 함수를 만드십시오. 클래스의 인스턴스 생성, 함수에 전달된 모든 매개변수 설정 등 모든 것이 이 함수에 있습니다.

함수 이름은 모두의 표준입니다. 모든 사람은 자신의 라이브러리 파일 이름을 가지고 있습니다.

확인 스크립트에서. 검증자는 가져온 라이브러리의 이름을 변경하고 컴파일하고 실행합니다.

챔피언십에서 설정한 문제를 OOP 없이 해결하는 것이 가능하다고 생각하십니까? 나는 모든 것을 내 방식으로 해결하는 데 익숙합니다. (글쎄, 나는 OOP에 대한 영혼이 없습니다). :)
사유: