私は遺伝的アルゴリズムプロジェクトに取り組んでいます。基本的な遺伝的アルゴリズムを使用して、Rastrigin関数またはEasom関数(y = 0の場合)の最大値/最小値を見つけるためのコードが必要です。
さて、Easom関数を見てみましょう。
問題文
最小値を見つける:
f(x)= -cos(x1)cos(x2)exp(-(x1-phi)^ 2-(x2-phi)^ 2)
表現選択
たとえば、実数のベクトル。各要素の値の間隔は<-5です。5>。
フィットネス
GAの本編。たとえば、2人の個人がいます。
個人1: [-1 | 2.7 | -0.68 | 3.78 || -2.14 | 1.63 | -1.75 | -3.8]
個人2: [1 | 1 | 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の方が「優れて」おり、選択などの確率が高くなります。
マイナーなフィットネスはあなたの検索に道を与えるだけです。
このように間違っている可能性がありますか?はい、それはヒューリスティックです。重要な、マイナーな機能の目的は、同じメジャーな機能を持つ個人の好みを作成することです。メジャーフィットネスが異なる場合、オリエンテーションの値としてメジャーフィットネスを使用します。
例:
個人1フィットネス:メジャー:-0.1 | マイナー:3
個人2フィットネス:メジャー:0 | マイナー:8
最初のものは、主要なフィットネスのために優れています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加