web-dev-qa-db-ja.com

「P = NP?」とは何ですか。なぜそんなに有名な質問ですか?

P = NPかどうかの問題は、おそらくすべてのコンピューターサイエンスの中で最も有名です。どういう意味ですか?そして、なぜそれがとても面白いのですか?

ああ、そして追加の信用のために、声明の真実または虚偽の証拠を投稿してください。 :)

222
raldi

Pは多項式時間を表します。 NPは、非決定的多項式時間を表します。

定義:

  • 多項式時間は、アルゴリズムの複雑さがO(n ^ k)であることを意味します。ここで、nはデータのサイズ(たとえば、ソートされるリスト内の要素の数)、kは定数です。 。

  • 複雑さは、データ項目の数の関数として、必要な操作の数で測定される時間です。

  • Operationは、特定のタスクの基本的な操作として理にかなっています。並べ替えの基本操作は比較です。行列乗算の基本的な操作は、2つの数値の乗算です。

ここでの問題は、決定論的と非決定論的の意味は何ですか。抽象計算モデル、チューリングマシン(TM)と呼ばれる架空のコンピューターがあります。このマシンには、有限数の状態と、有限セットのシンボルの書き込みと読み取りが可能な個別のセルを持つ無限テープがあります。 TMはいつでもその状態の1つにあり、テープ上の特定のセルを見ています。そのセルから読み取った内容に応じて、新しいシンボルをそのセルに書き込み、テープを1セルだけ前後に移動して、別の状態にすることができます。これは状態遷移と呼ばれます。驚くべきことに、状態と遷移を慎重に構築することにより、TMを設計できます。これは、作成可能なコンピュータープログラムと同等です。これが、コンピューターができることとできないことを証明するための理論モデルとして使用される理由です。

ここで私たちに関係するTMには、決定論的と非決定論的の2種類があります。確定的TMには、テープから読み取るシンボルごとに各状態からの遷移が1つしかありません。非決定的TMには、このような遷移がいくつかある場合があります。 e。いくつかの可能性を同時に確認できます。これは、複数のスレッドを生成するようなものです。違いは、非決定的TMは必要な数の「スレッド」を生成できるのに対し、実際のコンピューターでは一度に実行できるスレッドの数は特定の数(CPUの数に等しい)だけであることです。実際には、コンピューターは基本的に有限のテープを備えた決定論的なTMです。一方、量子コンピューターを使用する場合を除き、非決定的TMは物理的に実現できません。

非決定的TMで解決できる問題は、決定的TMで解決できることが証明されています。ただし、どのくらい時間がかかるかは明確ではありません。ステートメントP = NPは、問題が非決定的TMで多項式時間をとる場合、多項式時間でも同じ問題を解決する決定的TMを構築できることを意味します。これまでのところ、それができることを示すことはできませんでしたが、それができないことを証明することもできませんでした。

NP完全問題とは、NP問題Xを意味し、任意のNP問題Yを多項式簡約によりXに縮約することができます。これは、NP完全問題の多項式時間解を誰かが思いついた場合、NP問題の多項式時間解も与えることを意味します。したがって、P = NPであることが証明されます。逆に、P!= NPを証明する人がいれば、従来のコンピューターでは多項式時間でNP問題を解決する方法はないと確信できます。

NP完全問題の例は、n個の変数を含むブール式を真にする真理値割り当てを見つける問題です。
実際のところ、非決定的TMで多項式時間を要する問題は、決定的TMまたは従来のコンピューターで指数時間でのみ実行できます。
たとえば、真理値割り当ての問題を解決する唯一の方法は、2 ^ n個の可能性を試すことです。

347
Dima
  1. Yes-or-no問題はPP多項式時間)答えが多項式時間で計算できる場合。
  2. Yes-or-no問題はNPNon-deterministicPolynomial time)yesの答えが多項式でverifiedである場合時間。

直観的に、問題がPにある場合、NPPの問題に対する潜在的な答えが与えられると、答えを再計算するだけで答えを検証できます。

それほど明白ではなく、答えるのがはるかに難しいのは、NPのすべての問題がP。多項式時間で答えを検証できるという事実は、多項式時間でその答えを計算できるということですか?

