P≠NP予想単語

5件
ピーイズノットエヌピーヨソウ
6.3千文字の記事
  • 39
  • 0pt
掲示板へ

P≠NP予想とは、不正確な表現を許すなら「難しい問題を簡単に解く方法は存在しない」という予想である。現代の暗号化技術はこの予想が正しいという前提の元に成立している。

概要

コンピュータは、実は1930年代理論完成している。現在コンピュータの根幹を支え続けている数学的基礎付けは、アラン・チューリングというイギリス数学者が作りあげたのだ。ここでは、その概略から始めてP≠NP予想に至るまでを述べよう。

コンピュータにとって、「難しい」問題とは何か?

ここで、但し書きをしておこう。

以下で扱う問題とは、「Yes」もしくは「No」の答えしか存在しない。

つまり、コンピュータピコピコガーガーと動いた後、「はい」か「いいえ」しか言ってくれないのだ。そういう問題だけを取り扱うことにしよう。たとえば、「0011という文字列は、0と1の数が等しいか?」といった問題だ。「1から100までに素数は何個ある?」みたいな問題は取り扱わない。取り扱うなら、「1から100までの素数の数は10個以上である」みたいな問題に変換することにしよう。

さて、閑話休題。

コンピュータにとって、「難しい」問題とは、そのものズバリ解くのにめちゃくちゃ時間がかかる問題のことだ。たとえばあるアルゴリズムでは、一サラッと答えを出せるのに対して、ほかのアルゴリズムでは十分、一時間かかるとする。つまり、「難しい」問題に対しては、「さらに速く」解けるアルゴリズムが、「カッコイイのだ。だってさ、総統閣下演説に「ヤーーーッ!!」って即答するのがカッコイイでしょ? 一時間も二時間もかかってから、ようやく「ヤーッ」って叫んでも、今頃おせぇんだよと突っ込み入れられること間違いなし。「難しい」問題に、麗に即答するのがカッコイイアルゴリズムなのだ。

ただ、どれが難しくて、どれが易しいのかは、人間ではわからない。またどれだけ難しいかも、人間の判断基準とは異なる。なぜなら、アルゴリズムを適用するときには、コンピュータ役になるからだ。「こんなの簡単じゃん!」ということさえ、コンピュータには難しいこともある。

そこで、「コンピュータとは何者ぞ?」という定義を行おう。それが、次に述べる「チューリングマシン」である。

チューリングマシンとは?

チューリングマシンとは、簡単に言えば入列に対して結果を吐き出す、簡単なコンピュータモデルだ。ただし、厳密には数学的に定義されている。

チューリングマシン定義

Kの要素は状態、Σの要素は入記号Γはテープ記号の有限集合、Fの要素は受理状態、sはKの要素のうち、初期状態とし、δはK×ΣからKへの写像であり、状態遷移関数とする。Bは空白記号とする。

チューリングマシン(TM) Mとは、K,Σ,Γ,δ,s,B,F として表される。ただし、Bを書き込むことはできない。

(KはQとする場合もある。また、sやFをq(init),q(acc)とする流儀もある。定義なので詳しくは教授に聞こう)

これだけでは何のことかさっぱりわからないかもしれないが、辛抱強く聞いてほしい。まず、次のようなモデルを考えてみよう。

問題:東京駅から大阪駅まで行けるか?(ただし、経路は問わないが、同じは二度と通らないこととする)

このとき、Kの要素「状態」の初期位置、つまりsは「東京駅」である。

東京駅から大阪駅まで行きたいときには、どんな方法があるだろう。まず考えられるのは新幹線に乗ることだ。東京駅から新幹線に乗ったら、「新幹線」という状態に遷移する。この「新幹線に乗る」という「遷移」を「状態遷移」という。あるいは、18きっぷを握りしめて東海道線に乗るかもしれない。これもまた状態遷移だ。

結局、新幹線JRを使って大阪駅に到着するとする。ここでは、「東京駅から大阪駅まで行く」という問題を達成できたわけだ。この状態をF、つまり「受理状態」と呼ぶ。逆に、日本中を放浪してしまい、か彼方インド地で尽きてしまったとする。これは「不受理」として処理される。

