どのアルゴリズムについて、理論的分析と現実の間に大きなギャップがありますか?


52

アルゴリズムの効率を分析する2つの方法は次のとおりです。

  1. ランタイムに漸近的な上限を設定する
  2. 実行して実験データを収集します。

(1)と(2)の間に大きなギャップがある既知のケースがあるのだろうか。これにより、(a)実験データがより厳密な漸近を示唆するか、(b)理論分析がXがYよりはるかに優れていることを示唆し、実験データがYがはるかに優れていることを示唆するようなアルゴリズムXおよびYがあることを意味しますバツ。

実験では通常、平均ケースの動作が明らかになるため、最も興味深い答えは平均ケースの上限を参照するものと期待しています。ただし、シンプレックスに関するNoamの回答など、さまざまな境界について話す興味深い回答を除外したくありません。

データ構造を含めます。回答ごとに1つのアルゴ/ DSを入力してください。


あなたが話している上限の種類を明確にすれば助けになるでしょう。最悪の場合の時間の複雑さのために、最もよく知られている上限と下限の間に大きなギャップがある問題について話しているだけですか?または、最悪の場合の時間の複雑さの厳しい限界が知られているが、典型的な実行時間は非常に速い問題も含んでいますか?最悪の場合の複雑さではなく、平滑化された複雑さを考慮する方が興味深い場合があります。「典型的な」入力またはランダム入力に関する実験結果は、病理学的入力の存在を反証することはほとんどありません。
ジェームズキング

その場合、私は別々に尋ねるべき2つの質問があると思います:最悪のケースの複雑さと平均ケース/滑らかな複雑さのギャップに関するものと、理論的な平均ケース/滑らかな複雑さと実際の実験結果のギャップに関するものです。編集:私は私のコメントを書いている間にこれに対処する編集を行った:)
ジェームズキング

回答:


37

最も目立つ例は、もちろん、実際には迅速に実行されるシンプレックス法で、ポリタイムを示唆しますが、理論的には指数関数的な時間がかかります。ダンスピルマンは、この謎を説明したことでネバンリンナ賞をかなりの程度獲得しました。

より一般的には、整数プログラミングの多くのインスタンスは、標準のIPソルバーを使用して非常によく解決できます。 /teaching/cgt/combinatorial-auctions-survey.pdf


3
シンプレックスに指数関数的な時間がかかる線形プログラムの明示的なファミリが見つかりましたか?
オプトイン

1
私が理解している限り、指数関数的な時間を必要とする多くの明示的なファミリがあります(たとえば、KleeとMintyによって与えられた最初のハチ:「シンプレックスアルゴリズムはどれくらい良いですか?」、1972)。ただし、ピボットルールの選択はこれらの結果に関連しています。これらの結果への参照のほとんどは、スピルマンとテンの論文(arxiv.org/abs/cs/0111050)にあると思います。
MRA

2
@Sid:はい。Klee-Mintyキューブ:glossary.computing.society.informs.org/notes/Klee-Minty.pdf

このペーパーには特定のピボットルールの下限がありますcs.au.dk/~tdh/papers/random_edge.pdf
イゴール

26

グレブナーベース。最悪の場合の実行時間は、(変数の数で)二重指数関数です。ただし、実際には、特に構造化された問題の場合、F4およびF5アルゴリズムが効果的です(つまり、非常に迅速に終了します)。平均実行時間または予想実行時間に関して適切な推測でさえ何をすべきかを解明することは、依然として研究の活発な分野です。どういうわけか、それは根本的な理想のニュートン多面体の体積に関係していると推測されます。


どの分布の下で平均/予想?私も...期待実行している時間が、代数的な問題のために困難だった定義と思っ
ジョシュアGrochow

1
F4とF5の方法で迅速に解決されるケースについては知りませんが、SATインスタンスをエンコードする多くの変数と低次の多項式システムを構築するのは非常に簡単です。そのような場合、アルゴリズムがDPLL / DPLL +よりも優れていることは私にはわかりません。これらの実験結果についてもっと知りたいです!
MassimoLauria

