1

現在、遺伝的プログラミング ライブラリとしてRGPを使用しています。別のライブラリのアイデア (より良いドキュメント、より積極的な開発など) がある場合は、あなたの提案を聞きたいです。

問題はかなり単純です。R で n 個のパラメーターを持つ関数が与えられた場合、遺伝的プログラミングを使用してグローバル最小値を見つけるにはどうすればよいでしょうか。サンプル プログラムの 1 つを変更してみましたが、この例では線形回帰が使用されているようで、私の状況では適切ではないと思います。

誰かが私が使用できるサンプルコードを持っていますか?

4

2 に答える 2

3

HeuristicLabの使用をお勧めします。実装されているアルゴリズムはいくつかあります。遺伝的アルゴリズム、進化戦略、シミュレーテッドアニーリング、粒子群最適化など、実数値関数の最小化を検討している場合は興味深いかもしれません。ソフトウェアはC#で実装され、Windowsで実行されます。提供されているいくつかのテスト機能(Rosenbrock、Schaffer、Ackleyなど)を最適化できるGUIを提供します。遺伝的プログラミング(GP)の非常に優れた実装も利用できますが、私の印象ではGPは必要ありません。遺伝的プログラミングでは、未知の関数の出力データを指定して関数を進化させます。あなたの場合、関数は既知であり、関数の出力を最小化するパラメーターを見つける必要があると思います。

ソフトウェアの最新のメジャーバージョンは2010年に一般公開され、その後、いくつかのマイナーリリースでさらに開発されました。現在、年に2回程度のリリースがあります。ますます活発になっている助けを求めることができるグーグルグループがあり、機能を示すいくつかのビデオチュートリアルがあります。3分以内に機能の概要を説明するYouTubeのツアービデオをチェックしてください。メタヒューリスティックスの分野の研究者であるAffenzeller教授を取り巻く研究グループがこのソフトウェアを開発し、オーストリアに拠点を置いています。私もこのグループの一員です。

GUIで関数を実装する方法、またはC#を知っている場合は、プラグインとして問題を実装する方法を確認してください

于 2012-06-10T11:03:45.110 に答える
2

GP の代わりに遺伝的アルゴリズムを使用して、n 個の変数を持つ関数の最小値を見つけることができます。

基本的にあなたがすることは次のとおりです。

  • 初期値を割り当てる
  • n 染色体の初期集団を生成する
  • ながら (真)
    • 各染色体の適合度 f(x, y) を評価する
      • f(x, y) の満足のいく解に達したら → ループを抜ける
    • 選択スキームの作成 (トーナメント選択)
    • 染色体の選択 (選択):
      • エリート主義
      • クロスオーバー
    • ミューテーションを作成する
    • 複製された染色体を変更する
    • 染色体の元の集団を置き換える
  • 終わりながら
于 2012-08-17T09:11:16.230 に答える