実装するには複雑すぎる強力なアルゴリズム


67

実装するには単純に複雑すぎる正当なユーティリティのアルゴリズムとは何ですか?

明確にしましょう:現在の漸近最適行列乗算アルゴリズム(Coppersmith-Winograd)のようなアルゴリズムは探していません。これは実装するのに合理的ですが、実際には役に立たない定数を持っています。実用的な価値があると思われるアルゴリズムを探していますが、コーディングが非常に難しく、実装されたことがない、非常に人工的な設定でのみ実装されている、または非常に特殊な用途にのみ実装されています。

また、優れた漸近性を備えていますが、実際のパフォーマンスが低い可能性が高い、実装不可能に近いアルゴリズムも歓迎します。


1
長いリストになる可能性があるため、このCWを作成します。
スレシュヴェンカト

4
「実装不可能に近い」という指標はありますか?それを定義する理論はありますか?
リトウィックボーズ

@Mechko。おそらく、アルゴリズムの実装であるチューリングマシンの記述を出力する最小のチューリングマシンのサイズの下限。:)
ラドゥグリゴール

@Radu GRIGoreはこれが受け入れられている指標なのか、それとも開発すべき指標なのか?私は(今のところ)を定義し、単純な、不動のライン「MEHは、それだけの価値はない」があるとし...:D
Ritwikボーズ

4
Coppersmith-Winogradの実装は合理的であるという提案に興味があります。高レベルの疑似コードでも実装が書き留められているのを見た人はいますか?
ラファエル

回答:


33

シャゼルは単純な多角形三角形化するための線形時間アルゴリズムを与えた。Skienaは(p.575、Algorithm Design Manual)、「それが存在証明としてより適格であると実装するのは十分に望みがない」と書いた。


3
アルゴリズムには合理的な定数がありますか?
-jbapple

これは問題の唯一の既知の線形時間アルゴリズムですか?
トーマスアール

2
@ThomasAhleそれは唯一の既知の決定論的線形時間アルゴリズムであると信じています。アマト、グッドリッチ、およびラモスは、より単純なランダム化されたものを持っています:cs.princeton.edu/courses/archive/fall05/cos528/handouts/…–
Sasho Nikolov

私の知る限り、Chazelleの線形時間単純ポリゴン三角形分割アルゴリズムは実装されたことはなく、その複雑さや定数が高いために実際に代替と競合できないため、実装されることはないでしょう。しかし、主要な理論的成果。ラルフボーランド
ラルフボーランド

もう一度質問します:アルゴリズムには妥当な定数がありますか?
user1271772

29

基本的な反誘導体を計算するためのRischアルゴリズム。ウィキペディアによると、複雑さのために完全なアルゴリズムを実装するソフトウェアパッケージはありません。


3
ウィキペディアはまた、これはアルゴリズムではなく半アルゴリズムであることを指摘しています。これは、一定の問題を解決するためのヒューリスティックが必要だからです。
sclv

ヒューリスティックとは何ですか?それについての詳細を読むためのリンクを提供できますか?
ザイギマンタス

22

Robertson-Seymourの結果を使用するアルゴリズムは、固定マイナーを除外するグラフを含むものに対して「ポリタイム」アルゴリズムを推測することで、トラブルを求めています。結果に隠されている定数は「銀河」です。


3
これも実装が難しいのですか、それとも巨大な定数なのでしょうか?
レフReyzin

5
はい、これは良い例ではありません。私が正しく理解している場合、問題は実用的である可能性のあるアルゴリズム(したがって、「小さな」定数である可能性が高い)ですが、実装するには複雑すぎます。もちろん、質問全体はさまざまな解釈に開かれています:
アルヤバタ

5
問題は、定数が特定のプロパティから除外する必要がある未成年者の非常に大きなリストに由来することです。特定のプロパティの除外された未成年者の望ましいリストを生成する方法がわからないため、単なるスケールの問題ではありません。
スレシュヴェンカト

2
たとえば、トーラスに埋め込み可能なグラフの除外された未成年者のリストさえも知りません。
デリックストリー

17
ここでの問題はより深いようです。未成年者のリストを生成する効果的な方法は知られていないため、実際にはアルゴリズムをまったく生成しません。ほとんどのマイナークローズプロパティは、論理式を直接変換すると、除外されたマイナーの無限リストを生成します。ロバートソン・シーモアの定理(ワーグナーの推測)は、除外された未成年者の有限リストがその無限リストの中に潜んでいることを教えてくれますが、定理は実際にそれらを見つける助けにはなりません。したがって、ロバートソン-シーモアは通常、純粋な存在証明につながります。
アンドラスサラモン

