計算が無限に速いときに遺伝的アルゴリズムは必要ですか?


8

私が理解していることから、遺伝的アルゴリズムは複数のバリエーションを試し、各バリエーションの適合度を評価します。次に、最適なバリエーションを選択し、少し変更して、次の世代に向けてプロセスを続行します。

しかし、無制限の計算リソースがある場合はどうでしょうか?次に、新しい世代を育てる複雑なプロセスに頼らずに、考えられるすべてのバリエーションを試してみて、それらの適合性を評価できますか?言い換えれば、遺伝的アルゴリズムは計算が高価で、総当たりの方法が不可能な場合にのみ必要ですか?それとも、他の利点も追加しますか?


1
これをStackoverflowに属しているとフラグを立てましたが、私の意見では、コンピューターサイエンスのサイトに属しています(フラグウィザードにはオプションがありません)。(しかし、私はまだ賛成しています。興味深い質問です!)
Patrick M

5
無限のメモリと無限に速い計算がある場合、システムのすべての可能な状態を生成し、すべての状態を評価して理想的な状態を選択するか、または可能な状態のどれも満足できないと結論付けることができます。「無限」は質問全体を一種の無意味なIMOにします。まあ、問題空間も無限である場合を除いて、「プログラマー」ができることからかなり遠く離れています。
ハイド

回答:


14

遺伝的アルゴリズムは基本的に、試行錯誤による方法論です。私は徹底的な検索を超えるGAについて考えることができる唯一の利点は、GAは段階における適応度関数を最適化するので、あなたがいることであるかもしれない GAが漸増的に優れているソリューションを好むだろうので、より高速に最適なソリューションを取得します。解決策を見つけることが保証されている徹底的な検索は、長い道のりを行くかもしれません。

  • 「計算リソース」がCPUではなくメモリを意味する場合、GA遺伝子プールのメモリフットプリントが小さくなり、必要なメモリが少なくなる可能性があります。

  • 一方、山登りのため、GAは極大値でスタックする可能性があり、突然変異はそれを緩めるのに十分ではない可能性があります。

  • また、GAの検索時間は入力のサイズに応じて指数関数的に増加するため、検索しているスペースのサイズ、およびスペースのサイズを制限できるかどうかによっては、結局のところ、徹底的な検索の方が速くなる可能性があります可能性を排除することによって。

...

最近、私はGAを「1秒あたりのエントロピー」の観点から考え、GAの進行状況を1秒あたりのGAの実行可能性を測定しています。次に、それを問題の空間の総エントロピーと比較できます。ブルートフォース検索が並列化または高速プロセッサで毎秒のエントロピーを上回ることができる場合、GAの「ベストスコア」は、発見された「ベストスコア」よりも優れていません。

しかし、私はちょうどそれをやり遂げてきました。実際にはまだそのようにGAを実装していません。

(エントロピーはln(N)Nの可能な状態、またはNの可能な結果から1つの結果を達成するための可能な方法はln(N) - sum(n * ln(n) for all n) / Nどこにあるかnです。)

興味深い質問:)


1
このエントロピーの質問は、基本的に「GAは状態を繰り返すことが多く、ブルートフォースは決して行わない」に要約されていませんか?私がそれを考える傾向がある方法は、検索アルゴリズムが定義し、解空間上の順列によって定義されるというものです。簡単に言うと、検索アルゴリズムは、ポイントを訪問する順序にすぎません(評価が繰り返されるためにオーバーヘッドが発生するため)。そのときNFLの定理は完全に理にかなっています-私のアルゴリズムがあなたの問題よりも早く最適な問題に直面する問題をいつでも構築できます。
deong

1
@deong多くの場合、より良い状態、または最適な状態でさえ、時々拒否されることがあります(非決定論的なシステムなど)。そのため、ケースを繰り返し検索する必要がある場合があります。
2014年

1
私はこれだけではなく、もう少し何かがあると思います。まず、質問は「無制限の計算リソース」を前提としていますが、GAは通常、徹底的な検索が完全に実行不可能である場合に使用されます(ここでは、「宇宙が終了するのを待つ」ことは不可能であり、興味深い問題に迅速に取り組みます)。第二に、GAには単純な古い突然変異に加えて、クロスオーバー演算子があります。特定のタイプの問題(NFL保持)の場合、これは非常に優れたヒューリスティックであり、徹底的な検索よりもはるかに優れています。残りは、私は主に同意します。
ダニエルB

4
GAは通常、最適なソリューションを見つけるために使用されません。それらは、限られた時間の中で与えられた合理的な解決策を見つけるためのものです。
ランチャー

1
シミュレーテッドアニーリングは、極大/極小問題に非常に効果的に対処する遺伝的アルゴリズムのバリエーションです。
recursion.ninja

6