@Joshua:この時点で、結果を可能にするあらゆる分布... @Massimo:Yのインスタンスとしての問題Xのエンコードは、X専用のアルゴリズムに勝るものはありません!しかし、GBとDPLLは本質的に同等であるため、効果的な違いを見るとさらに驚くでしょう。
ジャックカレット

1
@Massimo:はい、GB計算はNPハードです。処方に応じて。実際、ほとんどの質問(完了、理想的なメンバーシップ、代数的に閉じられたフィールドとブール値)は、PSPACE完全またはさらに悪い(EXPSPACE完全)です。つまり、GB計算はNP完全問題よりもはるかに困難であると予想されます(したがって、平均的な場合でも、F5のようなアルゴリズムはDPLLを上回る可能性はほとんどありません)。
ミッチ

22

この現象のよく知られている例は、グラフ同型です。最もよく知られているアルゴリズムは、、しかしグラフ同型は実際には非常に迅速に解ける傾向がある。 O2nlogn

問題の平均的/スムーズな複雑さに正式な結果があるかどうかはわかりませんが、それが存在することを読んだことを覚えています。確かに、多くの実験的証拠と多くの高速ソルバーがあります。また、このプロパティがGIコンプリートファミリーの他のメンバーにまで及ぶかどうかも知りたいです。


1
GIの平滑化された分析、または正確にどのように見えるかさえも知りませんが、最悪の指数関数的な時間で実行されることを示す最もよく知られた実用的な実装(海事)の分析があります。もちろん、nautyが実装されていないアルゴリズム。リファレンスについては、cstheory.stackexchange.com / questions / 3128 /…を参照してください。O2nログn
ジョシュアグロチョウ

2
ああ!たぶん、GIの線形時間平均ケースアルゴリズムを提供するBabai-Kuceraを考えているかもしれません:doi.ieeecomputersociety.org/10.1109/SFCS.1979.8
Joshua Grochow

はい、Babai-Kuceraがその1つです。参照いただきありがとうございます。
アナンドクルカルニ

20

David Johnsonから、理論的近似と実験的近似比の不一致: 巡回セールスマン問題:ローカル最適化のケーススタディ、DS JohnsonおよびLA McGeoch。この論文では、理論的漸近を無視する漸近の実験的証拠を示しています(実験はサイズN = 10,000,000まで実行されます!):Jon Bentleyの "Greedy"または "Multi-Fragment"アルゴリズム(少なくともlogN / loglogN)は、ニアレストインサーションとダブルMSTを破ります。どちらも最悪の場合の近似比は2です。


20

最近までよく理解されていなかった別の例は、ロイドのk-meansアルゴリズムの実行時間です。これは(実用的な観点から)50年以上にわたって選択のクラスタリングアルゴリズムでした。ごく最近になって2009年に、最悪の場合、ロイドのアルゴリズムは入力ポイントの数で指数関数的な反復を必要とすることが(Vattaniによって)証明されました。一方、同時に、平滑化された分析(Arthur、Manthey、Röglinによる)は、平滑化された反復回数が単なる多項式であることを証明しました。これにより、経験的なパフォーマンスが説明されました。


10

スプレイツリーの動的最適性推測のトラバース、デキュー、およびスプリットの結果は、このようなギャップの例です。実験は線形時間の主張を裏付けていますが、既知の証拠はありません。


3
Seth Pettieは、n deque操作にかかる時間はO(n alpha *(n))以下であると証明しました。ここで、「alpha *」は反復アッカーマン関数であり、かなり小さなギャップです。
jbapple

9

質問にはわずかな問題があります。実際には、アルゴリズムを分析する方法は2つ以上あり、無視されている理論的な方法の1つは、最悪の場合の実行時間ではなく、予想される実行時間です。実際に、この平均的なケースの動作が実験の実施に関連しています。非常に簡単な例を次に示します。サイズnの入力用のアルゴリズムがあるとします。サイズnの可能な入力ごとに時間nがかかり、各長さの特定の入力には2 ^ nがかかります。最悪の場合の実行時間は指数関数ですが、平均的な場合は[(2 ^ n -1)n +(2 ^ n)1] /(2 ^ n)= n-(n-1)/ 2 ^ nですnに制限します。明らかに、2つのタイプの分析は非常に異なる答えを与えますが、異なる量を計算しているので、これは予想されることです。

