アルゴリズム最適化選手権。

 

アルゴリズム最適化選手権は、探究心旺盛で、立ち止まることが後戻りを意味する人たちのための大会として構想されています。

このチャンピオンシップは、日常生活で遭遇するよりも過酷な競争条件のもとで、アルゴリズムをテストする絶好の機会なのです。それは、あなたのアルゴリズムがもはやこれ以上良くならないことを確認するチャンスであり、それはこれからの人生の課題を解決する自信を意味しますし、あなたのアルゴリズムにさらなる改良と改善が必要であること、または可能であることを確認するチャンスでもあります。

ルール

1.あらゆる探索の原理や理論に基づいた最適化のアルゴリズムが、このチャンピオンシップに認められます。

2.参加者は、1つのアルゴリズムをソースコードまたは*.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

アンドレイ・ディク
タグコノウ
イゴール・ヴォロディン
ドミトリー・フェドセーエフ
セルゲイ・チャリシェフ
Ghenadie Tumco
イゴール・ヴォロディン

 
しばらく先延ばしにしたほうがいいのか?記事を書く コードベースにクラステンプレートを置く。とても良いテンプレートができたと思います:)
 
チャンピオンシップは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 型の 配列で渡される.

type - 関数の種類: min または max - 関数の最小値または最大値で何を探すか.

あとは、自分用に作っていたので必要ない? 記憶のために:値-極限での値、注-何らかの記述。チャンピオンシップには必要ない、特にバリュー。

***

今は関数ではなく、クラスで、その中にffを設定するメソッドがあります。

   
      void SetFF(CFF * aff){
         this.ff=aff;
      }  
それから、いたるところで this.ff.fun(...) を使っています。
 

チャンピオンシップのためには、図書館にクラスを置く必要があります。この関数は、クラスのインスタンスの生成、関数に渡されるすべてのパラメータの設定など、すべての処理を行います。

関数名は全て標準です。ライブラリのファイル名は人それぞれです。

チェッカーにはスクリプトがあります。チェッカーは、インポートした ライブラリの名前を変更し、コンパイルして実行します。

それだけです。

CFF * ff=new CFF1();

チェッカーのスクリプトで

 
Dmitry Fedoseev:

チャンピオンシップのためには、図書館にクラスを置く必要があります。この関数は、クラスのインスタンスの生成、関数に渡されるすべてのパラメータの設定など、すべての処理を行います。

関数名は全て標準です。ライブラリのファイル名は人それぞれです。

チェッカーにはスクリプトがあります。チェッカーは、インポートしたライブラリの名前を変更し、コンパイル、実行します。

与えられた課題を解決する上で、OOPがなくても大丈夫だと思いますか?何でも自分のやり方で解決するのが当たり前になっています。(まあ、OOPは好きではないですが)。:)
理由: