-5

私は遺伝的アルゴリズムプロジェクトに取り組んでいます。基本的な遺伝的アルゴリズムを使用して、Rastrigin関数またはEasom関数(y = 0の場合)の最大値/最小値を見つけるためのコードが必要です。遺伝的アルゴリズムを使って関数の最小値を見つける

+0

一般的な手順は、理論や実装を気にすることなく、いくつかの関連するMATLABライブラリを取得してプラグインすることです。あなたの問題が正確にどこにあるのか、いくつかの「簡単な」関数のサンプルコードがありますか? – LutzL

+0

@Lutzlいいえ、私はしません。実際に私はJAVA/C++でコードを書いていますが、関数の最適化のためにGAを使う方法を理解していません。 GAを使用して集団進化コードを作成しましたが、GAを使用した関数最適化では一度も作業しませんでした。 – Aman

+0

あなたはいくつかの人口を持っており、最小の価値を持つ人口と個人のすべての人物のための関数の価値を計算し、人口のより高い適応度を得ます。 – viceriel

答えて

2

私たちは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

まず一つがあるため、主要なフィットネスの優れています。

関連する問題