NP-complete(基本的に、これらの問題がP、次にallNP問題はP)にあることが証明されています。 P=NPの場合、これらすべての問題効率的な(多項式時間)ソリューションを持つことが証明されます。

ほとんどの科学者は、P!=NPと信じています。ただし、どちらの証明もまだ確立されていませんP=NPまたはP!=NP誰かがどちらかの推測の証拠を提供した場合、 彼らは100万米ドルを獲得する

79
Derek Park

私が考えることができる最も簡単な答えを与えるために:

特定の数の入力を必要とする問題があり、さまざまな潜在的な解決策があると仮定します。これは、指定された入力の問題を解決する場合としない場合があります。パズルマガジンのロジックパズルは良い例です。入力は条件(「ジョージは青または緑の家に住んでいない」)であり、潜在的な解決策はステートメントのリスト(「ジョージは黄色に住んでいます」家、エンドウ豆を育て、犬を飼っている」)。有名な例は、巡回セールスマン問題です。都市のリスト、任意の都市から他の都市への移動時間、および制限時間を考えると、潜在的な解決策は、セールスマンが訪問する順番の都市のリストです。移動時間の合計が制限時間より短い場合に機能します。

潜在的なソリューションを効率的にチェックして、それが機能するかどうかを確認できる場合、そのような問題はNPにあります。たとえば、セールスマンが順番に訪問する都市のリストが与えられた場合、都市間の各旅行の時間を合計して、制限時間内であるかどうかを簡単に確認できます。解決策が存在する場合に効率的に解決できる場合、問題はPにあります。

(効率的に、ここでは正確な数学的意味を持ちます。実際には、大きな問題を解決するのは不当に難しいことではないことを意味します。 、効率的な方法では、はるかに限られたセットを検索する必要があります。)

したがって、P = NP問題は次のように表現できます。上記の種類の問題の解決策を効率的に検証できる場合、解決策を効率的に見つけることができます(または、存在しないことを証明できます)。明白な答えは「なぜあなたはできるべきなのか」であり、それは今日の問題がほとんど存在する場所です。誰もそれを何らかの方法で証明することができず、それは多くの数学者とコンピューター科学者を悩ます。そのため、このソリューションを証明できる人は誰でも、Claypool Foundationから100万ドルの資金を得ています。

一般に、PはNPと等しくなく、解を見つける一般的な方法はないと仮定します。 P = NPであることが判明した場合、多くのことが変わります。たとえば、暗号化は不可能になり、それにより、インターネット上のあらゆる種類のプライバシーまたは検証可能性が得られます。結局、暗号化されたテキストとキーを効率的に取得して元のテキストを生成できるため、P = NPの場合、事前に知らなくても効率的にキーを見つけることができます。パスワードのクラッキングは簡単になります。一方、計画問題とリソース割り当ての問題には、効果的に解決できるものがあります。

NP-completeという説明を聞いたことがあるかもしれません。 NP完全問題はNP(もちろん)であり、この興味深い特性を持っています。それがPにある場合、すべてのNP問題はP = NPです。トラベリングセールスマンの問題、またはパズルマガジンの論理パズルを効率的に解決する方法を見つけることができれば、NPで何でも効率的に解決できます。 NP完全問題は、ある意味では、最も困難なNP問題です。

したがって、NP完全問題の効率的な一般的な解決方法を見つけたり、そのようなものが存在しないことを証明できる場合は、名声と富があなたのものです。

23
David Thornley

私の謙虚な知識からの短い要約:

いくつかの簡単な計算上の問題(グラフ内の2点間の最短パスを見つけるなど)があり、かなり高速に計算できます(O(n ^ k)。ここで、nは入力のサイズで、kは定数です(グラフの場合、頂点またはエッジの数です))。

グラフ内のすべての頂点を横断するパスを見つける、または公開キーからRSA秘密キーを取得するなど、その他の問題はより困難です(O(e ^ n))。

しかし、CSは、問題は非決定的チューリングマシンを決定論的チューリングマシンに「変換」できないことであると語っていますが、非決定的有限オートマトン(正規表現パーサーなど)を決定論的オートマトンに変換することはできます(まあ、あなたは可能ですが、マシンの実行には時間がかかります)。つまり、考えられるすべてのパスを試す必要があります(通常、スマートCS教授はいくつかのパスを除外できます)。