はい、計算が無料であれば、遺伝的アルゴリズムはまったく必要ありません。しかし、これは私たちの誰もが見るために生きることのできない巨大な巨大な「if」であることを忘れないでください!

それでも、あなたが質問しているので...計算が無限に高速である場合、最も単純な総当たりの組み合わせの生成とテストのハンマーを問題に適用しない理由はまったくありません。有限の情報セットで答えることができるすべての質問(つまり、その用語の可能な限り緩い意味での制約充足問題、実際にはかなり緩い)は即座に解決できます。ヒルクライミング、ヒューリスティック、および現在使用している世界クラスのチェスエンジンなどの構築に使用するすべての巧妙な単純化は必要ありません。

別の言い方をすれば、計算が無限の速度に近づく場合、どちらの方法を使用するかの決定は、実際に実行するのにかかる時間ではなく、実行するコンピュータープログラムを記述するのがどれほど難しいかに基づいて決まります。つまり、可能な限り単純なアルゴリズムが同時に機能し、同時に実行される場合、より複雑なアルゴリズムを開発する価値はないということです。

間違いなく、計算は確かにこの方向に進んでいますが、繰り返しになりますが、まだ完全には実現しておらず、今後もそうなることはありません。(もちろん、量子コンピューターが完成していなければ。)


3
量子コンピュータが完成したとしても、NPコンプリートはBQPのサブセットではないのではないかと疑っています(ただし、確実にはわかりません)。trueの場合、これは、多項式時間で高い確率で量子コンピューターによって解決可能な問題のクラスに、一般にGAを使用するNP困難な最適化問題が含まれないことを意味します。
deong

1
無限の計算速度ではるかに大きな影響があります...たとえば、すべての認識可能な問題が決定可能になりました。停止の問題が発生しました。
ランチャー

3

無限に速い計算の問題は、それらが無限に速く、既知の宇宙の情報限界よりも大きい状態空間をカバーすることです。「ブルートフォース」について説明しましたが、たとえば、ブルートフォースチェスは、宇宙の原子数を超える出力を生成できることを考慮してください。

さらにチェスの例をとると、チェスをブルートフォースするときは、検討するチェス盤の組み合わせの数を減らし、どの状態を維持し、どの状態を破棄するかを決定する必要があります。そのため、実際には選択的なアルゴリズム、遺伝的アルゴリズムなどは永遠に必要です。


1
さて、閉じた時間のような曲線(終わり近く)のような奇妙な物理学が機能しないことが判明しない限り、汎用の計算に利用できます。

実はGAはチェスにはまったく向いていません。ヒューリスティックプルーニング、はい
Konrad Morawski、

この話を思い出します...初めて読んだとき、なぜ検索ルーチンの作成に長い時間がかかるのかと混乱しました。「検索」の側面が「シミュレーション」の側面とは異なることに気づくのにしばらく時間がかかりました。
pandubear 2014年

2

「無制限の計算リソース」とは、アルゴリズムが0時間かかり、メモリが無制限で電力に問題がないことを意味する場合、使用できる唯一のアルゴリズムは、可能なすべての入力を試行し、保証されるブルートフォースアルゴリズムです。最高のものを見つけるために。無制限のメモリを参照しているが、必要な時間の差が生じる可能性がある場合は、ブルートフォースアルゴリズムよりも早く解が得られる可能性があるため、遺伝的アルゴリズムの方が適している場合があります。しかし、遺伝的アルゴリズムのソリューションは最適ではない可能性があるため、コンテキストや要件によっては、ブルートフォース法を好むかもしれません。

無制限の計算リソースは不可能であることを考えると、この質問は、最初はアイドル投機のように見えました。しかし、計算能力がますます高まるにつれて、巨大なスーパーコンピューターの時代には遺伝的アルゴリズムが不要になる可能性があるため、問題の関連性が高まっています。しかし、私はコンピューターがより強力になったとしても、ますます多くのデータを使用してますます困難な計算を行うように求め続けていることに気付きました。結局のところ、遺伝的アルゴリズムは近い将来に私たちと共に存在し、多くの計算能力が利用可能な場合でも使用されると思います。

ただし、本当に無制限の計算リソースが利用可能になった場合、遺伝的アルゴリズムを使用するかどうかよりもはるかに多くの変更が行われます。


私たちのマシンは非常に強力であるため、「より優れたアルゴリズムを必要としない」という方針に沿って、または将来的に何が起こるでしょうか。今日、いくつかの余分なクロックサイクルを取得することは簡単なことのように思えますが、それらのサイクルは追加されます。将来的に超高速コンピューターに向けて私たちを推進するために、これらの小さな最適化を続けていくことが重要だと思います。それらがなければ、私たちはちょっと高速なコンピュータしか持っていません。
DLeh 2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.