1 非決定性多項式時間
非決定性機械では、各配置から有限個の次配置を許す。機械の遷移表は有限であるため、全配置に共通する分枝数の定数上界が存在する。
定義 1.1.§E18.10 定義 1.1の読取り専用入力テープと固定有限本の作業テープをもつ機械で、遷移先を有限集合として与えるものを非決定性 Turing 機械 (nondeterministic Turing machine) とする。入力x上の計算木は、初期配置を根とし、一段で到達することができる配置を子とする有限分枝木である。少なくとも一つの分枝が受理状態で終わるとき、Nはxを受理する。
ある多項式p∈N[n]が存在して、長さnの各入力に対するすべての計算分枝が高々p(n)段で受理または拒否するとき、Nを多項式時間非決定性決定器 (polynomial-time nondeterministic decider) という。
受理分枝だけが多項式時間であればよいのではない。拒否入力を含むすべての入力において、すべての分枝が共通の多項式上界内で停止することが定義に含まれる。
定義 1.2. 有限アルファベットΣ上の言語L⊆Σ∗が NP (NP) に属するとは、Lを受理する多項式時間非決定性決定器が存在することをいう。
Cook–Levin の符号化では、入力と作業領域を同じテープ上に置く標準単テープ機械が便利である。次の命題により、機械を標準単テープ機械へ変更しても NP は変わらない。
証明. 最初に、読取り専用入力テープとk本の作業テープをもつ非決定性機械Nを、標準単テープ非決定性機械Sで模倣する。Sは入力xを有限回走査して、
#uin#u1#⋯#uk#という複数トラックの符号へ書き換える。uinは変更しない入力トラックであり、各トラックのヘッド位置を印付き記号で表す。
元の一段を模倣するとき、Sは符号全体を走査して各ヘッド下の記号を有限制御へ記録する。元の配置で選ぶことができる各遷移規則に対して、Sにも対応する非決定的選択を一つ置く。選択後にもう一度符号を走査し、作業記号とヘッド印を更新する。初期符号はO(∣x∣2+1)時間で構成することができる。元の計算がt段以内であれば、符号長はO(∣x∣+t+1)であり、一段の模倣にはO(∣x∣+t+1)時間しか要らない。したがって、各分枝の全模倣時間は
O(∣x∣2+t(∣x∣+t+1)+1)である。tが入力長の多項式なら、この上界も多項式である。遷移選択を一対一に対応させたため、受理分枝の存在が保存され、全分枝の時間にも同じ上界が成り立つ。
逆に、標準単テープ非決定性機械Sを資源モデルで模倣するには、読取り専用入力を一度だけ第一作業テープへ複写し、その後はSの各非決定的遷移を同じ一段で実行する。複写にO(∣x∣+1)時間を要するだけなので、多項式時間性と受理分枝の存在は保存される。▨
決定性機械は、各配置からの次配置が一つである非決定性機械とみなすことができる。
命題 1.4.
P⊆NPである。
証明.L∈Pとし、DをLの多項式時間決定器とする。Dの各配置から出る遷移を唯一の非決定的選択とみなせば、計算木は一本の分枝だけからなる。Dは全入力で多項式時間内に停止し、その分枝が受理することと入力がLに属することは同値である。したがってL∈NPである。▨
逆向きの包含NP⊆Pが成り立つかどうかは知られていない。P=NPであるかどうかは未解決の問題である。本記事でも本単元でも、この問いに対するどちらの結論も主張しない。以下で示す包含関係はすべて、この問いを解くことなく証明することができるものである。
2 多項式長の証明書
入力と証明書のアルファベットを分けて固定する。異なる有限アルファベット間の符号化には、各文字を同じ長さの二進語へ写す固定長符号を用いる。この変換は語の長さを定数倍しか増やさず、線形時間で実行することができる。
定義 2.1.L⊆Σ∗とする。固定有限アルファベットΓc、多項式p,q∈N[n]、および決定性 Turing 機械Vが存在し、次の二条件を満たすとき、VをLの多項式時間検証器 (polynomial-time verifier) という。
- 任意のx∈Σ∗について
x∈L⟺ある y∈Γc∗ が存在して ∣y∣≤p(∣x∣) かつ V(x,y) が受理する.
- ∣y∣≤p(∣x∣)を満たすすべての組(x,y)について、V(x,y)は高々q(∣x∣)段で停止する。
語yを証明書 (certificate) という。入力対(x,y)は、二本の読取り専用テープに分けて与えるか、区切り記号を用いた固定符号⟨x,y⟩として与える。
条件 (b)の時間上界をq(∣x∣+∣y∣)と書く定義も同値である。証明書長がp(∣x∣)以下であるため、多項式の合成によってq(∣x∣+p(∣x∣))も∣x∣の多項式になる。
3 二つの定義の同値性
非決定性から検証器への向きでは、計算分枝で選んだ遷移番号を証明書に記録する。逆向きでは、非決定性機械が証明書を一文字ずつ生成してから検証器を実行する。
定理 3.1. 有限アルファベット上の言語Lについて、次の二条件は同値である。
- L∈NP。
- Lは多項式時間検証器をもつ。
証明.(1)を仮定する。NをLの非決定性決定器とし、長さnの入力上の全分枝がp(n)段以内に停止するとする。Nの遷移表は有限であるため、各配置からの遷移候補に0,…,b−1の番号を付けることができる。ここでbは機械だけに依存する定数であり、存在しない候補番号は無効とする。
証明書アルファベットをΓc={0,…,b−1}とする。検証器Vは入力(x,y)を受け取り、N(x)の初期配置から始める。yの文字を左から読み、各文字が指定する遷移を一段ずつ実行する。無効な番号を読んだ場合、拒否状態へ到達した場合、またはp(∣x∣)文字を超えた場合には拒否する。受理状態へ到達した場合には受理し、証明書を読み終えても非停止配置にいる場合には拒否する。
Nにxの受理分枝が存在するなら、その分枝で選ばれた高々p(∣x∣)個の番号列を証明書にすればVは受理する。逆に、Vが証明書yを受理したなら、yが指定した遷移列はN(x)の実在する受理分枝である。証明書長はp(∣x∣)以下である。一段の遷移の直接模倣を多テープ上で行えば時間はO(p(∣x∣)+∣x∣)であり、一本の作業テープへ直しても§E18.10 系 4.2により多項式時間である。
Γcを二進アルファベットへ統一する場合には、一文字をℓ=⌈log2max{2,b}⌉ビットで符号化する。証明書長はℓp(∣x∣)以下となり、ℓは正の固定定数であるため多項式長のままである。したがって、(1)⇒(2)が従う。
次に(2)を仮定し、検証器Vと多項式p,qをとる。非決定性機械Nは入力x上で、最初に証明書テープを空にする。続いて高々p(∣x∣)回、次の二種類の選択を行う。
- 証明書の生成を終了する。
- Γcの一文字を非決定的に選び、証明書テープへ書く。
p(∣x∣)文字を書いた場合には強制的に生成を終了し、その後でV(x,y)を決定的に模倣する。Vが受理した場合に限って受理する。
各y∈Γc∗で∣y∣≤p(∣x∣)を満たすものについて、ちょうどyを生成して終了する分枝が存在する。したがって、Nに受理分枝が存在することと、長さがp(∣x∣)以下の証明書をVが受理することは同値であり、この受理分枝の存在条件はx∈Lと同値である。
入力長nを二進計数し、固定した多項式p(n)を計算して反復回数を管理する処理は多項式時間で実行することができる。証明書の生成はO(p(n))段であり、検証はq(n)段以内で停止する。したがって、全分枝に共通する多項式上界が存在する。必要なら命題 1.3によって標準単テープ機械へ変換しても、多項式時間性を保つ。よってNは多項式時間非決定性決定器であり、(2)⇒(1)が従う。▨
例 3.2. 頂点集合を{1,…,m}とする有向グラフGを隣接行列で符号化し、全頂点を一度ずつ通って始点へ戻る有向閉路が存在するかを問う。
証明書を頂点列(v1,…,vm)とする。各頂点番号には⌈log2(m+1)⌉ビットを用いるため、証明書長はO(mlogm)である。検証器は、各番号が1,…,mに属すること、番号が重複しないこと、全頂点が現れること、および
(vi,vi+1)(1≤i<m),(vm,v1)がすべて辺であることを調べる。単純な二重走査でもO(m2logm)時間であり、隣接行列の符号長はΘ(m2)なので入力長の多項式である。したがって、この言語は NP に属する。
4 多項式時間 many-one 帰着
§E18.6 定義 1.1では帰着関数に全計算可能性だけを要求した。計算量理論では、その変換時間も入力長の多項式で制限する。
定義 4.1. 言語A⊆Σ∗とB⊆Γ∗に対し、関数
f:Σ∗⟶Γ∗が決定性 Turing 機械によって多項式時間で計算され、任意のx∈Σ∗について
x∈A⟺f(x)∈Bを満たすとする。このとき、AはBに多項式時間 many-one 帰着 (polynomial-time many-one reduction) するといい、
A≤pBと書く。
出力を明示的に書く機械では、帰着関数の出力長は計算時間以下である。したがって、多項式時間帰着の出力長も入力長の多項式で抑えられる。
命題 4.2.A≤pBかつB∈Pならば、A∈Pである。
証明. 帰着関数をfとすると、
A={x:f(x)∈B}である。したがって§E18.10 命題 5.1を適用すれば結論を得る。▨
命題 4.3.A≤pBかつB∈NPならば、A∈NPである。
証明.fを帰着関数とし、長さnの入力上の計算時間をr(n)以下とする。出力長について
∣f(x)∣≤r(∣x∣)+cとなる機械依存の定数cが存在する。Bの検証器をVB、証明書長上界をp(m)、検証時間上界をq(m)とする。
Aの検証器VAは入力(x,y)に対し、最初にz=f(x)を計算する。次に、∣y∣>p(∣z∣)ならば直ちに拒否し、∣y∣≤p(∣z∣)の場合に限ってVB(z,y)を実行する。VAに許す証明書長の上界を
p(r(∣x∣)+c)とする。この上界は∣x∣の多項式であり、∣z∣≤r(∣x∣)+cとpの単調性から、Bの受理証明書に必要な長さp(∣z∣)以上である。
x∈Aならばz∈Bである。したがって、∣y∣≤p(∣z∣)かつVB(z,y)が受理する証明書yが存在する。このyは上の全体上界も満たし、長さ検査を通るのでVAが受理する。逆にx∈/Aならばz∈/Bである。全体上界を満たす任意のyについて、∣y∣>p(∣z∣)ならVAは直ちに拒否し、∣y∣≤p(∣z∣)ならBの検証器の健全性によりVB(z,y)が拒否する。したがってVAも拒否する。
停止性と時間上界も確認する。fの計算はr(∣x∣)段以内で停止する。長さ検査はp(∣z∣)+1文字まで調べれば終わり、検査を通った場合だけVBを実行する。この場合には検証器の定義からVB(z,y)はq(∣z∣)段以内に停止する。したがって、全体上界を満たす証明書上でVAは必ず停止し、その時間は
r(∣x∣)+O(p(r(∣x∣)+c)+1)+q(r(∣x∣)+c)以下であり、∣x∣の多項式である。
VAの証明書アルファベットにはVBと同じ固定有限アルファベットを用いることができる。二進アルファベットへ統一する場合には固定長符号で一文字ずつ変換すればよく、証明書長と検証時間は定数倍しか増えない。したがってAは多項式時間検証器をもち、定理 3.1によりA∈NPである。▨
命題 4.4.A≤pBかつB≤pCならば、A≤pCである。
証明. 二つの帰着関数をf,gとする。合成g∘fは
x∈A⟺f(x)∈B⟺g(f(x))∈Cを満たす。fの出力長は∣x∣の多項式であり、gの時間はその入力長の多項式であるため、§E18.10 命題 5.1と同じ合成評価によりg∘fは多項式時間で計算される。▨
5 補言語のクラス co-NP
NPの二つの定義は、いずれも受理分枝または証明書の存在という形をとる。存在の否定を、一般に存在の形へ書き直すことはできない。したがって、L∈NPから補言語Σ∗∖LがNPに属することは従わない。補言語の側がNPに属する言語のクラスを、別に定める。
定義 5.1. 有限アルファベットΣ上の言語L⊆Σ∗に対し、
L=Σ∗∖LをLの補言語 (complement language) という。L∈NPであるときLは coNP (coNP) に属するといい、coNPをこのような言語全体のクラスとする。
L=Lであるから、定義より直ちに、L∈coNPとL∈NPは同値であり、L∈NPとL∈coNPも同値である。補言語をとる操作は、NPとcoNPを互いに移す。
命題 5.2. 有限アルファベットΣ上の言語Lについて、次の二条件は同値である。
- L∈coNP。
- 固定有限アルファベットΓc、多項式p,q∈N[n]、および決定性 Turing 機械Wが存在して、任意のx∈Σ∗について
x∈/L⟺ある y∈Γc∗ が存在して ∣y∣≤p(∣x∣) かつ W(x,y) が受理する
であり、∣y∣≤p(∣x∣)を満たすすべての組(x,y)についてW(x,y)は高々q(∣x∣)段で停止する。
証明.(2)は、定義 2.1の二条件においてLをLに置き換えたものにほかならない。実際、x∈/Lとx∈Lは同値である。したがって、(2)が成り立つことと、WがLの多項式時間検証器であることは同値である。定理 3.1により、これはL∈NPと同値であり、定義 5.1によりL∈coNPと同値である。▨
(2)のyは、xがLに属さないことの証拠である。この意味で、coNPは、言語Lに属さないどの入力xについても、xがLに属さないことを示す多項式長の証拠が存在するような言語Lのクラスである。
命題 5.3.L∈PならばL∈Pである。
証明.DをLの決定器で最悪時間がO(nk)であるものとする。Dの受理状態と拒否状態を入れ替えた機械をD′とする。D′の遷移関数はDと同一であるから、各入力x上の配置列も停止までの遷移数もDと同一である。とくにD′は全入力で停止し、最悪時間はO(nk)のままである。D′がxを受理することとDがxを拒否すること、すなわちx∈/Lは同値である。よってD′はLの決定器であり、§E18.10 定義 1.4によりL∈Pである。▨
命題 5.4.
P⊆NP∩coNPである。
証明.L∈Pとする。命題 1.4によりL∈NPである。また命題 5.3によりL∈Pであり、再び命題 1.4によりL∈NPである。定義 5.1によりL∈coNPである。▨
命題 5.5.A≤pBかつB∈coNPならば、A∈coNPである。
証明.A⊆Σ∗、B⊆Γ∗とし、fを帰着関数とする。任意のx∈Σ∗についてx∈Aとf(x)∈Bが同値であるから、両辺を否定して、x∈Aとf(x)∈Bも同値である。fは同じ多項式時間計算可能関数であるから、A≤pBである。B∈coNPからB∈NPであり、命題 4.3によりA∈NPである。よって定義 5.1によりA∈coNPである。▨
命題 5.6.P=NPならばNP=coNPである。対偶により、NP=coNPならばP=NPである。
証明.P=NPと仮定する。L∈NPをとるとL∈Pであり、命題 5.3によりL∈P=NPである。よってL∈coNPであり、NP⊆coNPを得る。逆にL∈coNPをとるとL∈NP=Pであり、同じ命題によりL=L∈P=NPである。よってcoNP⊆NPであり、二つのクラスは等しい。▨
例 5.7.例 3.2で扱った言語をHAM⊆Σ∗とする。ここでΣは隣接行列の符号に用いる有限アルファベットである。補言語
HAM=Σ∗∖HAMは、Hamilton 閉路をもたない有向グラフの符号と、有向グラフの符号ではない語からなる。同例によりHAM∈NPであるから、定義 5.1によりHAM∈coNPである。
HAMがNPに属するかどうかは、本記事の結果からは従わない。全頂点を通る閉路が一つも存在しないことを示す多項式長の証明書として何を与えればよいかは、この時点で与えられていない。NP=coNPであるかどうかも未解決である。
6 演習
問題 6.1.
- 非決定性 Turing 機械Nと多項式pについて、停止しない分枝があってもよいが、Nが受理する各入力xにはp(∣x∣)段以内に受理状態で終わる分枝が存在するとする。Nが受理する言語がNPに属することを示せ。
- 二進分枝だけをもつ非決定性機械がn3段以内に停止するとき、分枝選択証明書の長さを求め、検証器の構成を記述せよ。
- VをLの多項式時間検証器とし、証明書アルファベットをΓc、長さ上界をpとする。新しい記号□∈/Γcを加えたアルファベット上の検証器V′で、任意のxについて「x∈Lであることと、長さがちょうどp(∣x∣)の証明書y′でV′(x,y′)が受理するものが存在することが同値」となるものを構成せよ。
- A≤pBとB∈NPからA∈NPを導くとき、証明書長上界が多項式の合成になることを式で示せ。
- 有限証明書アルファベットを二進アルファベットへ変更しても NP の定義が変わらないことを、固定長符号の長さと変換時間を用いて証明せよ。
- NP∩coNPが補言語、和集合、および共通部分をとる操作について閉じていることを示せ。
- Pが和集合と共通部分について閉じていることを示せ。また、認識可能な言語の全体は補言語をとる操作について閉じていないことを、具体的な言語を挙げて示せ。
解答 (演習の要点).
-
Nの各配置からの遷移候補に0,…,b−1の番号を付け、証明書アルファベットをΓc={0,…,b−1}とする。検証器Vは入力(x,y)について、N(x)の初期配置からyの文字が指定する遷移を一段ずつ実行し、受理状態へ到達したら受理し、無効な番号を読んだ場合、拒否状態へ到達した場合、およびyを読み終えても受理状態に到達していない場合には拒否する。Vが実行する遷移は∣y∣段以下であるから、∣y∣≤p(∣x∣)ならばV(x,y)はO(p(∣x∣)+∣x∣)段で停止し、定義 2.1 条件 (b)を満たす。Nの停止しない分枝は、Vが有限の証明書の分だけ模倣した時点で打ち切られる。
xをNが受理するならば、仮定によりp(∣x∣)段以内の受理分枝があり、その遷移番号の列yは∣y∣≤p(∣x∣)を満たしてV(x,y)に受理される。逆にV(x,y)が受理すれば、yはN(x)の実在する受理分枝を指定するので、Nはxを受理する。よってVはNの受理言語の多項式時間検証器であり、定理 3.1によりこの言語はNPに属する。
-
各段の候補が二つであるから、証明書は{0,1}上の長さn3以下の語である。検証器は初期配置から始め、証明書のビットが指定する遷移を一段ずつ実行する。受理状態に到達したら受理し、拒否状態に到達した場合、無効な番号を読んだ場合、n3段を超えた場合、および証明書を読み終えても停止していない場合には拒否する。多テープ上の直接模倣でO(n3)時間である。
-
V′(x,y′)を次のように定める。∣x∣からp(∣x∣)を計算し、∣y′∣=p(∣x∣)ならば拒否する。y′がy□m(y∈Γc∗、m≥0)の形でなければ拒否する。この形ならば末尾の□を除いたyについてV(x,y)を模倣し、その結論を出力する。p(∣x∣)の計算、長さと形の検査、および末尾の除去は多項式時間で行うことができ、∣y∣≤p(∣x∣)であるからV(x,y)の模倣はq(∣x∣)段以内で終わる。長さがp(∣x∣)以下のすべてのy′についても同じ手順は多項式時間で停止するので、V′は長さ上界pの多項式時間検証器である。
x∈Lならば、∣y∣≤p(∣x∣)でV(x,y)が受理するyがあり、y′=y□p(∣x∣)−∣y∣は長さがちょうどp(∣x∣)でV′(x,y′)に受理される。逆に、長さp(∣x∣)のy′をV′が受理すれば、y′=y□mでV(x,y)が受理し、∣y∣≤p(∣x∣)であるからx∈Lである。このV′に対しては、定理 3.1の証明の非決定性機械は、生成を終了する選択をせずにちょうどp(∣x∣)文字を生成すればよい。
-
出力長について∣f(x)∣≤r(∣x∣)+cである。Bの証明書長上界をpとすると、pの係数が非負であるため単調であり、p(∣f(x)∣)≤p(r(∣x∣)+c)が成り立つ。右辺は多項式の合成であるから∣x∣の多項式である。
-
∣Γc∣=bの各文字を長さℓ=⌈log2max{2,b}⌉のビット列へ写す固定長符号をとる。証明書長はℓp(∣x∣)以下となり、ℓが定数であるから多項式のままである。検証器は二進証明書を左からℓビットずつ読んで元の文字へ復号すればよく、復号は一文字あたり定数時間である。したがって検証時間も多項式のままであり、定義により定められるクラスは変わらない。
-
補言語について、L∈NP∩coNPならば、定義 5.1によりL∈NPからL∈coNP、L∈coNPからL∈NPであり、L∈NP∩coNPである。
次にNPが和集合と共通部分について閉じていることを示す。L1,L2∈NPの多項式時間検証器をV1,V2、証明書アルファベットをΓ1,Γ2、長さ上界をp1,p2、時間上界をq1,q2とする。検証器の条件は∣y∣≤pi(∣x∣)を満たす証明書yだけを拘束するので、新しい検証器は模倣の前に証明書の長さを検査する。和集合の検証器V∪は、証明書がiy(i∈{1,2})の形でy∈Γi∗かつ∣y∣≤pi(∣x∣)であるときに限りVi(x,y)を模倣してその結論を返し、それ以外の証明書は拒否する。共通部分の検証器V∩は、証明書が新しい区切り記号#を用いたy1#y2の形で、j=1,2についてyj∈Γj∗かつ∣yj∣≤pj(∣x∣)であるときに限りV1(x,y1)とV2(x,y2)を順に模倣して、ともに受理するとき受理し、それ以外の証明書は拒否する。いずれも証明書アルファベットはΓ1∪Γ2に固定個の記号を加えたものであり、長さ上界をp1+p2+1とする。長さの検査は、pj(∣x∣)を一進で書き出し、証明書を高々pj(∣x∣)+1記号まで読んで比べればよいので、∣x∣の多項式時間で終わる。検査を通った証明書では、模倣するVjへの入力がVjの時間上界の条件の範囲にあるので、模倣はqj(∣x∣)段の多項式倍で終わる。よって時間上界は∣x∣の多項式である。
正しさを確かめる。x∈L1∪L2ならば、あるiと∣y∣≤pi(∣x∣)を満たすy∈Γi∗についてVi(x,y)が受理し、∣iy∣≤p1(∣x∣)+p2(∣x∣)+1を満たすiyをV∪は受理する。逆にV∪がiyを受理すれば、∣y∣≤pi(∣x∣)かつVi(x,y)が受理するのでx∈Liである。x∈L1∩L2ならば、∣yj∣≤pj(∣x∣)を満たすyjでVj(x,yj)が受理するものがあり、∣y1#y2∣≤p1(∣x∣)+p2(∣x∣)+1である。逆にV∩がy1#y2を受理すれば、検査と模倣からx∈L1かつx∈L2である。よってL1∪L2,L1∩L2∈NPである。
L1,L2∈NP∩coNPとする。前段によりL1∪L2∈NPである。またL1,L2∈NPであるからL1∪L2=L1∩L2∈NP、すなわちL1∪L2∈coNPである。よってL1∪L2∈NP∩coNPである。共通部分はL1∩L2=L1∪L2であり、補言語と和集合について閉じていることから従う。
-
L1,L2∈Pの決定器をD1,D2とし、最悪時間をそれぞれO(na)、O(nb)とする。入力テープは読取り専用であるから、決定器Dは入力ヘッドを左端へ戻しながらD1を模倣して結論を有限制御に記憶し、作業テープを空白に戻してから入力ヘッドを左端へ戻してD2を模倣する。和集合では一方が受理すれば受理し、共通部分では両方が受理すれば受理する。作業テープの清掃と入力ヘッドの巻き戻しは、それぞれの模倣の時間と入力長の定数倍で終わるので、Dの時間はO(na+nb+n+1)であり多項式である。よってL1∪L2,L1∩L2∈Pである。
§E18.5 命題 3.2によりHALTTMは認識可能であるが、§E18.5 系 4.2によりその補言語は認識可能でない。よって認識可能な言語の全体は補言語について閉じていない。とくに、HALTTMの認識器の受理状態と拒否状態を入れ替えた機械は補言語の認識器にならない。命題 5.3の構成がPで成り立つのは、決定器が全入力で停止するからである。
▨