誰も解決策を知らないので、それは興味深いです。それが真実だと言う人もいれば、間違っていると言う人もいますが、合意はありません。もう1つの興味深いことは、ソリューションが公開キー/秘密キーの暗号化(RSAなど)にとって有害で​​あることです。 RSAキーを生成するのと同じくらい簡単にそれらを破ることができます。

そして、それはかなり刺激的な問題です。

9
terminus

質問のP =?NP部分の内容と理由に追加できるものはあまりありませんが、証明に関しては。証明は追加のクレジットに値するだけでなく、 ミレニアム問題 のいずれかを解決します。興味深いアンケートが最近行われましたが、 公開された結果(PDF) は、証明の主題に関して読む価値があります。

6
rjzii

まず、いくつかの定義:

  • 特定の問題は、いくつかのkに対してn^k未満の時間で解を計算できる場合、Pにあります。ここで、nは入力のサイズです。たとえば、ソートはn log nよりも小さいn^2で実行できるため、ソートは多項式時間です。

  • NPに問題があります。kが存在する場合、最大でn^kのサイズのソリューションが存在し、最大でn^kで検証できます。グラフの3色付け:グラフを考えると、3色付けは(頂点、色)ペアのリストであり、サイズはO(n)であり、_O(m)(またはO(n^2))すべての隣人が異なる色を持っているかどうか。したがって、グラフは、短くて検証可能な解決策がある場合にのみ3色になります。

NPの同等の定義は、「Nondeterministicチューリングマシン(Polynomial timeで解ける問題」です。 。名前の由来はわかりますが、NPの問題がどのようなものであるかを直感的に理解できるわけではありません。

PはNPのサブセットであることに注意してください:多項式時間で解を見つけることができる場合、多項式時間で検証できる解があります-与えられた解が見つけられる解と等しいことを確認してください。

質問P =? NPが興味深いのはなぜですか?それに答えるためには、まずNP完全問題が何であるかを見る必要があります。簡単に言えば、

  • 問題Lは、(1)LがPにある場合、NP完全です。(2)Lを解くアルゴリズムを使用して、NPの問題L 'を解くことができます。つまり、L 'のインスタンスを指定すると、L'のインスタンスにソリューションがある場合にのみ、ソリューションを持つLのインスタンスを作成できます。正式に言えば、NPのすべての問題L 'はLに対してreducibleです。

Lのインスタンスは、多項式時間で計算可能で、L 'のサイズの多項式サイズでなければならないことに注意してください。そのようにして、NP時間問題を多項式時間で解くと、allNP問題の多項式時間解が得られます。

次に例を示します。グラフの3色化はNP困難な問題であることがわかっているとします。ブール式の充足可能性を決定することも、NP困難な問題であることを証明したいと思います。

各頂点vに対して、2つのブール変数v_hとv_l、および要件(v_hまたはv_l)があります。各ペアは値{01、10、11}のみを持つことができ、これは色1、2、3と考えることができます。

各エッジ(u、v)には、(u_h、u_l)!=(v_h、v_l)という要件があります。あれは、

not ((u_h and not u_l) and (v_h and not v_l) or ...)すべての同等の構成を列挙し、どちらも該当しないという規定。

ANDこれらのすべての制約を一緒にすると、多項式サイズ(O(n+m))を持つブール式が得られます。計算にも多項式時間がかかることを確認できます:頂点ごとおよびエッジごとにO(1)のような単純なことをしています。

私が作成したブール式を解くことができれば、グラフの色付けも解くことができます。変数v_hとv_lの各ペアについて、vの色をそれらの変数の値に一致するものにします。数式の構築により、隣人は同じ色になりません。

したがって、グラフの3色がNP完全である場合、ブール式の充足可能性も同様です。

グラフの3色はNP完全であることを知っています。ただし、歴史的には、ブール回路の充足可能性のNP完全性を最初に示し、それを3色性に縮小することで(他の方法ではなく)知ることができました。

5
Jonas Kölker