P = NPがコンピュータサイエンス全体でおそらく最も有名であるかどうかの問題。どういう意味ですか?そして、なぜそれがそんなに面白いのですか?
ああ、そして追加の信用のために、声明の真実または虚偽の証拠を投稿してください。:)
P = NPがコンピュータサイエンス全体でおそらく最も有名であるかどうかの問題。どういう意味ですか?そして、なぜそれがそんなに面白いのですか?
ああ、そして追加の信用のために、声明の真実または虚偽の証拠を投稿してください。:)
回答:
Pは多項式時間を表します。NPは、非決定論的多項式時間を表します。
定義:
多項式時間とは、アルゴリズムの複雑さがO(n ^ k)であることを意味します。ここで、nはデータのサイズ(たとえば、ソートするリスト内の要素の数)であり、kは定数です。
複雑さは、データ項目の数の関数として、実行する操作の数で測定される時間です。
操作は、特定のタスクの基本操作として意味のあるものです。並べ替えの場合、基本的な操作は比較です。行列の乗算の場合、基本的な演算は2つの数値の乗算です。
ここで問題は、決定論的対非決定論的とはどういう意味ですか?抽象計算モデル、チューリングマシン(TM)と呼ばれる架空のコンピューターがあります。このマシンには、有限数の状態と、有限のシンボルセットを読み書きできる個別のセルを持つ無限テープがあります。常に、TMはその状態の1つにあり、テープ上の特定のセルを監視しています。そのセルから読み取る内容に応じて、そのセルに新しいシンボルを書き込み、テープを1つ前または後ろに移動して、別の状態にすることができます。これは状態遷移と呼ばれます。驚くべきことに、状態と遷移を注意深く構成することにより、TMを設計できます。これは、作成可能なコンピュータープログラムと同等です。
ここで私たちに関係するTMには、確定的と非確定的の2種類があります。確定的TMは、テープから読み取っている各シンボルの各状態からの1つの遷移のみを持ちます。非決定論的なTMは、そのような遷移をいくつか持つ可能性があります。つまり、いくつかの可能性を同時にチェックできます。これは、複数のスレッドを生成するようなものです。違いは、非決定論的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の可能性を試すことです。
直感的に、問題がPにある場合、それはNPにあることがわかります。Pの問題に対する潜在的な答えが与えられた場合、答えを再計算するだけで答えを検証できます。
それほど明白ではなく、答えるのがはるかに難しいのは、NPのすべての問題がPにあるかどうかです。多項式時間で答えを検証できるということは、多項式時間でその答えを計算できるということですか?
NP完全であることがわかっている重要な問題が多数あります(基本的に、これらの問題のいずれかがPであることが証明された場合、すべての NP問題はPであることが証明されます)。P = NPの場合、これらすべての問題は効率的な(多項式時間)解をもつことが証明されます。
ほとんどの科学者はP!= NPであると信じています。ただし、P = NP またはP!= NPのいずれについても証明はまだ確立されていません。どちらかの推測の証拠を提供した人がいたら、100万ドルを獲得します。
私が考えることができる最も簡単な答えを与えるために:
特定の数の入力を受け取る問題があり、特定の入力の問題を解決する場合と解決しない場合があるさまざまな解決策があるとします。パズルマガジンのロジックパズルが良い例です。入力は条件であり(「ジョージは青または緑の家に住んでいない」)、可能な解決策はステートメントのリストです(「ジョージは黄色で生きています」家、エンドウ豆を育て、犬を飼っている」)。有名な例は、巡回セールスマン問題です。都市のリスト、任意の都市から他の都市への移動時間、および制限時間が与えられた場合、解決策として考えられるのは、セールスマンが訪問した順序で都市をリストすることです。移動時間の合計が制限時間よりも短い場合に機能します。
このような問題は、可能性のある解決策を効率的にチェックして機能するかどうかを確認できれば、NPにあります。たとえば、セールスマンが訪問する都市のリストを順番に指定すると、都市間の各旅行の時間を合計して、それが制限時間内かどうかを簡単に確認できます。解決策が存在する場合に効率的に見つけることができれば、Pに問題があります。
(効率的に、ここでは、正確な数学的意味があります。実際には、大きな問題が不合理に解決するのが難しくないことを意味します。可能な解決策を探すとき、非効率的な方法は、可能なすべての解決策、またはそれに近いものをリストすることです。 、効率的な方法では、はるかに限定されたセットを検索する必要があります。
したがって、P = NP問題は次のように表すことができます。上記の種類の問題の解決策を効率的に検証できれば、効率的に解決策を見つける(または解決策がないことを証明する)ことができますか?明白な答えは「なぜあなたはそれができるのか?」であり、それが問題が今日立っているところのほとんどです。誰もそれを何らかの方法で証明することはできず、多くの数学者やコンピューター科学者を悩ませています。だからこそ、解決策を証明できる人なら誰でもクレイプール基金から100万ドルを稼ぐことができます。
一般に、PはNPに等しくない、つまり解を見つける一般的な方法はないと仮定します。P = NPであることが判明した場合、多くのことが変化します。たとえば、暗号化は不可能になり、それによってインターネット上のあらゆる種類のプライバシーまたは検証可能性が失われます。結局のところ、暗号化されたテキストとキーを効率的に取得して元のテキストを生成できるため、P = NPであれば、事前に知らなくてもキーを効率的に見つけることができます。パスワードの解読は簡単になります。一方、効果的に解決できる計画問題とリソース割り当て問題には、クラス全体があります。
NP-completeという説明を聞いたことがあるかもしれません。NP完全問題はNP(もちろん)の問題であり、この興味深い特性があります。それがPにある場合、すべてのNP問題はP = NPです。巡回セールスマンの問題、またはパズル雑誌の論理パズルを効率的に解決する方法を見つけることができれば、NPのすべてを効率的に解決できます。ある意味、NP完全問題は、最も難しい種類のNP問題です。
したがって、NP完全な問題に対する効率的な一般的な解決手法を見つけたり、そのような問題が存在しないことを証明したりすることができれば、名声と幸運はあなた次第です。
私の謙虚な知識からの短い要約:
いくつかの簡単な計算問題(グラフ内の2点間の最短経路を見つけるなど)があり、かなり高速に計算できます(O(n ^ k)。ここで、nは入力のサイズであり、kは定数です(グラフの場合は、頂点またはエッジの数です)。
グラフのすべての頂点と交差するパスを見つける、または公開鍵からRSA秘密鍵を取得するなど、他の問題はより困難です(O(e ^ n))。
しかし、CSの話では、問題は非決定性チューリングマシンを決定論的チューリングマシンに「変換」できないことですが、非決定性有限オートマトン(正規表現パーサーなど)を決定論的オートマトンに変換できます(まあ、あなたできますが、マシンの実行時間が長くなります)。つまり、すべての可能なパスを試さなければなりません(通常、賢いCS教授はいくつかのパスを除外できます)。
解決策について誰も知らないので、興味深いです。一部はそれが真であると言う、一部はそれが偽であると言いますが、コンセンサスはありません。別の興味深いことは、ソリューションが公開鍵/秘密鍵の暗号化(RSAなど)に有害であることです。RSAキーを生成するのと同じくらい簡単にそれらを破ることができます。
そして、それはかなり刺激的な問題です。
私が質問のP =?NPの部分の何を、そしてなぜ追加できるのは多くありませんが、証明に関してです。証明は追加の信用に値するだけでなく、ミレニアム問題の 1つを解決します。興味深い調査が最近行われ、公表された結果(PDF)は証明の主題に関して間違いなく読む価値があります。
まず、いくつかの定義:
入力のサイズがであるn^k
some よりも短い時間で解を計算できる場合、Pに特定の問題があります。たとえば、が未満の並べ替えを実行できるため、並べ替えは多項式時間になります。k
n
n log n
n^2
NPに問題があるのは、k
せいぜいn^k
時間内に検証できるサイズの解が最大で存在するようなものが存在する場合ですn^k
。グラフの3色表示:グラフが与えられた場合、3色表示は(頂点、色)のペアのリストであり、サイズがO(n)
あり、時間内にO(m)
(またはO(n^2)
)すべての近傍が異なる色かどうかを確認できます。したがって、グラフは3色で表示できます。
NPの同等の定義は、「によって解決可能な問題であるNでondeterministicチューリングマシンP olynomial時間」。これは名前がどこから来たのかを教えてくれますが、NPの問題がどのようなものであるかを直感的に理解することはできません。
PはNPのサブセットであることに注意してください。多項式時間で解を見つけることができる場合、多項式時間で検証できる解があります。与えられた解が見つけられるものと等しいことを確認してください。
質問がP =? NP
興味深いのはなぜですか?これに答えるには、まずNP完全問題が何であるかを確認する必要があります。簡単に言えば、
Lのインスタンスは多項式時間で計算可能でなければならず、L 'のサイズの多項式サイズでなければなりません。このようにして、NP完全問題を多項式時間で解くと、すべての NP問題の多項式時間解が得られます。
次に例を示します。グラフの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色に減らすことで、これを知るようになりました。