遺伝的アルゴリズムの性能を実験的に分析する方法は?


7

最適化問題の遺伝的アルゴリズムがあります。同じ入力と同じパラメーター(母集団のサイズ、世代のサイズ、クロスオーバー、突然変異)での複数の実行に対するアルゴリズムの実行時間をプロットしました。

実行時間は実行ごとに異なります。これは正常ですか?

また、大きな入力で実行すると、期待に反して実行時間が増加する代わりに減少する場合があることにも気付きました。これは予想されますか?

遺伝的アルゴリズムのパフォーマンスを実験的に分析するにはどうすればよいですか?


5
GAとヒューリスティックは予測不可能であることが多く、理論的に理解または分析することは非常に困難です。あなたが提供したデータに基づいて、私は「それはおそらく正常である、私は知りません」よりも良い答えを提供できるとは思いません。同じパラメーターでGAを複数回実行してみて、平均反復回数を記録してください。次に、パラメーターを微調整して、再試行してください。
Juho

2
はい、それは正常です、それはヒューリスティックアルゴリズムです(これは非決定論的なアルゴリズムではなく、技術的な意味があり、これらは異なる概念です)。任意のアルゴリズムは上でパフォーマンスが向上することも通常であるいくつかのより大きな入力いくつかの彼らは解決するために簡単になる可能性があるため、唯一の決定要因ではない場合は、小さい入力サイズ。実際のインスタンスでのアルゴリズムのパフォーマンスについては、通常、それらが実行する方法と特定のデータセット、およびそれらのデータセットの問題について他のアルゴリズムとどのように比較するか以外は、多くを語ることはできません。
Kaveh 2014年

実行時間を監視する方法については触れませんでした。ヒューリスティックを予測するのは難しいと誰もが言ったことに加えて、実際の計算作業を測定しないと(たとえば、コンピューターのクロックに従って実行時間を決定することによって)、厄介な結果が得られる可能性が非常に高くなります...
ロンテラー

1
質問の要点がよくわかりません。興味のあるパフォーマンス指標は何ですか?その後、N回実行して平均化しても何が得られないのですか?
ラファエル

回答:


8

典型的なアプローチは、進化的アルゴリズム(EA)のいくつかの実行を実行し、時間の経過に伴う平均パフォーマンスをプロットすることです実行最高の個々の NOT母集団平均の平均パフォーマンス)。

目安としては、最低30回の実行をお勧めします(もちろん、50回から100回の実行がより適切です)。

平均は、一連の実行で達成された最良値よりも優れていますが、分散も考慮する必要があります。

ランディオルソンのウェブサイトにいくつかの良い例があります:


いくつかの反復での両方のアルゴリズムの平均適合度

いくつかの複製に対する両方のアルゴリズムの平均適合度。このグラフから、私たちのアルゴリズムは平均して現在の最良のアルゴリズムよりもパフォーマンスが良いと結論付けます。

95%信頼区間の平均適合度

各アルゴリズムの95%信頼区間での平均適合度。このグラフは、私たちのアルゴリズムが実際には現在の最良のアルゴリズムよりもパフォーマンスが優れているわけではなく、偶然のために平均してパフォーマンスが優れているように見えるだけであることを示しています。


母平均の信頼区間を計算する方法の基本的な内訳は次のとおりです。

  1. 標本平均を特定する バツ¯。ながらバツ¯ とは異なり μ、人口平均、それらはまだ同じ方法で計算されます:

    バツ¯=Σバツ
  2. (修正された)標本標準偏差を特定する s

    s=Σ=1バツバツ¯21
    sある推計人口標準偏差のσ
  3. 臨界値を計算し、t、Student-t分布の。この値は信頼水準に依存し、C、および観測数、

    臨界値は、t分布表から検出されます(ほとんどの統計教科書にリストされています)。この表ではt と書かれている

    tαr
    どこ r=1自由度です(観測数から1を引くことにより求められます)。α=1C2有意水準です。

    完全に正確なクリティカルへのより良い方法 tvalueは、スプレッドシート(T.INV.2T関数など)、科学計算環境(SciPyなどstats.t.ppf)、言語ライブラリ(C ++およびなどboost::math::students_t)に実装されている統計関数です。

  4. 見つかった値を適切な方程式に代入します。

    バツ¯tsバツ¯+ts
  5. 最後のステップは、答え解釈することです。見つかった答えは上限と下限のある間隔であるため、与えられたデータに基づいて、母集団の真の平均は下限上限の間であり、選択された信頼水準であると述べるのが適切です。


2つのアルゴリズムの信頼区間が重なるほど、アルゴリズムが同じように実行する可能性が高くなります(または、2つのアルゴリズムを区別するのに十分なサンプリングが行われていません)。95%の信頼区間がオーバーラップしない場合、平均パフォーマンスが最も高いアルゴリズムのパフォーマンスが大幅に向上します。

EAでは、ソースの配布は基本的に正規ではなく、これまで正式に適用されていたのは正規の配布である場合のみです。

実際、それはまだ多くのことを伝えています。次の表は、4つの状況でのt間隔のパフォーマンスをまとめたものです。

                             Normal curve | Not Normal curve
Small sample size (n < 30)      Good      |       Poor
Larger sample size (n ≥ 30)     Good      |       Fair

より正確な回答を得るには、ノンパラメトリック統計適しています(詳細については、Mark WinebergとSteffen Christensen によるEC実験分析の統計入門を参照してください)。


この回答は受け入れられるべきであり、はるかに賛成票を投じる価値があります。
KevinDreßler、

1

回答:パフォーマンスを統計的に分析します。

たとえば、このペーパーの図3を参照してください。さまざまなGAのパフォーマンスを相互に比較する、クロスオーバーが不可欠であると考えられるビルディングブロックのロイヤルロード

プロットは、適合度(Y軸)と反復数(X軸)の変化を示しています。各アルゴリズムは複数回実行され、平均、最小、最大適合度がプロットに表示されます。したがって、一部のGAバリエーションを明確に示すと、他のバリエーションよりもパフォーマンスが向上します。

vznの回答で示唆されているように、反復に対する適合度漸近的収束も、ほとんどの場合に非常に役立ちます。

...

(進化するフィットネス関数があるときにフィットネスが収束しない場合を除きます)。


0

基本的な戦略は、時間の経過とともにフィットネス関数をグラフ化することです。最良解の適合度または解の平均適合度、最悪解などをグラフ化できます。最良/最悪は階段状の特性を示し、平均はGAによって達成可能な最適値への漸近的な収束を示します。一般に、GAの解を見つけることに関連する先験的な「実行時間」は実際にはありません。通常、この漸近曲線の検査によって「十分」な時点でアルゴリズムを終了します。

このスライドショーの最後にある例のグラフを参照してください:


入力サイズに基づいて「十分な」ソリューションに収束するのに必要な時間をどのように決定できますか?
soandos
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.