なぜ多項式時間が「効率的」と呼ばれるのですか?


50

コンピューターサイエンスで、せいぜい多項式の複雑さが効率的であると見なされるのはなぜですか?

実際のアプリケーション(a)では、複雑さアルゴリズムは時間内に実行されるアルゴリズム、たとえばn 80よりもはるかに高速ですが、前者は非効率であると見なされ、後者は効率的です。ロジックはどこですか?!nlognn80

(a)たとえば、宇宙の原子数は約と仮定します。1080


3
私はあなたの前提に同意するかどうかわかりません。ほとんどの人はをかなり非効率だと考えていると思います(もちろん、それは定数や解決されている問題にも依存します)。n80
sepp2k

16
c > 3の場合、は非常に効率が悪いと考えます。あなたは不合理な極端に取られた漸近解析の例を持っています。n 80ランタイムの自然なアルゴリズム(私が知っている)はありません。ただし、一部の問題には2 nランタイムの自然なアルゴリズムと、そのような問題の多項式アルゴリズムが存在するかどうかに関する複雑性理論の基本的な質問があります。ncc>3n802n
ジョー

5
人々は前提に同意しないので、この質問を落とすべきではないと思います(それが理由だと仮定して)。上下の投票は、質問の質ではなく、それらの内容を示すものであると想定されています(トピックにある限り)。
アレックス10ブリンク

8
@RanG。完全な引用は(強調鉱山):Pは「効率的に解決可能」または「引き込み可能」な計算問題のクラスであるとコバムの論文は保持している。実際には、Pにあることが知られていない問題には実際的な解決策があり、Pにある問題にはないものがありますが、これは有用な経験則です。
ジョー

6
(理論的なCSの)文献では、「効率的」という言葉は「多項式」の同義語です。これは他の(より実用的な)サブフィールドでは異なる可能性があります。
ランG.

回答:


32

「効率」に関するもう1つの見方は、多項式時間により、マシンモデルに依存しない「効率」の概念を定義できることです。具体的には、ある種のマシンモデルで多項式時間で実行される問題は、別の同等の強力なマシンモデルでも多項式時間で実行されるという「効果的なチャーチチューリングテーゼ」と呼ばれるチャーチチューリングテーゼのバリアントがあります。

これは、一般的なCT論文に対するより弱い声明であり、ランダム化アルゴリズムと量子アルゴリズムの両方によって違反されていますが、変更によってポリタイムのNP困難問題を解決できるという意味では違反されていませんマシンモデル。

これが最終的に、多項式時間が理論CSで一般的な概念である理由です。ただし、ほとんどの人は、これが「実用的な効率」を反映していないことを認識しています。これについての詳細は、ディック・リプトンの「銀河アルゴリズム」に関する投稿を読んでください。


15
Pを選択する2番目の実用的な理由は、定数を使用した加算、乗算、べき乗の下で閉じられることです。これは、アルゴリズム/マシンを作成するときに便利です。ビルディングブロックが効率的であれば、結果も同様です。
ラファエル

私はただ興味があります。「銀河アルゴリズム」という用語が実際に使用されているかどうかを知っている人はいますか?
フアンベルメホベガ

そんなに古い用語ではありません。しかし、私はそれを使い始めました:)
Suresh

24

O(n80)O(nlogn)n>1208925819614629174706176

nlognn80

たとえば、GMPなどの整数乗算のほとんどのライブラリはアルゴリズムの混合を実装し、入力サイズに基づいて下位アルゴリズムを選択しますが、これらのアルゴリズムは漸近的に劣る場合がありますが、入力サイズに基づいて実際に優れたアルゴリズムを選択します。一部の漸近的に「劣った」アルゴリズムは、特定の入力サイズでより高速になり、最適なアルゴリズムよりも選択されます。

O(n2.3737)

TL; DR理論は、入力サイズの制限が任意の大きな数になるとアルゴリズムを比較するために、漸近的な振る舞いを考慮します。


彼らは「劣ったアルゴリズムを選択する」のですか?「優れたアルゴリズムを選択する」という意味ではありませんか?
ビットマスク

Θ(N2)O(nlgn)

