遺伝的アルゴリズムの時間の複雑さをどのように決定しますか(一般的に)?可能なら。
私はこれについて多くのことを考えていました。私が持っていたすべての教えは、本質的に確率論的ではない問題の時間の複雑さを決定することに関連しています。
遺伝的アルゴリズムの時間の複雑さをどのように決定しますか(一般的に)?可能なら。
私はこれについて多くのことを考えていました。私が持っていたすべての教えは、本質的に確率論的ではない問題の時間の複雑さを決定することに関連しています。
回答:
遺伝的アルゴリズムはメタヒューリスティックであるため、すべての遺伝的アルゴリズムに一度に適用される一般的な分析はありません(極端に緩くすることはありません)。一般に、遺伝的アルゴリズムの実行時間に関する情報を検索する場合、「収束時間」という用語を使用すると、より一般的な用語になるため、より幸運になります。いくつかの正式なテクニックの良いスタート:
Y.ラビノビッチ、A。ウィグダーソン。遺伝的アルゴリズムの収束率を制限する手法。ランダム構造アルゴリズム、vol。14、いいえ。2、111-138、1999。
:正式な治療法のより多くのリソースについては、cstheory質問を検討遺伝的アルゴリズムに関する証明可能ステートメントを。
私は以前の回答に同意し、さらに以下を追加します。
通常、遺伝的アルゴリズムの時間の複雑さは気にしません。私たちは通常、いくつかのベンチマークと比較して結果がどの程度優れているか、収束率について気にします。
ただし、遺伝的アルゴリズムは反復で実行されることがわかります。最初は、一連のソリューション ランダムに生成されます(人口と呼ばれます)。ソリューションのコスト計算されます。一部の操作は、交差、突然変異などの各反復で... 最高の のソリューション に保持されています 前と同じように続けます。最後の反復の後、見つけた最良のソリューションを出力します。
ここで、反復の時間コストは内部演算に依存することに注意してください(例:交差、突然変異など)。 個別のソリューション、ランダムなソリューションの生成、ソリューションのコストの計算 etc ..)通常は実装が簡単で、問題にも依存します。一般に、それらはソリューションのサイズに依存します。
遺伝的アルゴリズムの実行時間は、反復回数にも依存します(明らかに!)。通常、ほとんど改善されていないソリューションに収束したときに停止します。これを保証する反復回数を見つける方法は?平均収束時間を見つけるための確率分析があります。例[1](かなり興味深い結果)を参照してください。しかし、遺伝的アルゴリズムが使用されている複雑な問題を分析するレベルにはまだ達していないことに注意してください。したがって、多くの場合、遺伝的アルゴリズムの反復回数は実験的に決定されます。
[1] Oliveto、Pietro S.、Jun He、Xin Yao。「組み合わせ最適化のための進化的アルゴリズムの時間の複雑さ:10年の結果。」International Journal of Automation and Computing 4.3(2007):281-293。