报名现已开始。
所有希望参加的人,请在此报名。 2016年6月20日,将介绍带有连接算法的接口的可执行脚本示例的代码。再过3周,即2016年7月11日,冠军赛本身将开始。
一般来说。请仅 就 "优化算法 "这一主题进行讨论。向右走一步,向左走一步--行刑队 :)
Andrey Dik:
而且总的来说,有想法,或者说都在思考这个问题。如果有的话,我可以分享我的想法。
报名现已开始。
所有希望参加的人,请在此报名。2016年6月20日,将介绍带有连接算法的接口的可执行脚本示例的代码。而在3周后,冠军赛本身将开始。
七个人是否足以获得冠军?(从MQ的角度来看)
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(...)。
Dmitry Fedoseev:
你认为我们在解决分配给我们的任务时可以不采用OOP吗?我习惯于用自己的方法来解决一切问题。(嗯,我不喜欢OOP。):)
为了获得冠军,这门课必须放在图书馆里。在库中制作一个函数,它将被从外部调用,这个函数将做所有的事情:创建一个类的实例,设置传递给函数的所有参数,等等。
函数名称是所有的标准。每个人都有自己的图书馆文件名。
检查员有一个脚本。检查员改变了导入库的名称,编译,执行。
算法优化锦标赛被认为是为那些追求者、好奇心强的人举办的比赛,对他们来说,站在原地意味着倒退。
锦标赛是在艰难的竞争条件下测试你的算法的好机会,这些条件比日常生活中遇到的条件更艰难,要求更高。这是一个确定你的算法不能再好的机会,这意味着解决未来生活挑战的信心,或者确定你的算法需要或可以进一步完善和改进。
规则。
1.基于任何搜索原则和理论的优化算法都可以参加冠军赛,绝对可以。
2.每位参赛者只能以源代码或以*.ex5库的编译形式代表一种算法。
3.锦标赛结束时,将根据以下标准对参赛者进行排名:算法的速度、健身函数的运行次数、寻解的准确性。
条款。
1.组织者保留拒绝任何人参加比赛的权利,而无需解释原因。
2.组织者有权参加冠军赛。
3.如果在公布奖项时,潜在的赞助商没有提供奖金,主办方将拒绝为参赛者提供奖金。
优化算法锦标赛的组织者:Joo.
勇敢地参与,并赢得胜利。很可能发生你的算法将来会被用于MT的内部优化器中,为什么不呢?