私は遺伝的アルゴリズムプロジェクトに取り組んでいます。基本的な遺伝的アルゴリズムを使用して、Rastrigin関数またはEasom関数(y = 0の場合)の最大値/最小値を見つけるためのコードが必要です。遺伝的アルゴリズムを使って関数の最小値を見つける
答えて
私たちはEasomの機能を見ています。
問題文の
最低を見つける:
F(X)= -cos(X1)のcos(×2)EXP( - (X1-PHI)^ 2 - (X2-PHI )^ 2)
表現は、実数の例ベクトルについて
を選択してください。各要素の値の間隔は< -5です。 5>。 GAの
フィットネス
主な問題。
Individual2 [-3.8 | 2.7 | -0.68 | 3.78 || -2.14 | 1.63 | | -1.75 -1]: [1 | 1
Individual1:私たちは、例えば2人を持っています| 1 | 1 || -0.5 | -0.5 | -0.5 | -0.5]
まず個人が4.8および-6.06としてデコードされます。彼のフィットネス機能は-9.23073 ...×10^-40です。
2番目の個体は、4と-2としてデコードされます。彼の体力は -4.30104456071396041116767479151655914468678005731098 ...×10^-13
今問題です。フィットネスはとても低いので、両方とも0と考えることができます。あなたには2つの選択肢があります。 Godotを待っている(おそらく世界の最小値を持つ少数の世代で個性的に生まれた)。またはヒューリスティックを使用することもできます。ヒューリスティックは、2つの値、主なフィットネスおよびマイナーなフィットネスに対するフィットネスの分割に基づいています。主な適応度は、関数のxの値です。この値は常に0であるため、startは検索できません。マイナーなフィットネスは、目的をもったヒューリスティックであり、検索方法を提供します。いくつかの関数、たとえばxの平均を定義します。だから、individual1のマイナーフィットネスは-0.63であるとindividual2 1.だから、「より良い」individual2であり、彼が唯一の検索に道を譲るなどの選択
マイナーフィットネスのより高い確率を持っています。
このように間違っている可能性がありますか?はい、ヒューリスティックです。 重要なことですが、マイナーな機能目的は、同じ主要機能を持つ個人の作成を優先することです。大きなフィットネスが異なる場合は、大きなフィットネスをオリエンテーションの価値として使用します。
例:
Individual1フィットネス:主要:-0.1 |マイナー:3
Individual2フィットネス:主要:0 |マイナー:8
まず一つがあるため、主要なフィットネスの優れています。
- 1. 遺伝的アルゴリズムの目的関数
- 2. 遺伝的アルゴリズムの遺伝子型
- 3. DEAP遺伝的アルゴリズム
- 4. セルラー遺伝的アルゴリズム - セルラー遺伝的アルゴリズムでは、両親
- 5. 遺伝的アルゴリズム:リクエストの最適化
- 6. ニューラルネット最適化遺伝的アルゴリズム
- 7. 遺伝的アルゴリズムのコアアルゴリズム
- 8. 遺伝的アルゴリズムの選択
- 9. 遺伝的アルゴリズムを使用した小時間テーブル
- 10. 遺伝的アルゴリズム(数字と演算子を使用して式を見つける)
- 11. 遺伝的アルゴリズムにおける遺伝子と染色体の表現
- 12. ディープコピーと遺伝的アルゴリズム
- 13. 遺伝的アルゴリズムSVM後
- 14. 構造体/遺伝的アルゴリズムの使用
- 15. 遺伝的アルゴリズムにおけるトーナメントセレクションの複数反復
- 16. 近親交配係数/遺伝的アルゴリズム
- 17. 遺伝的アルゴリズムを使用したMatlabの最適化
- 18. 遺伝的アルゴリズムを使用したニューラルネットワークの重み最適化
- 19. Dijkstraアルゴリズム複数の辺が最小値を見つける
- 20. 遺伝的アルゴリズム:Langermannの関数とトーナメントの選択
- 21. 適性関数と遺伝的アルゴリズムの選択
- 22. 効率的な遺伝的アルゴリズム
- 23. PYTHON:ライブラリ/ツールの遺伝的アルゴリズムと多目的最適化
- 24. タイムテーブルの生成Javaの遺伝的アルゴリズムを使用して
- 25. フローショップスケジューリングのための遺伝的アルゴリズム
- 26. PyBrainの遺伝的アルゴリズムの例/チュートリアル?
- 27. Javaでの遺伝的アルゴリズムの問題
- 28. タプルペア、Pythonを使って最小値を見つける
- 29. 遺伝的アルゴリズムとタイムテーブルのシミュレーテッドアニーリング
- 30. 遺伝的アルゴリズムの並列実行
一般的な手順は、理論や実装を気にすることなく、いくつかの関連するMATLABライブラリを取得してプラグインすることです。あなたの問題が正確にどこにあるのか、いくつかの「簡単な」関数のサンプルコードがありますか? – LutzL
@Lutzlいいえ、私はしません。実際に私はJAVA/C++でコードを書いていますが、関数の最適化のためにGAを使う方法を理解していません。 GAを使用して集団進化コードを作成しましたが、GAを使用した関数最適化では一度も作業しませんでした。 – Aman
あなたはいくつかの人口を持っており、最小の価値を持つ人口と個人のすべての人物のための関数の価値を計算し、人口のより高い適応度を得ます。 – viceriel