4

私は修士論文を実行していますが、論文の理論面で大きな問題があります。

遺伝的アルゴリズムを使いたいとします。

2種類の機能があります:

a) 次のような関係を持ついくつかの関数: ||x1 - x2||>>||f(x1) - f(x2)|| 例: y=(1/10)x^2

b) 次のような関係を持ついくつかの関数: ||x1 - x2||<<||f(x1) - f(x2)|| 例: y=x^2

私の質問は、遺伝的アルゴリズムを使用して最適なものを見つけたい場合、上記の種類の関数のどれが他の関数よりも難しいかということです (MINIMUM または MAXIMUM は気にしないでください)。

どうもありがとう、アルミン

4

1 に答える 1

1

追加の制約を課すことなく、一般的にこの質問に答えることができるとは思いません。

それは、扱っている遺伝的アルゴリズムの特定のタイプに依存します。フィットネス比例 (ルーレットホイール) 選択を使用する場合、フィットネス値の範囲を変更することは非常に重要です。トーナメント選択やランクバイアス選択では、個人間の順序関係が成立している限り効果はありません。

それが問題だと言えるとしても、どちらのバージョンが GA にとって難しいかを言うのはまだ難しいでしょう。主な影響は選択圧力にあり、これによりアルゴリズムは多かれ少なかれ迅速に収束します。それって良いのそれとも悪いの?場合によります。f(x)=x^2 のような関数の場合、最適解は 1 つしかないため、できるだけ早く収束することはおそらく素晴らしいことです。できるだけ早くそれを見つけてください。より複雑な関数の場合、適切な解を見つけるために収束を遅くする必要がある場合があります。したがって、特定の関数について、フィットネス値のスケーリングおよび/または変換は、違いを生む場合としない場合があります。

おそらく、すべての問題と最適化アルゴリズムに対して単一の最良の選択は存在しないというノーフリーランチの議論もあります。

修正していただけると幸いですが、どのクラスのアルゴリズムと問題に焦点を当てているかをより正確に指定せずに、何らかの方法で言うことはできないと思います。

于 2012-11-06T11:57:24.490 に答える