このように、チューリングマシンとは、問題が与えられ、それをウームウームと解いていく一種の機械と考えることができるのだ(そして驚くべきことに、現在コンピュータはすべて、1930年代に生み出されたチューリングマシンと同じ考え方で構成されている!)

もっと数学的なアルゴリズム論では、問題はたとえば次のように構成される。

問題:00001111は、0と1の数が同じか?

これを解くチューリングマシンを考えるのはたやすい。「0の数だけカウントを1UPさせて、1に出会うとカウントをダウンさせる」というチューリングマシンを作ればよい。最後にカウントが0になっていたら、受理だ。逆に、問題が「0111は、0と1の数が同じか?」という問題を、さきチューリングマシンに解かせると、不受理となる。

アルゴリズムが「作れない」問題?

アルゴリズムは、すべての問題について手続きを与えてくれるわけではない。これを「非可解」な問題と呼ぶ。

ところで、皆さんは「いつまでも動画読み込みが終わらない……」と悩んだことはないだろうか? 動画データがたかだか有限なので、いつか待っていればなんとか100%読み込めるはずだ(ブラウザバグとかは抜きにして)。ところが、「本当にいつまでたっても解けるかどうかわからない」という問題がある。これを「非可解」と呼ぶ。

非可解の問題で一番有名なのは、チューリングマシンの停止問題だ。

問題:チューリングマシンは入に対して停止するか?

つまり、何らかの入が与えられたとき、チューリングマシンの動作が本当に止まるかどうか? というのは、非可解、つまりわからないのだ。

この手の問題にはアルゴリズムを作ることはできない。いつまでたっても、結局答えは出るかどうかわからないのだ。

再び:コンピュータにとって「難しい」問題とは?

では、最初に戻ってコンピュータにとって難しい問題とは何かを考えてみよう。

コンピュータは先に述べたように、チューリングマシンで模倣できる。現在使われているコンピュータは、まだ理論段階である量子コンピュータなんぞを除けば、すべてチューリングマシンの模倣だ。

だから、「難しい」問題のなかでも、頂点にいるのが「非可解」な問題なのだ。

じゃあ、非可解な問題を除いていけば、すべて可解なんじゃないか? つまり、非可解問題を除けば、コンピュータさんは何でも答えを出してくれるよね! という期待が当然わくことだろう。

本当にそうだろうか?

ネタバレをすると、解けます。でも……

「難しい問題」を解くアルゴリズム

さて、ここまで読み進めていただいたなら、もう次の問題はすんなりわかるだろう。

問題:東京駅から大阪駅まで行けるか?(ただし、経路は問わないが、同じは二度と通らないこととする)

これを計算機に解かせてみよう。可解かどうかはすぐにわかるはずだ。経路は問わないとはいえ、飛行機、まあ何にせよ有限個の経路しかない。あるいはそういうに制限をつけてもいいだろう。「鉄道を利用することにする」などなど。そうすれば、おのずとこの問題は、ごく直感的に「解けそうだな」という気分がする。

では、実際に解いてみよう。

まず入は、東京駅から出ているすべての路線だ。山手線京浜東北線京葉線中央線東北新幹線東海道新幹線etc……全部だ。そして、大阪駅からも多数の路線が出ている。東海道線環状線私鉄なども含めればさらに膨大になる。

この問題を、コンピュータに解かせると、次のようになる。

「えーっと、東京駅からは、山手線に乗ってみよう」
「おや、上野駅に着いたぞ。新幹線にも乗れるのか。東北に行ってみようかなぁ、それとも山手線に乗ったままにしようかなぁ……」
……
稚内に来てしまった。同じ路線はもう使えないから飛行機に乗るしかないなぁ」
……
「ここはどこだ?」(北極で震えながら) →不受理

もうおわかりのように、コンピュータにとっては、大阪まで行き着こうと思うと総当たりで調べるしかないのだ。

方法が総当たりしかないというのは、コンピュータにとって、非常に難しい問題である。なぜなら、答えが出るまでずーーーっと待たなければならないからだ。ただし、「非可解」ではないので、何年かずーーーっとパソコンを動かしていれば答えが出るだろう。

しかし、「総当たりで調べる」というのも立アルゴリズムだ。逆に言えば、総当たりしかそれまで方法がないと思われていたアルゴリズムに、もっとうまいやり方を考えるというのがアルゴリズム研究である。「難しい問題を易しく解く」と言い換えた方がいいだろうか。

このように、「コンピュータに解かせるには難しすぎるアルゴリズムしかない問題」のことをNP問題という。

もっと厳密に言えば、非決定性チューリングマシンによって(多項式時間[1])解ける問題のことをNP問題という。

決定性・非決定性ってなーに?

それは難しい問題だ(人間にとって)。

ごくおおざっぱに言えば、東京駅で、「中央線に乗ろうかな〜それとも山手線に乗ろうかな〜新幹線もいいな〜」とラフラ迷ってるヤツがいたら、そいつは「非決定性」だ。非決定性なヤツは、次の行動バリエーションがたくさんあって、東京駅からどこか遠くに行ってしまう可性がある。逆に、東京駅からは新幹線にしか乗りません(キリッ」というヤツは「決定性」という。決定性のチューリングマシンなら、「東京駅」というデータが送られたらすぐさま新幹線に乗るのだが、非決定性チューリングマシンはもしかしたら中央線に乗っているかもしれない。

人間にとっては理解しがたいかもしれないが、コンピュータにとっては、膨大な路線の網で、東京から大阪へ、しかも同じを二度以上通らずに行くルートが果たしてあるかどうかというのは、非常に時間を要する問題なのだ。たまたま新幹線に乗れたとしても、新大阪新快速に乗って寝過ごすという行動もあり得る。なんせ非決定性だから、運良く新大阪で降りられても、次の行動はさまざまなのだ。そういう場合、答えを出すにはさらに時間がかかるだろう。

つまり、非決定性チューリングマシンというのはマヌケなのだ。次の行動が決まっていない。だから東京駅から大阪駅まで行くのに、わざわざ東北新幹線に乗るというトンチキ行動を犯したりもする。そうして間違えながら、総当たりしまくって、よーーーーやく、大阪にたどり着いて「いやぁ答えをようやく見つけましたよ」と言ってきたりする。そこで、「仕方ないなぁ、答えを見つけたんだから他の場所にフラフラしててかかった時間は見逃してやるよ」と言ってやる。これがNP問題の定義である。

さらに詳しい定義

ある問題が非決定性多項式時間限定チューリングマシンで解けるとき、その問題をクラスNPに入る(NP問題)と呼ぶ。

非決定性なので、ある様相(たとえば東京駅)から次の様相への遷移(新幹線に乗るとか、中央線に乗るとか)は複数存在してもかまわない。非決定的選択(フラフラ浮気しながらいろんなところに行く)を行って、初めて受理様相に達したとき、受理様相から初期状態への距離がO(n^k)で押さえられる(結果的に見ると、東京から大阪まではちゃんと行けましたね、ということが簡単に確認できる)。

このとき、東京から大阪にたどり着くまでに倒れちゃったとか、東京から大阪までアメリカ経由で行きましたとか、そういう他のルートにかかった時間は不問とする。

しかし、まあ、だいたい東京から大阪に行けと言ってるのにインドに行くようなヤツは信用ならないから、々は総当たりで必死ルートを探すわけだ。それはいったい何年かかるかわからないけれど、まあ、いずれは答えを出してくれる。だから非可解ではないけれども、時間がかかるという意味で、難しい問題には変わりない。

ところで、決定性チューリングマシンで多項式時間で解ける問題を、P問題という。状態に対して行動が一意的に定まっているマジメ君の解ける問題だ。マジメ君は、たとえば、「000111は0と1の数が同じか?」という問題で、0を数えてる途中に浮気して1を数え始めたりしない。

々は、マジメ君しか信用したくないので、できれば浮気者の非決定性チューリングマシンでしか解けない問題を、なんとかマジメ君に解いてもらおうとして努している。つまり、非決定性チューリングマシンで解くような問題を、マジメ君は総当たりを必死に始めるので、それがいたたまれないのだ。当然、マジメ君にもっと簡単に解いてもらう方法があるんじゃないだろうか? という疑問がわき上がってくる。

NP≠P?

マジメ君必死に総当たりを始める中、だんだんNP問題の数が増えてきた。これはマジメ君には荷が重いなぁ、どうにかしてマジメ君の計算量を減らしてやれないかなぁとみんな必死で考えていたのだ。

で、ある日、Steve Cookという人物は、「じゃあNP問題の中で、一番難しいヤツを探してやんよ!」と言って、NPという概念を生み出した。「この問題が解けちゃったら、ほかのNP問題もスゲー簡単に解けちゃうんだぜ!」という問題を探そうとしたのだ。

具体的には、問題QがNP全——つまり最強に難しい問題——であるとき、問題Qが簡単に解けてしまうアルゴリズムが見つかった(これを具体的には決定性チューリングマシンで解ける、P問題という)ならば、ほかのあらゆるNPの問題は簡単に解ける(P問題になる)という問題だ。

そして確かに、そういう問題は見つかった。が、一個見つかったが最後、づる式に大量にNP全な問題が出てきてしまった。あのぷよぷよや、テトリスさえも、NP全であることがバレてしまったのだ。最強の問題がゴロゴロしていて、最近では見つかっても「あっそ」扱いされるレベルなのだ。

NP問題でググってここにくるかもしれない人に付け加えておくと、NP問題の検算は簡単だ。上の例のように、東京駅から大阪駅まで行くルートを見て、ちゃんとルールを破らずに一筆書きでやってきたかどうかをチェックするのは簡単である。これは決定性チューリングマシンで解ける、つまりP問題である。検算がP問題になるというのもNP問題の定義なので、P問題は実はNP問題に含まれる(これ以上はややこしいので、もっと知りたい人は大学に行くように)。

一般にNP問題を解くアルゴリズム研究は、非常に難しいとされている。P問題はキッチリ計算できるのに、NP問題は解くためにかかる時間が非常に大きい。もし、NP問題がP問題のように、弊を恐れず言うと「簡単に」解けるようなことがあれば、先に述べたように全世界が震撼する。が、やっぱり理なんじゃねーの、というのが大方の見解だ。なぜなら、多くの数学者や計算機科学者たちが挑み続けているにもかかわらず、ずーっとNP全な問題が簡単に解けるようなアルゴリズムは見つかっていないからだ。だから、みんなNPはPとイコールではないと思っている。これをP≠NP予想といい、新たな明を見いだせたなら、あなたにはクレイ数学研究所からドルがもれなくもらえる予定だ。

関連動画

関連項目

脚注

  1. *多項式時間についてはアルゴリズムの記事内にて説明

【スポンサーリンク】

  • 39
  • 0pt
記事編集 編集履歴を閲覧

ニコニ広告で宣伝された記事

紲星あかり (単) 記事と一緒に動画もおすすめ!
提供: アニメ(ニワカ)オタク
もっと見る

この記事の掲示板に最近描かれたお絵カキコ

この記事の掲示板に最近投稿されたピコカキコ

ピコカキコがありません

P≠NP予想

91 ななしのよっしん
2021/02/01(月) 21:03:18 ID: I4k3lAeepk
>>90
摘の部分を書いた者ではないですが、非決定性チューリングマシンとは量子コンピューターより高性マシンであり、その文脈おけるコンピューターはいわゆるノイマンコンピューターのことをしているのですが、それを把握した上でのご摘でしょうか。
👍
高評価
0
👎
低評価
0
92 ななしのよっしん
2021/12/25(土) 20:21:12 ID: 0pGTro81Dd
>>89
想定される経由地の補が爆発的に増えるだよ!
👍
高評価
0
👎
低評価
0
93 ななしのよっしん
2022/02/24(木) 12:57:29 ID: dX1hF9IfjN
P問題は時間止めて考えてれば答えが出る問題、NP全の問題は時間止めて考えてたら答えが出ない問題ってこと?

P問題は時間が止まっててもコンピュータが動いてたら答えが出る問題で、NP全の問題は時間が動いててもがコンピュータが止まってたら答えが出ない問題ってことかな。

時間の停止とコンピュータの停止を区別するかしないかが問題な気がする。
コンピュータに自分が止まってるかどうかを確認する機があれば区別可だろうけど記事見た感じさそうだし、区別不可能とすれば≠では?
👍
高評価
0
👎
低評価
0
94 ななしのよっしん
2022/08/25(木) 16:33:44 ID: PyIKTzvZXo
まぁ基本的にそこまで難しい話ではないよ。
要するにこれは正しいか否かを聞いているだけであって、々がすべきことは「私は正しいです」という事だけ。
👍
高評価
0
👎
低評価
0
95 ななしのよっしん
2022/11/30(水) 20:34:25 ID: eqpAROzJ0X
これとリーマンとどちらが難しいのやら

また円周率オイラー数を数組み合わせしたいくつかが円周率かどうかとかと
👍
高評価
0
👎
低評価
0
96 ななしのよっしん
2022/12/15(木) 02:56:33 ID: dX1hF9IfjN
どうでもいいけどNP全問題と素数素因数分解困難性って似てるよね。適当自然数Nが与えられて、それが自分自身以外の素数で割り切れることが示されてたら話はいけど、示されてなかったらN未満の素数を全部試す以外に100%確認できてなおかつ効率のいいアルゴリズムが存在しないところとか。
👍
高評価
0
👎
低評価
0
97 ななしのよっしん
2023/04/04(火) 02:49:18 ID: dX1hF9IfjN
東京駅から大阪駅に向かう経路があるか否かっていう問題は、下のような実験をすれば較的容易にわかるね。

1削っても形が崩れない球を用意します
球面のどこでもいいので一点を東京駅とします
3その対蹠点を大阪駅とします(二点を通る直線は地球における経線)
地球上に存在する補となりうる経路がちゃんとすべて球面上に収まるよう気をつけながら、それらを球に溝として彫っていく
・彫っていく上で溝の先端と大阪駅との距離が広がっていれば緯度方向に、縮んでいれば経度方向に彫る軌を曲げる
・経路と経路が交わっていれば絶対に交わらせて、交わっていなければ絶対に交わらせない
5彫れたら球の表面に溝を塞がないよう気をつけながらカバーをつける
東京駅にあたる点を上にしてそこからを流し込む
7十分時間が経って、下からが滴り落ちてきたら経路が存在するし、上からが溢れ出してたら経路が存在しないことがわかる
👍
高評価
0
👎
低評価
0
98 ななしのよっしん
2023/04/04(火) 02:51:15 ID: dX1hF9IfjN
現実的にはこんな実験不可能だけど、CGだったら可かも。

この例はスタートゴール距離が有限だったからいいけど、リーマン球面みたいに、スタートゴール距離無限大だったら永遠にが行き渡ることがないから、が溢れ出ることもないし、滴り落ちることも当然ない。ということでこの方法は使えないんだけどね。
👍
高評価
0
👎
低評価
0
99 ななしのよっしん
2023/09/07(木) 01:10:08 ID: Z4/hyfhElt
記事の東京大阪駅のたとえ、解説してる内容の割に文章のボリュームが不必要に大きくてわかりにくかった
ちょっと自分なりに別の例えでこのへん再解釈してみる
東京駅とか池袋駅とか秋葉原駅とかいろいろ爆破しようと思ったときに、割と現実的な時間で爆破了するならそれは"Pクラス"
爆破了した後に、本当に東京駅池袋駅秋葉原駅は跡形もくなったか、と確かめるときに、現実的な時間で確認了するならそれは"NPクラス"
P=NPであるということは、東京駅の存亡をネットで調べられる(NP)なら、当然東京駅を爆破する(P)ぐらい簡単だよね?ということ
そんなことがあり得るはずもないから、「P≠NP予想」が立っている
👍
高評価
0
👎
低評価
0
100 ななしのよっさん
2024/02/13(火) 19:42:29 ID: CeeOpvZ6Rn
東野圭吾容疑者Xの献身でこの話を扱ってたな。宝箱を探す難しさと、その宝が本物のお宝か判定する難しさは同等か?と説明していたな
アルゴリズムのことをり落としたせいでミステリ業界の人たちの理解はめちゃくちゃになったぞ
👍
高評価
0
👎
低評価
0

スマホで作られた新規記事

こちらの記事に加筆・修正してみませんか?

画面遷移確認のための記事 健康優良児 あらそう