NP完全

同義語:NP-completeNP完全問題NP完全性NP-completeness

概要

NP完全(NP-complete)とは、答えが「はい」のとき多項式の長さの証明書を多項式時間で検証できる判定問題のクラス NP に属し、かつ NP のすべての問題が多項式時間の多対一還元で帰着される判定問題の性質のことである。Cook–Levin の定理により、連言標準形の論理式の充足可能性 SAT は NP完全であり、そこから還元を連ねて 3SAT、独立集合・クリーク・頂点被覆、グラフの 3 彩色などが NP完全になる。NP完全問題のどれか 1 つが多項式時間で解ければ $\mathrm{P}=\mathrm{NP}$ となるので、$\mathrm{P}$ 対 $\mathrm{NP}$ 問題はこれらの問題が効率よく解けるかという問いと同じである。一方 2 彩色の判定は多項式時間でできる。

$$\newcommand{C}[0]{\mathbb{C}} \newcommand{div}[0]{\mathbin{÷}} \newcommand{N}[0]{\mathbb{N}} \newcommand{Q}[0]{\mathbb{Q}} \newcommand{R}[0]{\mathbb{R}} \newcommand{Z}[0]{\mathbb{Z}} $$

前提知識: Turing機械, 計算可能性理論, 命題論理

グラフを 3 色で塗れるか、Hamilton 閉路をもつか、論理式を真にする値の割り当てがあるか。こうした問題には共通の性質がある。答えが「はい」のときには短い証拠(塗り方、閉路、割り当て)があり、その証拠が正しいかどうかはすぐに確かめられる。しかし証拠を見つける効率のよい方法は知られていない。このような問題の集まりがクラス NP であり、その中で「最も難しい」問題が NP完全 な問題である。
ある問題が NP完全であるとは、NP のどの問題も、多項式時間の変換によってその問題に帰着できることをいう。Cook と Levin は、論理式の充足可能性の問題が NP完全であることを示した。いったん 1 つの NP完全問題が得られると、そこからの帰着を連ねて、グラフの彩色・独立集合・クリークなど多くの問題が NP完全であることが分かる。NP完全問題のどれか 1 つでも多項式時間で解ければ、NP のすべての問題が多項式時間で解ける(P $=$ NP)。
この記事では、Turing 機械を使って P・NP・多項式時間還元・NP完全を定義し、還元の基本性質、Cook–Levin の定理、3-充足可能性・独立集合・グラフの 3 彩色の NP完全性を証明する。

定義

言語と計算時間

アルファベット $\Sigma$ は 2 個以上の記号からなる有限集合とし、$\Sigma$ の記号の有限列(語)全体を $\Sigma^*$、語 $w$ の長さを $|w|$ と書く。$\Sigma^*$ の部分集合を $\Sigma$ 上の言語という。判定問題は「答えが『はい』になる入力の全体」という言語として扱う。
Turing 機械は Turing機械 の定義「Turing 機械」の組 $M=(Q,\Gamma,\sqcup,q_0,\delta)$ を使い、様相・次の様相・停止の言葉も同じ記事の定義「様相と計算」に従う。

言語を判定する機械と計算時間

アルファベット $\Sigma\subset\Gamma\setminus\{\sqcup\}$ と、受理状態 $q_{\mathrm{acc}}\in Q$ を指定した Turing 機械 $M$ を考える。ただし、すべての $a\in\Gamma$ について $\delta(q_{\mathrm{acc}},a)$ は定義されていない(受理状態に入ると停止する)とする。

  1. 語 $w=a_1\cdots a_n\in\Sigma^*$ に対し、$0\le i< n$ で $\tau_w(i)=a_{i+1}$、ほかのマスは空白であるテープの内容を $\tau_w$ とし、$(q_0,\tau_w,0)$ を入力 $w$ の初期様相とする。
  2. 初期様相からの計算が状態 $q_{\mathrm{acc}}$ で停止するとき $M$ は $w$ を受理するといい、ほかの状態で停止するとき拒否するという。停止までのステップ数を $t_M(w)$ と書く。
  3. $M$ が言語 $L\subset\Sigma^*$ を多項式時間で判定するとは、ある自然数 $c\ge1$ があって、すべての $w\in\Sigma^*$ について $M$ は $t_M(w)\le|w|^c+c$ ステップで停止し、$w$ を受理することと $w\in L$ が同値であることをいう。
  4. 写像 $f\colon\Sigma^*\to\Delta^*$($\Delta\subset\Gamma\setminus\{\sqcup\}$)を $M$ が多項式時間で計算するとは、ある $c\ge1$ があって、すべての $w$ について $M$ が $|w|^c+c$ ステップ以内に停止し、停止様相ではヘッドがマス $0$ にあり、テープのマス $0,1,\dots,|f(w)|-1$ に $f(w)$ が書かれ、ほかのマスは空白であることをいう。
