遺伝的アルゴリズムはいつ最適化に適していますか?


20

遺伝的アルゴリズムは、最適化手法の1つの形式です。多くの場合、関数の最適化には確率的勾配降下法とその導関数が最適な選択ですが、遺伝的アルゴリズムが依然として使用されることもあります。たとえば、NASAのST5宇宙船のアンテナは、遺伝的アルゴリズムを使用して作成されました。

ST5アンテナ

一般的な勾配降下法よりも遺伝的最適化法の方が適しているのはいつですか?


7
例の+1、元の論文を見つけました:alglobus.net/NASAwork/papers/Space2006Antenna.pdf
ティム

回答:


19

遺伝的アルゴリズム(GA)は経験則的に多くの場合に適切な答えを提供するのに優れたヒューリスティックのファミリーですが、特定のドメインに最適なオプションとなることはめったにありません。

デリバティブベースのアルゴリズムに言及しますが、デリバティブがない場合でも、GAよりも優れたパフォーマンスを発揮するデリバティブのない最適化アルゴリズムがたくさんあります。いくつかのアイデアについては、これこの回答を参照してください。

多くの標準最適化アルゴリズムに共通するのは(導関数なしの方法でも)、基礎となる空間が滑らかな多様体(おそらくいくつかの離散的な次元を持つ)であり、最適化する関数がある程度うまく機能しているという仮定です。

ただし、すべての関数が滑らかな多様体で定義されるわけではありません。グラフまたは他の離散構造に対して最適化する場合があります(組み合わせ最適化)-ここでは専用のアルゴリズムがありますが、GAも機能します。

複雑で離散的な構造にわたって定義された関数に進むほど、特に遺伝演算子が最適に機能する表現を見つけることができる場合(より多くの手動調整とドメイン知識が必要)、より多くのGAが役立ちます。

もちろん、将来はGAを完全に忘れ、離散空間を連続空間マッピングする方法を開発し、連続表現にある最適化機構を使用する可能性があります。


2

勾配降下法が単一基準の最適化専用である場合、遺伝的手法は多基準の最適化に適しています。勾配降下法を使用すると、導関数が存在し、最適解が1つしかない場合に最小関数を見つけることができます(ローカルミニマを除く場合)。遺伝的アルゴリズムは、多基準問題で使用でき、それぞれが最初の母集団から進化した母集団の個人を支援する連続した解決策につながります。最適化する値は個人の表現型であり、いくつかの表現型が存在する場合があります。一般に、各表現型の優れた価値を同時に持っている個人はいないため、解決策は1つだけではありません。最終母集団の個体は、すべて最適化のソリューションであり、「パレートフロント」の一部であり、「パレートランク1」としてマークされます。個人。これは、各表現型で同じパフォーマンスを持っている他のすべての個人と比較して、少なくとも1つの表現型が他の表現型よりも優れていることを意味します。


降格についてはわかりましたが、私が間違っているところを説明してもらえますか?
manu190466 16

5
このサイトは、コンテキストと背景を提供する回答を重視しています。興味深い質問に対する有用な回答のリポジトリに追加する回答を提供する方法については、このヘルプページを参照してください。あなたの答えを説明することは、あなた自身の理解をテストする良い方法でもあります。たとえば、この場合、ウィキペディアのページは遺伝的アルゴリズムの目的として単一値のフィットネス関数を暗示しているように見えるため、遺伝的アルゴリズムが「多基準最適化に適している」方法を拡張することができます。
EDM

0

どの意味でベストですか?

私の経験では、GAは最も実用的なオプティマイザーの1つです。より正確なアルゴリズムの多くは、数学の世界で実際の問題を形式化するのに時間と労力を必要としますが、GAは複雑なルールと制約を持つコスト関数を処理できます(GAは特定の計算ではなく、実行アプローチによって関連付けられます)。このプロセスは簡単であり、探索的作業のために多くのアプローチを試すことができます。

また、繰り返されるタスクに適した将来の実行のために、アルゴリズムに過去のソリューションを再注入する可能性も高く評価しています。

概念的には、遺伝的アルゴリズムは関数のハッシュマップで表すことができ、Clojureのような関数型言語に適しています。Clojureは大きな結果を非常に迅速に達成できる言語でもあります。

遺伝的アルゴリズムはネストすることもできます。1つのGAのコスト関数をGAにすることができます。これらのアルゴリズムは最新のハードウェアとインフラストラクチャを活用しており、非常に大きな母集団を計算できるため、単純な突然変異/選択操作でも良好な結果を得ることができます。

波動関数の最小値を見つけるなどの単純な問題でも、GAはそれほど悪くなく、許容できる時間内に適切な精度を達成できます。

分析ソリューションの実行時間と精度は速いかもしれませんが、分析ソリューションを作成するために必要な時間は、期待される利点を上回ることがあります!そうするとき ?少なくともメタ最適化のために、私にはほぼ毎回。


この議論の主な目的は、遺伝的アルゴリズムがブラックボックスオプティマイザーであるということです。しかし、ブラックボックスオプティマイザーはたくさんあります。なぜこれが他の選択肢よりも優れているのでしょうか?さらに、GAが制約を簡単に処理できるのは実際にはそうではないと思います。たとえば、4Dワールドの3Dサブスペースを除いて関数が未定義の場合、バニラGAは失敗します。
クリフAB

@CliffAB実際、私はそれについては何も言わなかったし、おそらくそれとは反対かもしれません。GAでは、コアの計算を多く制御できます。GA自体は一連のステップと軽い順序です。コスト関数を定義すると、関数内のあらゆるもの(クエリ可能な外部制約を含む)を処理できます。私の主な論点は次のとおりです。多くの問題を処理し、フレームワークとの互換性を気にする必要はありません(コストを返すだけです)。最高の
ジョセフYourine
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.