16

O(n)O(log2nB)B

論文の長さは55ページであり、その結論は、著者がスペースの理由で説明していない定数のいくつかの改善点を指摘しています。これは、おそらく定数がそれほど銀河的ではなく、このデータ構造が「正当な有用性」を持っているのではないかと疑っています。


12

Qianによる線形時間高次パターン統合アルゴリズムは、その複雑さのために実装されたことはありません。


幸いなことに、まだ実用的なアルゴリズムがあります。自動推論のハンドブックには、ポリタイム(Qianのアルゴリズムを引用する場所のすぐ横)で実行できると書かれているので、それは非常に素晴らしいことです。
ジェイク

11

グラフを固定サーフェスに埋め込むことができるかどうかをチェックする線形時間アルゴリズム。

河原林健一、ボジャン・モハール、ブルース・A・リード:任意の表面と有界ツリー幅のグラフの属にグラフを埋め込むためのより単純な線形時間アルゴリズム。FOCS 2008:771-780。

Bojan Mohar:任意の表面にグラフを埋め込むための線形時間アルゴリズム。SIAM J.離散数学。12(1):6-26(1999)


1
これは、属に大きな指数関数的(原型)依存性があるため、実装されたとしても実用的な価値があるとは考えられません。
ジェフ

8

私は(私はRNA二次構造予測だけでなく、タンパク質の折り畳みとの比較を考えているが)、それは実際には可能性がどのように役に立つかわからないんだけど、ヴォルフガング・ハーケンは最初の与えた多項式時間結び目があるかどうかを決定するためのアルゴリズムを単純なループ(Normalflächenの理論。ActaMath。105、1961、pp。245--375)。私が思い出すように、それらの数十年後に実装するにはまだ複雑すぎます。

ウィキペディアが信じられる場合、他のいくつかのアルゴリズムが後に与えられ、「これらのアルゴリズムの複雑さを理解することは活発な研究分野です。」


4
Hakenは最初のアルゴリズムを提供しましたが、多項式時間では実行されません。実際、ポリタイムアルゴリズム(またはNP硬さの結果)は不明です。より最近の研究により、結び目が自明ではなくなる(Hakenの法線定式化による)整数プログラミングになりました。
ジェフ

3

ツリー分解、そしておそらくフィボナッチヒープ


14
フィボナッチヒープは、実装するのにそれほど複雑ではありません。それらは実装され、テストされています。それらの問題は、実行時間の不変の一定の要因により、実際のパフォーマンスが他のヒープほど良くないということです。
デビッドエップシュタイン

1
私は木分解を見つけるために、パッケージを書いた、と私はそれが実現するのは難しいとは思いませんyaroslavvb.blogspot.com/2011/01/building-junction-trees.htmlを
ヤロスラフBulatov

2
私のコードは、ヒューリスティックなツリー分解であり、分岐限定および動的プログラミングアプローチのように最適ではありません... Bodlaenderの「線形時間アルゴリズム...」を意味していると思いますか?私はその実装を見たことはありません
ヤロスラフ・ブラトフ

4
2O(k3)O(n)

3
:私はこれが最善の実装作業だと思うhein.roehrig.name/dipl
ディエゴ・デ・エストラーダ

1

完全なハッシュ構築(https://en.wikipedia.org/wiki/Perfect_hash_function#Construction)は、静的キーまたは頻繁に変更されないキー(ルーターのトップレベルドメイン名、コンパイラーのキーワード、または関数名など)を含むすべてのユースケースに適用されます標準ライブラリで)が、最後に見たときに実装が見つかりませんでした。

パラメトリック検索は、多項式時間でNP困難であるように見える問題を含む、多くの困難な最適化問題を解決できます。よく知られた論文のパラメトリック検索により、実用的なパラメトリック検索の実装が行われましたが、それでも実用的なソフトウェアに実装されたとは思いません。

knO(nlogn+k)O((n+k)logn)


1
FKSの構造が複雑すぎて実装できないとは考えていません。実際には非常に簡単です。実用的ではないかもしれませんが、実装するには複雑すぎません。
サショニコロフ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.