なぜ漸近三次アルゴリズムを「悪い」、漸近二次アルゴリズムを「良い」とみなさないのですか?この答えは質問を頼みます。
-djechlin

2

この回答では、あなたの質問の「全体像」のコンテキストを調べます。実際、コンピューターサイエンスは比較的若くてややオープンな科学であり、いくつかの基本的かつ基本的な質問に対する優れた回答や優れた回答すらまだありません。「効率的に計算されたものを」基本的な質問は、どちらかである正確またはおおよそ NP問題対有名P(またはEXPTIMEの問題対密接に関連したP)として(意見に応じて)CSに形式化され、そのまだオープンの40年以上後に最初にCook / Levinが1970年までに導入し、世界の偉大なコンピューター科学者による集中的な研究(および多くの数学者もこの問題に根本的な関心を持っています)。

つまり、P時間として「効率的」というおおまかな定義があり、最も重要な科学賞の1つ、つまり10年以上にわたってこの問題に関連付けられた100万ドルの賞を授与したとしても、コンピューターサイエンスはいくつかの問題(この境界線)は、効率的な(Ptime)アルゴリズムを持っている必要があります。したがって、現時点では、P時間よりも正確な「効率的」の正確な定義は不要であり、不可能です。P対NPの推測が何らかの方法で解決される場合、または「いつ」「効率的」のより厳密な定義が可能になるか、またはおそらく可能になります。

さらに、「効率的」のPtimeの定義は少し「ずさん」であると感じるかもしれず、ほとんどのコンピューター科学者はおそらく同意するでしょう。彼らがこの主張や観察を些細なことだとさえ考えているかもしれないという点....言い換えれば、いわば、それは進行中の作業であり、私たちはそれに取り組んでいます。(実際、主流のコンピューター科学者は、これまでのところ、冗談を言って、ギャップと進歩/明確な分離の欠如を恥ずかしいと日常的に言及しさえしています)

実際、P対NP、つまりNP対P /ポリよりも密接に関連する/ かなり強い推測さえありますが、これも現時点ではコンピューターサイエンスでは解決できません。それは、NP-時間の問題はでは解決できないことを推測どのすなわちさえアルゴリズム/チューリングマシンで作成することができ、これらの回路に限らず、「Pサイズ」の回路。

P対NPがどれほど難しいかについては、少なくとも数学のリーマン予想(現在は1.5 世紀)と同じくらい難しいと考えられる確かな理由があります。そして、どちらもまだ/最初に解決されていません。

つまり、どのアルゴリズムが実際に「効率的」であるかを正確に定義することは、実際には理論科学と数学最も重要で最も難しい既存の未解決問題の 1つです。

実際、P-time CT論文と呼ばれるチャーチチューリング論文の変形があるため、「効率的に計算されるもの」の問題は実際にはさらに微妙であり、量子コンピューティングが実際に違反しているかどうかは不明です。P-time QMのショーアの画期的な結果により、ファクタリングはこの研究で劇的なひねりを考慮しました。言い換えると、効率的に計算されるものの問題は、実際には深部物理学の原理に至るまでもっともらしく低下し、量子計算が古典的な計算よりも効率的に計算できるかどうかに関係します。これは、理論CSおよび高度な物理学で一般的に未解決の問題でもあります。

したがって、PとNPを追加することもできます。効率的なコンピューティングの問題は、CSおよび数学に加えて、物理学にとって極めて重要または基本的な重要性を持つ可能性があります。

[1] P対NPの問題、ウィキペディア

[2] ミレニアム賞の問題

[3] P / Polyクラス、ウィキペディア

[4] Shorのアルゴリズム


修正:P vs ExpspaceではなくP vs Pspace
vzn

-2

多項式時間アルゴリズムは、最も困難な非多項式時間、特にいわゆるNP完全と比較してのみ効率的であると見なされます。画像を参照してください:P、NP、NP完全問題、NPハード問題のオイラー線図


1
「最も困難な非多項式時間と比較して、特にいわゆるNP完全」-NP完全問題は非多項式であるとは知られておらず、間違いなく最も困難ではありません。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.