遺伝的アルゴリズムを使用して関数の最小値を見つける

安全

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

viceriel

さて、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]

編集
0

コメントを追加

0

関連記事

分類Dev

離散値を使用して関数を最小化する遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズム(数字と演算子を使用して式を見つける)

分類Dev

関数の最小値点を見つけるアルゴリズム

分類Dev

STLアルゴリズムを使用して最小値と最大値を見つける方法は?

分類Dev

遺伝的アルゴリズム:点に適合する曲線を見つける

分類Dev

MATLABの最適化ツールボックスで遺伝的アルゴリズムを使用して多目的関数を解く

分類Dev

固定領域で単一の変数関数の最小/最大を見つけるアルゴリズム

分類Dev

固定領域で単一の変数関数の最小/最大を見つけるアルゴリズム

分類Dev

Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

分類Dev

Aforge遺伝的アルゴリズムライブラリを使用して、遺伝子を兼ねる染色体を実装しますか?

分類Dev

C ++で関数を見つける<アルゴリズム>

分類Dev

MlroseTSPOpt遺伝的アルゴリズム独自のコスト関数

分類Dev

DFS アルゴリズムを使用して、マトリックス内の隣接する数値の最大領域を見つける

分類Dev

f(x)= a * min(b、x)?の形式の関数の最大値を見つけるためのアルゴリズム

分類Dev

最大値と最小値を見つけるためのJavaアルゴリズムの助けが必要

分類Dev

関数を使用して最小3つの値を見つける

分類Dev

数の最大の素数を見つけるアルゴリズム

分類Dev

アルゴリズムの命令の数を見つける

分類Dev

bfsアルゴリズムを使用して境界点を見つける方法

分類Dev

bfsアルゴリズムを使用して境界点を見つける方法

分類Dev

パラメータを数値に制約するC#遺伝的アルゴリズム

分類Dev

遺伝的アルゴリズムは、数値データを使用してソリューションをどのように進化させることができますか?

分類Dev

最小の計算量で素数を見つけるアルゴリズム

分類Dev

O(1)補助空間を使用して、配列内のk個の最小数を同じ順序で見つけるアルゴリズム

分類Dev

Dinicのアルゴリズムを使用して、未処理のグラフで最小カットエッジを見つける方法は?

分類Dev

リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

分類Dev

Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

分類Dev

遺伝的アルゴリズムの過剰適合を回避する方法

分類Dev

遺伝的アルゴリズムと従来のアルゴリズムを区別する

Related 関連記事

  1. 1

    離散値を使用して関数を最小化する遺伝的アルゴリズム

  2. 2

    遺伝的アルゴリズム(数字と演算子を使用して式を見つける)

  3. 3

    関数の最小値点を見つけるアルゴリズム

  4. 4

    STLアルゴリズムを使用して最小値と最大値を見つける方法は?

  5. 5

    遺伝的アルゴリズム:点に適合する曲線を見つける

  6. 6

    MATLABの最適化ツールボックスで遺伝的アルゴリズムを使用して多目的関数を解く

  7. 7

    固定領域で単一の変数関数の最小/最大を見つけるアルゴリズム

  8. 8

    固定領域で単一の変数関数の最小/最大を見つけるアルゴリズム

  9. 9

    Matlabの遺伝的アルゴリズムを使用した画像再構成アルゴリズムの最適化

  10. 10

    Aforge遺伝的アルゴリズムライブラリを使用して、遺伝子を兼ねる染色体を実装しますか?

  11. 11

    C ++で関数を見つける<アルゴリズム>

  12. 12

    MlroseTSPOpt遺伝的アルゴリズム独自のコスト関数

  13. 13

    DFS アルゴリズムを使用して、マトリックス内の隣接する数値の最大領域を見つける

  14. 14

    f(x)= a * min(b、x)?の形式の関数の最大値を見つけるためのアルゴリズム

  15. 15

    最大値と最小値を見つけるためのJavaアルゴリズムの助けが必要

  16. 16

    関数を使用して最小3つの値を見つける

  17. 17

    数の最大の素数を見つけるアルゴリズム

  18. 18

    アルゴリズムの命令の数を見つける

  19. 19

    bfsアルゴリズムを使用して境界点を見つける方法

  20. 20

    bfsアルゴリズムを使用して境界点を見つける方法

  21. 21

    パラメータを数値に制約するC#遺伝的アルゴリズム

  22. 22

    遺伝的アルゴリズムは、数値データを使用してソリューションをどのように進化させることができますか?

  23. 23

    最小の計算量で素数を見つけるアルゴリズム

  24. 24

    O(1)補助空間を使用して、配列内のk個の最小数を同じ順序で見つけるアルゴリズム

  25. 25

    Dinicのアルゴリズムを使用して、未処理のグラフで最小カットエッジを見つける方法は?

  26. 26

    リストの位置で囲まれた項目を使用して計算する(遺伝的アルゴリズムの適合性)

  27. 27

    Rで遺伝的アルゴリズムを使用してCARTのパラメーターを最適化する方法

  28. 28

    遺伝的アルゴリズムの過剰適合を回避する方法

  29. 29

    遺伝的アルゴリズムと従来のアルゴリズムを区別する

ホットタグ

アーカイブ