算法优化锦标赛。

 

算法优化锦标赛被认为是为那些追求者、好奇心强的人举办的比赛,对他们来说,站在原地意味着倒退。

锦标赛是在艰难的竞争条件下测试你的算法的好机会,这些条件比日常生活中遇到的条件更艰难,要求更高。这是一个确定你的算法不能再好的机会,这意味着解决未来生活挑战的信心,或者确定你的算法需要或可以进一步完善和改进。

规则。

1.基于任何搜索原则和理论的优化算法都可以参加冠军赛,绝对可以。

2.每位参赛者只能以源代码或以*.ex5库的编译形式代表一种算法。

3.锦标赛结束时,将根据以下标准对参赛者进行排名:算法的速度、健身函数的运行次数、寻解的准确性。

条款。

1.组织者保留拒绝任何人参加比赛的权利,而无需解释原因。

2.组织者有权参加冠军赛。

3.如果在公布奖项时,潜在的赞助商没有提供奖金,主办方将拒绝为参赛者提供奖金。

优化算法锦标赛的组织者:Joo.

勇敢地参与,并赢得胜利。很可能发生你的算法将来会被用于MT的内部优化器中,为什么不呢?

 

报名现已开始。

所有希望参加的人,请在此报名。 2016年6月20日,将介绍带有连接算法的接口的可执行脚本示例的代码。再过3周,即2016年7月11日,冠军赛本身将开始。

 
一般来说。请仅 就 "优化算法 "这一主题进行讨论。向右走一步,向左走一步--行刑队 :)
 
Andrey Dik:

报名现已开始。

所有希望参加的人,请在此报名。2016年6月20日,将介绍带有连接算法的接口的可执行脚本示例的代码。而在3周后,冠军赛本身将开始。

而且总的来说,有想法,或者说都在思考这个问题。如果有的话,我可以分享我的想法。
 

关于交易、自动交易系统和测试交易策略的论坛

Andrey Dik, 2016.06.10 17:24

安德烈-迪克
标签 科诺
伊戈尔-沃罗金
Dmitry Fedoseev
Sergey Chalyshev
Ghenadie Tumco
伊戈尔-沃罗金

 
我们是否应该把它推迟一段时间?写一篇文章。在代码库中放置一个类模板。我想我已经有了一个非常好的模板:)
 
七个人是否足以获得冠军?(从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();

在优化函数中,我们有一个CFF类型的参数,用来传递一个指向具有选定FF的类的指针。

***

基类的方法。

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

fun - 函数本身,参数以一个双倍类型 的数组形式传递。

type - 函数类型:min或max - 在函数中寻找最小或最大。

其余的不需要,我是为自己做的? 为了记忆:价值--极值的价值,注意--一些描述。冠军赛不需要他们,尤其是价值。

***

现在我没有一个函数,而是一个类,并在其中有一个方法来设置ff。

   
      void SetFF(CFF * aff){
         this.ff=aff;
      }  
然后我到处使用this.ff.fun(...)。
 

这门课需要放在图书馆里,以获得冠军。在库中制作一个函数,它将被从外部调用,这个函数将做所有的事情:创建一个类的实例,设置传递给函数的所有参数,等等。

函数名称是所有的标准。每个人都有自己的图书馆文件名。

检查员有一个脚本。检查器改变了导入的 库的名称,编译并执行了它。

就这样了。

CFF * ff=new CFF1();

在检查员的脚本中。

 
Dmitry Fedoseev:

为了获得冠军,这门课必须放在图书馆里。在库中制作一个函数,它将被从外部调用,这个函数将做所有的事情:创建一个类的实例,设置传递给函数的所有参数,等等。

函数名称是所有的标准。每个人都有自己的图书馆文件名。

检查员有一个脚本。检查员改变了导入库的名称,编译,执行。

你认为我们在解决分配给我们的任务时可以不采用OOP吗?我习惯于用自己的方法来解决一切问题。(嗯,我不喜欢OOP。):)