クラス P と NP
  1. 多項式時間で判定する Turing 機械がある言語の全体を P と書く。
  2. $\Sigma$ 上の言語 $L$ が NP に属するとは、アルファベット $\Sigma_1$、$\Sigma\cup\Sigma_1$ に属さない記号 $\#$、自然数 $c\ge1$、$\Sigma\cup\Sigma_1\cup\{\#\}$ 上の P に属する言語 $R$ があって、すべての $w\in\Sigma^*$ について
    $$ w\in L\iff \text{ある } y\in\Sigma_1^*\text{ で } |y|\le|w|^c+c\ \text{かつ}\ w\#y\in R $$
    が成り立つことをいう。このとき $y$ を $w$ の証明書、$R$ を検証の言語という。

P に属する言語 $L$ は NP に属する(証明書を使わず、$R=\{w\#y: w\in L\}$ とすればよい)。NP の定義は CJW06 S. Cook「The P versus NP Problem」§1(pp. 87–88)の検証関係による定義と同じ形であり、MSm24 Definition 6.3.6(p. 206)とも同値である。

計算のモデルと符号化

多テープの Turing 機械や、通常のプログラムで書いた手続きは、1 本テープの Turing 機械で多項式時間の増加だけで模倣できるので、P と NP はこうした計算のモデルの選び方によらない(MSm24 Theorem 6.2.2、p. 199。CJW06 p. 87)。この記事では証明しない。
グラフや論理式を入力とする問題は、標準的な符号化で語として表す。たとえば頂点 $1,\dots,n$ のグラフを、頂点数と辺の両端の番号を 2 進法で区切り記号を挟んで並べた語で表す。妥当な符号化どうしは多項式時間で互いに変換できるので、問題が P や NP に属するかどうかは符号化によらない。以下、構成が多項式時間で計算できることは、出力の長さが入力の長さの多項式で抑えられ、入力を何回か走査して書き出せることから従う、という形で述べる。

多項式時間還元と NP完全

多項式時間還元・NP困難・NP完全
  1. $A\subset\Sigma^*$、$B\subset\Delta^*$ を言語とする。多項式時間で計算できる写像 $f\colon\Sigma^*\to\Delta^*$ で、すべての $w$ について $w\in A\iff f(w)\in B$ となるものがあるとき、$A$ は $B$ に多項式時間還元可能であるといい、$A\le_{\mathrm p}B$ と書く。
  2. 言語 $B$ が NP困難(NP-hard)であるとは、NP に属するすべての言語 $A$ について $A\le_{\mathrm p}B$ となることをいう。
  3. 言語 $B$ が NP完全(NP-complete)であるとは、$B$ が NP に属し、かつ NP困難であることをいう。

1 は 計算可能性理論 の定義「多対一還元」で、還元の写像に多項式時間の制限を付けたものである。NP完全は、同じ記事の定義「完全な計算可能枚挙集合」の多項式時間版にあたる(CJW06 Definitions 3・4、p. 91)。

還元の基本性質

出力の長さと機械の連結
  1. 写像 $f$ を $M$ が各入力 $w$ で $t$ ステップで計算するなら、$|f(w)|\le|w|+t+1$ である。
  2. $f\colon\Sigma^*\to\Delta^*$ と $g\colon\Delta^*\to\Theta^*$ が多項式時間で計算できるなら、$g\circ f$ も多項式時間で計算できる。$f$ が多項式時間で計算でき、言語 $B\subset\Delta^*$ が P に属するなら、$f^{-1}(B)$ は P に属する。

1.$t$ ステップで書き換えられるのはマス $-t,\dots,t$ だけで、残りのマスには入力が残ることから従う。

詳細

1.ヘッドは 1 ステップで高々 1 マス動くので、$t$ ステップの間に書き換えられるのはマス $-t,\dots,t$ だけである。$f(w)$ の書かれたマス $0,\dots,|f(w)|-1$ はどれも空白でないので、書き換えられたマス($t$ 以下)か、もとの入力が残っているマス($|w|-1$ 以下)である。よって $|f(w)|-1\le\max\{t,|w|-1\}$ である。


2.$f$ を計算する機械 $M_f$ と、$g$ を計算する(または $B$ を判定する)機械 $M_g$ をとり、状態の集合が交わらないように名前を付け替える。$M_f$ の遷移関数に、$M_f$ で未定義の組 $(q,a)$ すべてについて「$a$ をそのまま書き、ヘッドを動かさず、$M_g$ の初期状態に移る」という遷移を加え、$M_g$ の遷移関数と合わせた機械を作る(受理状態は $M_g$ のものとする)。$M_f$ が停止した時点ではヘッドはマス $0$ にあり、テープには $f(w)$ だけが書かれているので、そこから先は $M_g$ の入力 $f(w)$ での計算そのものである。所要ステップは、$M_f,M_g$ の時間の上界を $|u|^{c}+c$、$|u|^{d}+d$ とすると、1 により
$$ (|w|^{c}+c)+1+\bigl(|f(w)|^{d}+d\bigr)\le(|w|^{c}+c)+1+\bigl(|w|+|w|^{c}+c+1\bigr)^{d}+d $$
で、$|w|$ の多項式で抑えられる。十分大きい $e$ をとれば $|w|^e+e$ 以下になる。$\square$

還元の基本性質
  1. $A\le_{\mathrm p}B$ かつ $B\le_{\mathrm p}C$ なら $A\le_{\mathrm p}C$ である。
  2. $A\le_{\mathrm p}B$ かつ $B$ が P に属するなら、$A$ は P に属する。
  3. $B$ が NP完全、$C$ が NP に属し、$B\le_{\mathrm p}C$ なら、$C$ は NP完全である。
  4. NP完全な言語 $B$ について、$B$ が P に属することと P $=$ NP は同値である。

1.還元の写像 $f,g$ について $g\circ f$ は lem-np-composition の 2 により多項式時間で計算でき、$w\in A\iff f(w)\in B\iff g(f(w))\in C$ である。
2.還元の写像を $f$ とすると $A=f^{-1}(B)$ であり、lem-np-composition の 2 から従う。
3.NP の任意の言語 $A$ について $A\le_{\mathrm p}B$ なので、1 により $A\le_{\mathrm p}C$ である。
4.$B$ が P に属するなら、NP の任意の $A$ は $A\le_{\mathrm p}B$ なので 2 により P に属する。P はつねに NP に含まれるので P $=$ NP である。逆に P $=$ NP なら、NP に属する $B$ は P に属する。$\square$

3 が新しい問題の NP完全性を示す標準的な方法であり、そのためには最初の NP完全問題が要る。

Cook–Levin の定理

充足可能性問題

連言標準形と充足可能性

変数 $x_1,x_2,\dots$ と、その否定 $\neg x_1,\neg x_2,\dots$ をリテラルという。リテラルの空でない有限集合を節といい、節 $C$ は「$C$ のリテラルのどれかが真」を表す。節の有限列 $\varphi=(C_1,\dots,C_r)$ を連言標準形(CNF)の論理式といい、「すべての節が成り立つ」を表す。変数への真偽の割り当て $\nu$ が $\varphi$ を充足するとは、各節 $C_j$ が $\nu$ のもとで真になるリテラルを含むことをいう。

  1. 充足する割り当てをもつ連言標準形の論理式(を符号化した語)全体の言語を SAT と書く。
  2. どの節もリテラルを高々 3 個しか含まない論理式に限ったものを 3SAT と書く。

論理式は、変数 $x_i$ を記号 $\mathtt{x}$ と $i$ の 2 進表示で、否定を記号 $\neg$ で、節や論理式の区切りを区切り記号で表して語にする。SAT は NP に属する。実際、変数の割り当て(論理式に現れる変数ごとに 1 文字)を証明書とすれば、その長さは論理式の長さ以下であり、各節に真のリテラルがあるかを確かめる手続きは論理式の長さの多項式時間で済む。3SAT も同じ理由で NP に属する。

定理と証明

Cook–Levin の定理

SAT は NP完全である。

SAT が NP に属することは上で見た。NP に属する任意の言語 $L\subset\Sigma^*$ について $L\le_{\mathrm p}\mathrm{SAT}$ を示す。NP の定義の $\Sigma_1,\#,c,R$ をとり、$R$ を多項式時間で判定する機械 $M=(Q,\Gamma,\sqcup,q_0,\delta)$ と、その時間の上界 $|u|^{d}+d$($d\ge1$)をとる。$p(s)=s^{d}+d$ とおくと $p$ は単調増加で $p(s)\ge s$ である。
入力 $w\in\Sigma^*$、$n=|w|$ に対し、$N=n^{c}+c$、$T=p(n+1+N)$ とおく。証明書 $y$ は $|y|\le N$ なので $|w\#y|\le n+1+N$ であり、$M$ は入力 $w\#y$ で $T$ ステップ以内に停止する。$T$ ステップの間、ヘッドはマス $-T,\dots,T$ の外に出ない。$M$ の計算を $T+1$ 行 $2T+1$ 列の表に書き、停止した後は同じ様相をくり返すとみなす。この表を変数で表す。$0\le t\le T$、$-T\le i\le T$、$a\in\Gamma$、$q\in Q$ について、次の命題変数を用意する。

  • $X_{t,i,a}$:時刻 $t$ にマス $i$ の記号が $a$ である。
  • $H_{t,i}$:時刻 $t$ にヘッドがマス $i$ にある。
  • $S_{t,q}$:時刻 $t$ に状態が $q$ である。
    論理式 $\varphi_w$ を次の節の全体とする($\to$ を含む式は、それと同値な節に書き直したものを表す。たとえば $\alpha\wedge\beta\wedge\gamma\to\eta$ は節 $\{\neg\alpha,\neg\beta,\neg\gamma,\eta\}$ である)。
  1. ただ 1 つ.各 $(t,i)$ について節 $\{X_{t,i,a}:a\in\Gamma\}$ と、$a\ne b$ ごとの節 $\{\neg X_{t,i,a},\neg X_{t,i,b}\}$。各 $t$ について、$H_{t,i}$($i$ を動かす)と $S_{t,q}$($q$ を動かす)にも同じ形の節。
  2. 初期の行.$S_{0,q_0}$、$H_{0,0}$、$0\le i< n$ で $X_{0,i,w_{i+1}}$、$X_{0,n,\#}$ の 1 リテラルの節。$n+1\le i\le n+N$ で節 $\{X_{0,i,a}: a\in\Sigma_1\cup\{\sqcup\}\}$ と、$n+1\le i< n+N$ で $X_{0,i,\sqcup}\to X_{0,i+1,\sqcup}$。そのほかの $i$ で $X_{0,i,\sqcup}$。
  3. 遷移.$t< T$、$i$、$q$、$a$ ごとに、$\delta(q,a)=(q',b,D)$ が定義され、$D$ に応じた移動量を $\epsilon\in\{-1,0,1\}$ とするとき、$|i+\epsilon|\le T$ なら
    $$ S_{t,q}\wedge H_{t,i}\wedge X_{t,i,a}\to S_{t+1,q'},\quad \cdots\to X_{t+1,i,b},\quad \cdots\to H_{t+1,i+\epsilon} $$
    の 3 つの節($\cdots$ は同じ前提)、$|i+\epsilon|>T$ なら節 $\{\neg S_{t,q},\neg H_{t,i},\neg X_{t,i,a}\}$。$\delta(q,a)$ が定義されていなければ、同じ前提から $S_{t+1,q}$、$X_{t+1,i,a}$、$H_{t+1,i}$ を導く 3 つの節。
  4. ヘッドのないマス.$t< T$、$i$、$a$ ごとに $\neg H_{t,i}\wedge X_{t,i,a}\to X_{t+1,i,a}$。
  5. 受理.$S_{T,q_{\mathrm{acc}}}$ の 1 リテラルの節。

大きさ.$\varphi_w$ の変数と節の個数は $T$ の多項式で、$w$ から多項式時間で書き出せる。

詳細

大きさ.変数は $(T+1)\bigl((2T+1)(|\Gamma|+1)+|Q|\bigr)$ 個で、節は $O(T^3)$ 個($H$ についての 2 個ずつの節が最も多い)、各節の長さは $O(T)$ 以下である。$\Gamma,Q,\delta$ は $L$ だけで決まる定数であり、$T$ は $n$ の多項式なので、$\varphi_w$ の長さは $n$ の多項式で抑えられ、$w$ から添字についての入れ子の繰り返しで書き出せる。よって $w\mapsto\varphi_w$ は多項式時間で計算できる。


$w\in L$ なら $\varphi_w$ は充足可能.証明書 $y$ での $M$ の受理する計算を表にそのまま書き込めば、すべての節が成り立つ。
詳細

$w\in L$ なら $\varphi_w$ は充足可能.$|y|\le N$、$w\#y\in R$ となる $y$ をとる。$M$ の入力 $w\#y$ での計算を $C_0,C_1,\dots,C_s$($s\le T$、$C_s$ は状態 $q_{\mathrm{acc}}$ の停止様相)とし、時刻 $t$ の変数を様相 $C_{\min(t,s)}$ のとおりに真偽を決める。1 は各時刻で記号・ヘッド・状態がただ 1 つであることから、2 は初期様相の形から(証明書の後ろは空白が続く)、3・4 は次の様相の定義と停止後のくり返しから、5 は $C_s$ の状態から成り立つ。3 の $|i+\epsilon|>T$ の節は、時刻 $t< T$ のヘッドの位置が $|i|\le t< T$ を満たすので前提が偽になり、成り立つ。


$\varphi_w$ が充足可能なら $w\in L$.$\varphi_w$ を充足する割り当て $\nu$ をとる。1 により、各時刻 $t$ について、真である $S_{t,q}$、$H_{t,i}$ と、各マスで真である $X_{t,i,a}$ がただ 1 つずつ決まる。これを状態 $q_t$、ヘッドの位置 $h_t$、テープ $\tau_t$(範囲の外は空白)とする。2 により、マス $n+1$ から右の記号は $\Sigma_1\cup\{\sqcup\}$ に属し、いったん空白になると $n+N$ まで空白で、その先も空白である。よって最初の空白の手前までを $y\in\Sigma_1^*$ とすると $|y|\le N$ であり、時刻 $0$ の行は入力 $w\#y$ の初期様相 $C_0$ である。
$M$ の入力 $w\#y$ での計算を $C_0,\dots,C_s$ とする。$t$ についての帰納法で、時刻 $t$ の行は $C_{\min(t,s)}$ であり $|h_t|\le t$ であることが、3 の節(ヘッドの下のマス・状態・ヘッドの位置)と 4 の節(ほかのマスの保存)から分かる。
詳細

$M$ の入力 $w\#y$ での計算を $C_0,\dots,C_s$ とし、$t$ についての帰納法で「時刻 $t$ の行は $C_{\min(t,s)}$ であり、$|h_t|\le t$」を示す。$t=0$ は上で見た。時刻 $t< T$ で成り立つとする。$C_{\min(t,s)}$ が停止様相でなければ、$\delta(q_t,\tau_t(h_t))=(q',b,D)$ で、$|h_t+\epsilon|\le t+1\le T$ なので、3 の 3 つの節から $S_{t+1,q'}$、$X_{t+1,h_t,b}$、$H_{t+1,h_t+\epsilon}$ が真である。$i\ne h_t$ では $H_{t,i}$ が偽なので、4 により記号は変わらない。1 と合わせると、時刻 $t+1$ の行は次の様相そのものである。停止様相なら、3 の後半の節と 4 から同じ様相がくり返される。いずれの場合も $|h_{t+1}|\le t+1$ である。範囲の外のマスは空白のまま一度も読まれないので、表の行は様相を正しく表す。


5 により時刻 $T$ の状態は $q_{\mathrm{acc}}$ であり、$q_{\mathrm{acc}}$ では必ず停止するので、$M$ は $w\#y$ を受理する。よって $w\#y\in R$ かつ $|y|\le N$ であり、$w\in L$ である。
以上で $w\in L\iff\varphi_w\in\mathrm{SAT}$ が示された。$\square$

この定理は Cook(1971)と Levin が独立に示した(CJW06 pp. 91–92)。証明の要点は、多項式時間の計算の全体が多項式の大きさの表に収まり、表が正しい計算であることが「隣り合う行の局所的な整合性」の連言で書けることである。

還元による NP完全性

3-充足可能性

3SAT の NP完全性

$\mathrm{SAT}\le_{\mathrm p}\mathrm{3SAT}$ であり、3SAT は NP完全である。

論理式 $\varphi$ の各節 $C=\{\ell_1,\dots,\ell_k\}$ を次のように置き換えた論理式を $\varphi'$ とする。$k\le3$ ならそのまま残す。$k\ge4$ なら、節ごとに新しい変数 $z_1,\dots,z_{k-3}$ を用意して、$k-2$ 個の節
$$ \{\ell_1,\ell_2,z_1\},\ \{\neg z_1,\ell_3,z_2\},\ \dots,\ \{\neg z_{k-4},\ell_{k-2},z_{k-3}\},\ \{\neg z_{k-3},\ell_{k-1},\ell_k\} $$
に置き換える($2\le i\le k-3$ の節は $\{\neg z_{i-1},\ell_{i+1},z_i\}$)。$\varphi'$ は多項式時間で書き出せる。

詳細

新しい変数は $|\varphi|$ 個以下で、その添字の 2 進表示は $|\varphi|+1$ 桁以下なので、$\varphi'$ の長さは $|\varphi|$ の 2 乗の定数倍で抑えられる。


$\varphi$ が充足可能なら $\varphi'$ も.真のリテラル $\ell_j$ に対し、$i\le j-2$ で $z_i$ を真、$i\ge j-1$ で偽とすればよい。
詳細

$\varphi$ が充足可能なら $\varphi'$ も.$\varphi$ を充足する割り当てをとる。$k\ge4$ の節 $C$ では、真のリテラル $\ell_j$ がある。$i\le j-2$ では $z_i$ を真、$i\ge j-1$ では偽とする。最初の節は $j\le2$ なら $\ell_j$ で、$j\ge3$ なら $z_1$ で真になる。中間の節 $\{\neg z_{i-1},\ell_{i+1},z_i\}$ は、$i\le j-2$ なら $z_i$、$i=j-1$ なら $\ell_j$、$i\ge j$ なら $\neg z_{i-1}$ で真になる。最後の節は、$j\ge k-1$ なら $\ell_j$ で、$j\le k-2$ なら $z_{k-3}$ が偽なので $\neg z_{k-3}$ で真になる。


$\varphi'$ が充足可能なら $\varphi$ も.ある節のリテラルがすべて偽なら $z_1,\dots,z_{k-3}$ が順に真になり、最後の節が偽になる。
詳細

$\varphi'$ を充足する割り当てを $x$ の変数に制限する。$k\ge4$ の節 $C$ の $\ell_1,\dots,\ell_k$ がすべて偽だとすると、最初の節から $z_1$ が真、中間の節から順に $z_2,\dots,z_{k-3}$ が真で、最後の節が偽になり矛盾する。よって各節に真のリテラルがある。


3SAT は NP に属するので、thm-np-cook-levin と prop-np-reduction の 3 により NP完全である。$\square$

独立集合・クリーク・頂点被覆

グラフ $G$ と自然数 $k$ の組で、$G$ が大きさ $k$ 以上の独立集合をもつもの全体を言語 IS とする。同様に、大きさ $k$ 以上のクリークをもつ組の言語を CLIQUE、大きさ $k$ 以下の頂点被覆(どの辺も少なくとも一方の端点がこの集合に入る頂点の集合)をもつ組の言語を VC とする。どれも NP に属する(頂点の集合を証明書にすればよい)。

独立集合・クリーク・頂点被覆の NP完全性

$\mathrm{3SAT}\le_{\mathrm p}\mathrm{IS}$ であり、IS・CLIQUE・VC はいずれも NP完全である。

3SAT の論理式 $\varphi=(C_1,\dots,C_r)$ から、グラフ $G_\varphi$ を次のように作る。頂点は、各節 $C_j$ と $C_j$ のリテラル $\ell$ の組 $(j,\ell)$ である。同じ節の 2 頂点 $(j,\ell),(j,\ell')$ を結び、互いに否定の関係にあるリテラルの頂点 $(j,\ell)$ と $(j',\neg\ell)$ を結ぶ。$w(\varphi)=(G_\varphi,r)$ とおく。頂点は高々 $3r$ 個で、多項式時間で書き出せる。
充足する割り当てから各節の真のリテラルを 1 つずつ選べば大きさ $r$ の独立集合になり、逆に大きさ $r$ の独立集合は各節からちょうど 1 頂点を選び、矛盾のない割り当てを定める。

詳細

$\varphi$ を充足する割り当てがあれば、各節から真のリテラルを 1 つずつ選んだ $r$ 頂点は、節が異なり、互いに否定の関係にもない(両方が真になることはない)ので独立集合である。逆に大きさ $r$ の独立集合 $I$ があれば、同じ節の頂点は互いに隣接するので、$I$ は各節からちょうど 1 頂点を含む。$I$ のリテラルには互いに否定の関係にある組がないので、それらをすべて真にする割り当て(残りの変数は任意)が矛盾なく定まり、各節に真のリテラルがある。よって $\varphi\in\mathrm{3SAT}\iff w(\varphi)\in\mathrm{IS}$ である。


$I\subset V$ が $G$ の独立集合であることは、$I$ が補グラフ $\overline G$ のクリークであることとも、$V\setminus I$ が $G$ の頂点被覆であることとも同値である。よって $(G,k)\mapsto(\overline G,k)$ と $(G,k)\mapsto(G,|V|-k)$($k>|V|$ なら VC に属さない固定の組 $(K_2,0)$ に写す)はそれぞれ IS から CLIQUE、IS から VC への多項式時間還元である。thm-np-3sat と prop-np-reduction の 3 から、3 つとも NP完全である。$\square$

グラフの 3 彩色

$k$ 色で彩色できるグラフ全体の言語を $k$COL とする。$k$COL は NP に属する(彩色を証明書にすればよい)。

3 彩色可能性の NP完全性

$\mathrm{3SAT}\le_{\mathrm p}\mathrm{3COL}$ であり、3COL は NP完全である。

部品.入力の頂点 $u,v$ に対し、新しい頂点 $p,q,o$ を三角形に結び、辺 $up$、$vq$ を加えたものを論理和の部品といい、$o$ をその出力とする。色を $\mathsf T,\mathsf F,\mathsf N$ とし、$u,v$ の色が $\{\mathsf T,\mathsf F\}$ に属するとき次が成り立つ。

  • (i) $u,v$ がともに $\mathsf F$ なら、どの 3 彩色でも $o$ は $\mathsf F$ である。$p\ne\mathsf F$、$q\ne\mathsf F$ で $p\ne q$ なので $\{p,q\}=\{\mathsf T,\mathsf N\}$ となり、三角形の残りの $o$ は $\mathsf F$ である。
  • (ii) $u,v$ の少なくとも一方が $\mathsf T$ なら、$o$ を $\mathsf T$ にする部品の彩色がある。$u=v=\mathsf T$ なら $p=\mathsf F$、$q=\mathsf N$。$u=\mathsf T$、$v=\mathsf F$ なら $p=\mathsf F$、$q=\mathsf N$。$u=\mathsf F$、$v=\mathsf T$ なら $p=\mathsf N$、$q=\mathsf F$。いずれも $o=\mathsf T$ で、部品の辺の両端は異なる色である。

構成.3SAT の論理式 $\varphi$ からグラフ $G_\varphi$ を作る。三角形をなす 3 頂点 $\mathsf T,\mathsf F,\mathsf N$(色と同じ名前で呼ぶ)を置く。各変数 $x$ に頂点 $x$ と $\bar x$ を置き、$x$、$\bar x$、$\mathsf N$ を三角形に結ぶ。リテラル $\neg x$ の頂点は $\bar x$ とする。各節は、リテラルを重複させて 3 個に並べ $(\ell_1,\ell_2,\ell_3)$ とし(1 個なら $(\ell_1,\ell_1,\ell_1)$、2 個なら $(\ell_1,\ell_2,\ell_2)$)、入力 $\ell_1,\ell_2$ の論理和の部品の出力 $o_1$ と、入力 $o_1,\ell_3$ の部品の出力 $o_2$ を作り、$o_2$ を頂点 $\mathsf F$ と $\mathsf N$ に結ぶ。頂点は $3+2(\text{変数の数})+6(\text{節の数})$ 個で、多項式時間で書き出せる。
彩色から割り当てへ.$G_\varphi$ の 3 彩色をとる。頂点 $\mathsf T,\mathsf F,\mathsf N$ は三角形なので相異なる色をもち、色の名前を付け替えて、それぞれ色 $\mathsf T,\mathsf F,\mathsf N$ をもつとしてよい。変数の頂点 $x,\bar x$ は $\mathsf N$ と隣接し互いに隣接するので、一方が $\mathsf T$、他方が $\mathsf F$ である。$x$ の色が $\mathsf T$ のとき $x$ を真とすると、各リテラルの頂点の色が $\mathsf T$ であることとリテラルが真であることが同値になる。ある節のリテラルがすべて偽なら、(i) により $o_1=\mathsf F$、もう一度 (i) により $o_2=\mathsf F$ だが、$o_2$ は頂点 $\mathsf F$ と隣接するので矛盾する。よって割り当ては $\varphi$ を充足する。
割り当てから彩色へ.真のリテラルの頂点に $\mathsf T$、偽のものに $\mathsf F$ を付け、各節の部品を (i)(ii) で塗れば、$o_2=\mathsf T$ となる 3 彩色が得られる。

詳細

割り当てから彩色へ.$\varphi$ を充足する割り当てをとり、頂点 $\mathsf T,\mathsf F,\mathsf N$ に同じ名前の色を、真のリテラルの頂点に $\mathsf T$、偽のリテラルの頂点に $\mathsf F$ を付ける。各節で $\ell_1,\ell_2$ の一方が真なら (ii) で $o_1=\mathsf T$ とし、どちらも偽なら $p=\mathsf T$、$q=\mathsf N$、$o_1=\mathsf F$ とする((i) によりこれ以外の色はとれない)。$o_1$ と $\ell_3$ の少なくとも一方は $\mathsf T$ である(節に真のリテラルがあるので)。よって (ii) で $o_2=\mathsf T$ にでき、$o_2$ は $\mathsf F$・$\mathsf N$ と異なる色になる。部品の頂点に接する辺は、部品の三角形の辺、入力との辺、$o_2$ と頂点 $\mathsf F$・$\mathsf N$ の辺だけで、どれも両端の色が異なるので、これで $G_\varphi$ 全体の 3 彩色が得られる。


以上で $\varphi\in\mathrm{3SAT}\iff G_\varphi\in\mathrm{3COL}$ であり、prop-np-reduction の 3 から 3COL は NP完全である。$\square$

真偽の三角形・変数の三角形・節の部品に分けて作る方針は Eri19 §12.10(pp. 395–398)と同じである(節の部品の形は異なる)。

$k$ 彩色可能性

$k\ge3$ について $k$COL は NP完全である。

$k$ についての帰納法で示す。グラフ $G$ に、すべての頂点と隣接する新しい頂点 $a$ を加えたグラフを $G^+$ とする。$G$ が $k$ 色で塗れるなら、$a$ に新しい色を付けて $G^+$ は $k+1$ 色で塗れる。$G^+$ が $k+1$ 色で塗れるなら、$a$ の色は $G$ のどの頂点にも使われないので、$G$ は残りの $k$ 色で塗れる。$G\mapsto G^+$ は多項式時間で計算できるので $k\mathrm{COL}\le_{\mathrm p}(k+1)\mathrm{COL}$ であり、prop-np-reduction の 3 から従う。$\square$

2 彩色は易しい

2 彩色可能性の判定

2COL は P に属する。

次の手続きを考える。各連結成分で頂点 $r$ を 1 つ選び、幅優先探索で $r$ からの距離 $d(v)$ を求め、$d(v)$ の偶奇で色を付ける。最後に、すべての辺の両端の色が異なるかを確かめ、異なれば受理する。手間は頂点数と辺数の多項式である。
受理したなら 2 彩色が得られており、拒否したなら長さが奇数の閉じた歩道があるので 2 彩色は存在しない。

詳細

受理したなら、確かに 2 彩色が得られている。拒否したなら、ある辺 $uv$ で $d(u)\equiv d(v)\pmod 2$ である。$r$ から $u$ への最短の道、辺 $uv$、$v$ から $r$ への最短の道をつないだ閉じた歩道の長さ $d(u)+1+d(v)$ は奇数である。2 彩色では辺を 1 本たどるごとに色が入れ替わるので、奇数本たどって出発点に戻ると色が一致しない。よって $G$ は 2 彩色をもたず、拒否は正しい。$\square$

2 彩色をもつことは、奇数の長さの閉路をもたないこと(二部グラフ の定理「閉路の長さによる特徴付け」)と同値である。3 色では NP完全になる。

ほかの NP完全問題

  • Hamilton 閉路.有向グラフが Hamilton 閉路をもつかどうかの判定は NP完全である(Eri19 §12.11、pp. 398–402。この記事では証明しない)。
  • 平面グラフの 3 彩色.平面グラフに限っても、3 色で塗れるかの判定は NP完全である(四色定理 の注意「3 色で塗れるかの判定」)。4 色なら 四色定理 によって答えはつねに「はい」である。
  • 彩色多項式.彩色多項式 $P_G$ の値 $P_G(3)$ が正であることは 3COL と同値なので、P $\ne$ NP なら彩色多項式を多項式時間で計算する方法はない。
  • P 対 NP 問題.P $=$ NP かどうかは未解決であり、Clay 数学研究所のミレニアム懸賞問題の 1 つである(CJW06 pp. 87–88)。prop-np-reduction の 4 により、これは「NP完全問題のどれか 1 つが多項式時間で解けるか」という問いと同じである。

反例の表

外す条件反例成り立たなくなること
還元の写像が多項式時間で計算できる指数時間で計算できる写像も還元に許す。NP の言語 $A$ は、長さ $\lvert w\rvert^c+c$ 以下の証明書をすべて試せば指数時間で判定できるので、$w\in A$ なら $1$、そうでなければ $0$ を返す写像で $A$ は言語 $\{1\}$ に還元されるNP困難な言語が NP の中で易しくないこと(P に属する $\{1\}$ が NP困難になる)
色の数が 3 以上(cor-np-kcol)2COL(prop-np-2col)NP完全であること(2COL は P に属し、P $\ne$ NP なら NP完全でない)
節のリテラルが 3 個まで許される(thm-np-3sat)各節のリテラルが 1 個の論理式NP完全であること(充足可能であることは、ある変数 $x$ について節 $\{x\}$ と $\{\neg x\}$ がともに現れることがない、と同値で、これは多項式時間で確かめられる。P $\ne$ NP なら NP完全でない)
$o_2$ を頂点 $\mathsf F$・$\mathsf N$ に結ぶ辺(thm-np-3col の構成)充足不能な $\varphi=(\{x\},\{\neg x\})$$\varphi\in\mathrm{3SAT}\iff G_\varphi\in\mathrm{3COL}$(辺がないと (i)(ii) により $G_\varphi$ はつねに 3 色で塗れる)

関連項目

参考文献

[1]
James Carlson, Arthur Jaffe, Andrew Wiles (eds.), The Millennium Prize Problems, Clay Mathematics Institute / American Mathematical Society, 2006, S. Cook「The P versus NP Problem」pp. 87–104:§1(P と NP の定義、計算のモデルによらないこと)pp. 87–88、Definitions 3・4(多項式時間還元と NP完全)と Cook・Karp・Levin の結果 pp. 91–92
[3]
Jeff Erickson, Algorithms, 1st paperback edition, Independently published, 2019, Chapter 12 NP-Hardness:§12.10 Graph Coloring(pp. 395–398)、§12.11 Hamiltonian Cycle(有向グラフの場合、pp. 398–402)

Mathpediaは寄付と、参考文献の書籍リンク(Amazonアソシエイト)の紹介料で運営されています。 支援について / 寄付する