実験を何回も実行することにより、サンプルの実行時間が最も長くても、可能な入力のスペースのごく一部のみをサンプリングしているため、ハードインスタンスがまれな場合は見逃す可能性があります。

このような問題の構築は比較的簡単です。最初のn / 2ビットがすべてゼロの場合、最後のn / 2ビットでエンコードされた3SATインスタンスを解くよりも簡単です。それ以外の場合は拒否します。nが大きくなると、問題の実行時間は最悪の場合、3SATの最も効率的なアルゴリズムとほぼ同じになり、平均実行時間が非常に短くなることが保証されます。


私は、ジェームズ・キングにすでに答えました。最も興味深い答えは、予想される実行時間に関するものだと予想しています。これをもっと見やすくするために質問を編集します。
ラドゥグリゴール

9

Damas-Milner型の推論は指数関数的な時間で完全であることが証明されており、結果のサイズが指数関数的に大きくなるケースが簡単に構築されます。それにもかかわらず、ほとんどの実際の入力では、効果的に線形に動作します。


この結果について推奨する参考文献はありますか?私はそれについてもっと読みたいです。
ラドゥグリゴール

1
私はそれを読んでいませんが、最も頻繁に引用されている論文は、ハリー・G・メイソン、「MLタイピングの決定可能性は決定論的指数時間で完全です」、プログラミング言語の原理に関する第17回シンポジウム(1990)です。
sclv

9

平面グラフのシュタイナーツリーのPTASは、イプシロンにとてつもなく依存しています。ただし、実際には驚くほど良いパフォーマンスを示す実装があります。


8

[1]からのペアリングヒープ-ヒープを実装します。挿入とマージはO(log n)で償却された複雑さを持ちますが、O(1)と推測されます。実際には、特にマージのユーザーにとっては非常に効率的です。

私はちょうど今日、Secを読んでいるときにそれらを発見しました。C.岡崎の著書「純粋に機能的なデータ構造」の5.5なので、私はそれらについての情報を共有すべきだと思いました。

[1] ML、フレドマン、R.、Sedgewick、R.、DD、Sleator、および1986年、タージャン。ペアリングヒープ:自己調整ヒープの新しい形式。Algorithmica 1、1(1986年1月)、111-129。DOI = http://dx.doi.org/10.1007/BF01840439


岡崎以来、いくつかの進歩があり、O(0)meld、O(1)insertおよびfindMin、O(lg lg n)reduceKey、およびO(lg n)deleteMin:arxivとの(必須の)ペアリングヒープがあります。 org / abs / 0903.4130。このヒープは、Fredmanらの元のペアリングヒープとは異なるペアリングメカニズムを使用します。
jbapple

7

分岐と束縛に関するイリヤラスの発言に関連して、パタキ等。分岐および境界プラス格子基底縮小により、ポリタイムでほぼすべてのランダムIPを解決できることを示します。


6

TSPのLin-Kernighanヒューリスティック(「巡回セールスマン問題の効果的なヒューリスティック」、Operations Research 21:489–516、1973)は実際には非常に成功していますが、そのパフォーマンスを説明するための平均ケース分析または平滑化分析がまだありません。それとは対照的に、マティアス・エングラルト、ヘイコ・レグリン、およびベルトルト・ベッキング(登場するアルゴリツミカ)によるTSPの2-optヒューリスティックの平滑化された分析があります。


5

厳密に分析できないさまざまなNP困難な問題に対して、TSP、シュタイナーツリー、ビンパッキングなど、実際には非常に高速で効率的な分岐およびバインドアルゴリズムが多数あります。

Ωnm


O(mn)という意味ですか、それとも混乱していますか?
ラドゥグリゴール

これまでの最良の限界はOnmlogn2/m
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.