問題がNP完全であることを証明することが重要なのはなぜですか?


回答:


26

アリ、いい質問だ。

ある問題Pが計算的に難しいことを示したいとします。さて、Pがまだ効率的なアルゴリズムを持っていないという事実に基づいて、Pが難しいと推測できます。しかし、これはかなり薄っぺらな証拠ですよね?Pを見る良い方法を見逃している可能性があります。これにより、非常に簡単に解決できます。したがって、Pが困難であると推測するには、より多くの証拠を蓄積する必要があります。削減は、まさにそれを行うためのツールを提供します!他の自然な問題QをPに減らすことができる場合、Pは少なくともQと同じくらい難しいことがわかりました。しかし、Qは数学のまったく異なる分野の問題である可能性があり、 。したがって、QがPが硬いという証拠であるための効率的なアルゴリズムを見つけられなかったことがわかります。このようなQ 'がたくさんある場合

これはまさにNP完全性の理論が提供するものです。あなたの問題がNP完全であることを証明するなら、あなたはその難しさを他の何百もの問題の難しさに結び付けました。したがって、道徳的に言えば、あなたの問題は本当に難しいことを確信することができます。


したがって、最初の目的はPの効率的なアルゴリズムを見つけることですが、それは達成不可能と思われるため、Pは計算が難しいと仮定し、その後、答えは残りを説明しますか?
アリ

私たちの問題Pが計算的に難しいことを示したいが、Pが難しいことを証明するのが難しいと仮定したくない:)代わりに、PがNP完全であることを証明する場合ここでの区別を無視しましょう)、すでに十分に精査された数百の問題のいずれかが難しい場合、Pも難しいことを示しました。これは、Pに対して効率的なアルゴリズムがあれば、数百の問題のそれぞれに対しても効率的なアルゴリズムがあるためです。
arnab

4
@Ali:複雑性理論の入門書をご覧になることを強くお勧めします。このWebサイトは、実際にはそのような質問のフォーラムではなく、研究レベルの質問のフォーラムです。
arnab

5
@Ali:Garey and Johnsonを読むことをお勧めします。本の有名な漫画は必見です!
伊藤剛

9

問題の証明NP-Completeは、研究している一般的な問題の効率的で正確な解決策を探す必要がないため、研究の成功です。あなたの問題は非常に難しい問題のクラスのメンバーであり、誰も問題の効率的で正確なアルゴリズムを見つけることができなかったことを証明し、問題のそのような解決策はすべての問題の解決策を意味します問題。

あなたの問題はまだそこにあるので、通常は足掛かりです-あなたは単にあなたの要件を緩和する必要があります。通常、人々は「効率的」、「正確」、「一般」のうちの1つ以上を緩和する方法を見つけようとします。非効率的かつ正確かつ一般的なのは、これらのアルゴリズムの指数のより良い定数を見つける試みです。効率的かつ不正確で一般的なものは、近似アルゴリズムの研究です。効率的かつ正確だが一般的ではないのは、固定パラメータの扱いやすさと、効率的なアルゴリズムを見つけることができる入力のサブクラスの検索の研究です。


問題を緩和する3つの方法の良い点です!ランダム化されたアルゴリズムは、「効率的で不正確で一般的な」カテゴリに分類されると思います。
シェンロン-志チャン張顯之

本当に?すべてのランダム化アルゴリズムが不正確というわけではありません。
ジェフ

そしてもちろん、あなたは正しいです、JeffE。また、私はあなたがアルゴリズムの私の前の学生に指示している(またはしていた)ことを理解しています!Hsien-Chihのポイントに関しては、ランダム化されたアルゴリズムがこのスキームにうまく適合するとは思いません。確かにいくつかのランダム化アルゴリズム(遺伝的アルゴリズムとニューラルネットが頭に浮かぶ)は正確ではないが効率的で一般的ですが、いくつかのランダム化アルゴリズムは非常に正確です-数を検証するアルゴリズムが素数であると考えてください!それはランダムなアルゴリズムですが、私は誰も合理的な実装から非プライムを得たことはないと確信しています。
ピーターブース

5

NPcomplete

a)あなたはソフトウェアプロジェクトに取り組んでいます。システムを指定したら、アプリケーションのアーキテクチャを定義し始めています。これには、大きな問題の分解/アプリケーションが小さな問題に役立つ必要性が含まれます。これらの小さな問題の1つに対する効率的な(アプリケーションを遅くしたくない!)アルゴリズムを見つけるタスクを与えられたとしましょう。しばらく苦労した後、多項式アルゴリズムを見つけることができません。そうすると、おそらくこの問題は非常に難しいので、効率的なアルゴリズムを見つけるのは非常に難しい(あるいは不可能でさえある)かもしれません。問題がことを証明することによりNPcomplete、あなたのこの推測に対するいくつかの証拠があり、代替アプローチの検討を開始する必要があります(たとえば、問題を簡単にするために変更する)。

NPcomplete

NPcomplete

P=NP3SAT

NPcompleteCLIQUE

問題を要約し、特徴付けることにより、一般的な手法を使用できます。関連するクラスを学習することで、数学や科学全般で一般的なこの特定の問題の詳細を気にすることなく、抽象的なレベルで考えることができます。個々のメンバーの代わりにクラスを使用すると、既知の手法を使用し、さらに1つだけではなく、より多くのオブジェクトに洞察を適用できます。


2
多くの人は、NPが近似しにくい場合でも、NP完全問題を実際に解決します。平均的なケースでは、多くの問題がはるかに簡単になりますが、これを示すのは難しい場合があります。実際にうまく機能するヒューリスティックアルゴリズムについて証明することはさらに困難です。ソフトウェアアーキテクトに、デザインをあきらめて変更する前に、問題が「本当に」難しいかどうかを誰かに尋ねることをお勧めします。
ユヴァルフィルマス

デザインを変える必要があると言っているのではありません。ヒューリスティックまたは近似アルゴリズムを使用することは、問題を変更するようなものです(間違っているのでしょうか)。
chazisop

3

各問題には、他の問題といくつかの関係があります。さらに、問題と複雑度クラスの間には関係があります。

したがって、1つの問題をNPCとして分類すると、通常、他の問題と複雑さのクラスに対する洞察が得られます。

たとえば、グラフ同型(GI)問題を考えます。次の論文で:

UweSchöning、グラフ同型は低階層ある、第4回コンピューターサイエンスの理論的側面に関する年次シンポジウム論文集、1987、114–124。また、Journal of Computer and System Sciences、vol。37(1988)、312–323。

GI∈NPCの場合、多項式階層(PH)はその第2レベルに崩壊することが証明されています。これは、構造複雑性理論の大きなブレークスルーとなります。


3

pppp


1
いくつかの問題がNP完全であることを証明したときがあったと聞いたことがあります。博士論文があります。本当?
Hsien-Chih Chang張顯之

@ Hsien-ChihChang張顯之:それについてコメントすることはできませんが、それらの結果は確かに数十年前にはるかに人気がありました。硬さの結果を「唯一」証明する論文を出版することは、最近ではますます困難になっています(もちろん「有名な問題」を除く)。それは、その期間中のこの種の論文の豊富さ。
アンソニーラバレー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.