Share
Embed
Transcript
39 slides
-
参考にした授業,本 • 計算量理論 • 情報科学演習Ⅲ • M. R. Garey and
D. S. Johnson: Computers and intractability --- A Guide to the Theory of NPcompleteness. W. H. Freeman & Co., 1979 • S. Arora and B. Barak: Computational Complexity: A Modern Approach. Cambridge University Press, 2009. →https://theory.cs.princeton.edu/complexity/book.pdf -
今日の目標 • 問題の本質的な計算量を測る方法を知る • P vs NP問題を理解する • NP完全性について理解する •
(強NP完全性について理解する) -
計算,問題とは • 計算とは 文字列を受け取り,文字列を返す. 1 + 1 →2
本日は晴天なり → It’s fine today. • 問題とは 各文字列𝑥 ∈ Σ∗に対し,入力がそれの時に許される出力として空で ない集合𝐴[𝑥] ⊆ Σ∗を定めるものを問題𝐴とする. 集合の要素数が1なら関数 Σ … 文字の集合 ∗ … 反射推移閉包 (0個以上繰り返したものの集合) {0, 1}* … {ε, 0, 1, 00, 01, 10, 11 … } 今回はドメインを特定の集合に制限する条件付き問題を主に考える -
判定問題 • 𝐴 がΣ∗ → Σ∗ の関数であり,出力が2値({0, 1}, {T, F}
など)に限られるとき,判定問題とする. 今回のメイン 例 入力されたグラフがハミルトン閉路を持つか(HC) 入力された完全グラフとコスト関数が総コスト𝑘以下のハミルトン閉路を持つか →巡回セールスマン(TSP)問題(判定版) 入力された連言標準形の論理式が充足可能か(SAT) 連現標準形 … リテラル𝑙j (論理変数𝑥 または ҧ 𝑥)を用いて ٿ𝑗 (𝑙𝑗1 ∨ 𝑙𝑗2 ∨ … ∨ 𝑙𝑗𝑚 )と表せる論理式 充足可能性 … その論理式が真になるような各論理変数へのTrue, Falseの割り当てが存在する こと 例 𝑥1 ∨ 𝑥2 ∧ (𝑥1 ∨ 𝑥2 ) … 充足可能 (𝑥1 = 𝑥2 =T) 𝑥1 ∨ 𝑥2 ∧ 𝑥1 ∨ 𝑥2 ∧ 𝑥2 … 充足不能 -
グラフ理論(補足) • グラフ 𝐺 = (𝑉, 𝐸) 𝑉 …
頂点集合 𝐸 … 辺集合 有向グラフと無向グラフがある 今回は特に指定がなければ無向グラフを考える 例 𝐺 = 𝑉, 𝐸 𝑉 = 1, 2, 3 , 𝐸 = ( 1, 2 , 2, 1 , 2, 3 , {1, 3}) 路(道) … 𝑣0 , 𝑣1 , 𝑣1 , 𝑣2 , … , 𝑣𝑛−1 , 𝑣𝑛 がすべて𝐸 に含まれるとき,各辺の集合を𝑣0 と𝑣𝑛 を結ぶ路と呼ぶ. 頂点が重複しないことを含意することが多い. 𝑣0 = 𝑣𝑛 なら閉路と呼ぶ. ハミルトン(閉)路 … そのグラフのすべての頂点を通る(閉)路 1 2 3 -
チューリングマシン (判定版) • 以下のようにチューリングマシン𝑀を定義 𝑀 = Γ, Σ, 𝑄,
𝛿 𝑄 = 𝑞0 , 𝑞1 , = 𝑞𝑌 , 𝑞2 = 𝑞𝑁 , … , 𝑞𝑟 𝑞𝑌 , 𝑞𝑁 : 受理状態,非受理状態 アルファベット Σ = 0, 1 , Γ = Σ ∪ 𝑏 𝑏 ∶ 空白文字 遷移関数 𝛿: 𝑄 × Γ → 𝑄 × Γ × Δ Δ = −1, +1 … 左右に対応 … 𝑏 𝑏 𝑏 1 1 0 0 𝑏 … 𝑄 ヘッド テープ -
チューリングマシン (判定版) • チューリングマシンが動くアルゴリズム 1. セル1から𝑛までに入力𝑥1 𝑥2 … 𝑥𝑛 をセットする
2. 状態を初期状態𝑞0 , 時刻𝑡を0とする 3. 時刻𝑡で状態𝑞𝑖,𝑡 , ヘッドが指すセルの文字が𝑠𝑗,𝑡 , ヘッドを動かす方向をΔ𝑡 として, 𝑞𝑖,𝑡+1 , 𝑠𝑗,𝑡+1 , Δ𝑡+1 = 𝛿(𝑞𝑖,𝑡 , 𝑠𝑗,𝑡 ) ※Δ𝑡 = −1なら左,1なら右へ移動 4. 𝑞𝑡 = 𝑞𝑌 または𝑞𝑁 となったら停止 • 入力,出力のエンコードは適当なものを考える 数は基本的に1進数以外を考える(入力が指数爆発するため) →擬多項式時間アルゴリズム -
チューリングマシンの動作例 … b 1 1 0 0 b b b
… 𝑞0 𝑞3 𝑞𝑌 𝑸 𝚪 0 1 𝒃 𝑞0 (𝑞0 , 0, +1) (𝑞0 , 1, +1) (𝑞3 , 𝑏, −1) 𝑞1 (𝑞𝑌 , 0, −1) (𝑞𝑁 , 1, −1) (𝑞3 , 𝑏, −1) 入力された二進数が偶数かを判定するチューリングマシンの例 -
消費時間,消費空間 • 機械𝑀に対して入力𝑥を入れたとき,停止するまでに 遷移関数を適用した回数を消費時間 ヘッドが指したセルの総数を消費空間 と呼ぶ. 例
さっきの例では,消費時間5, 消費空間5である. • 関数𝑡: ℕ → ℕに対し,機械𝑀が𝑡 時間限定とは,𝑀にいかなる入力𝑥を与えても, 消費時間が𝑡 𝑥 で抑えられることをいう. 𝑥 … 𝑥の文字列長 • 𝑠空間限定についても同様に定義できる. -
計算量級 • それを解くような多項式時間限定(多項式𝑡: ℕ → ℕで,𝑡時間限定)の機械が存在 する問題の集合ををP (polynomial )と呼ぶ. •
同様に, EXP … 指数時間限定 (exponential) ※ 対数時間限定という集合は普通考えない →入力をすべて読めない • それを解くような多項式空間限定の機械が存在する問題の集合ををPSPACEと 呼ぶ. ※チューリングマシンの定義によっては,対数空間限定についても考える (L). -
NP • すべての入力𝑥に対して以下のような挙動をする多項式時間限定の機械𝑀が存在 する問題𝐴の集合をNPと呼ぶ. 𝑥が𝐴 𝑥 = 1を満たすなら, 𝑟
∈ Σ𝑝 𝑥 が存在し,(𝑥, 𝑟)を入力として与えて𝑀が受理状態 に行き着く そうでないなら,どんな𝑟についても𝑀 が受理状態に行き着かない ※ 𝑟 … certificate (証拠)とよばれる.探索問題などの正解ルートに対応する 例 以下はすべてNPに属する SAT … 論理式を充足するような割り当てを𝑟として与える TSP … 条件を満たすパスを𝑟として与える 同様に,NPSPACEも定義できる -
NP (補足) • NP はNon-deterministic polynomialの略称 • 本来の定義はNTMで多項式時間で解ける問題の集合 NTM
… Non-deterministic Turing Machine 遷移関数が2つあるチューリングマシン 各次点で2つの状態に遷移するため,時刻𝑡で2𝑡個の状態が存在. →この状態の中でどれかが受理状態に含まれていれば受理されたとみなす. -
計算量級の包含関係 • P ⊆ NP ⊆ PSPACE ⊆ EXP
P ⊆ NP … 𝑟がいらないだけ NP ⊆ PSPACE … 𝑀 𝑥, 𝑟 = 1のときの消費時間およびcertificateの長さで大きいほうを𝑡(𝑛)とする. 制限時間及びcertificateの長さを1, 2, 4, …, 𝑡(𝑛) < 2𝑘と増やしていき,その時間,certificate内で 𝑀 𝑥, 𝑟 = 1となるものを探し,見つからなければ増やす 各ステップでの消費空間は多項式で抑えられる PSPACE ⊆ EXP … 𝑀の停止性より,示せる. 𝑀が各時点でとりうる状態(ヘッドの状態,位置,テープの内容)の組み合わせが指数で抑えられ る. 𝑀の次の動作はその状態のみに依存するため,消費時間はその組み合わせの数以下になる. • P ⊂ PSPACE, NP ⊂ EXPは示せる(階層定理). -
P vs NP問題 • P = NPか,P ⊂ NPか
→問題の解が正しいことを確かめるのが簡単に計算できるなら,その問題を解くことも 簡単に計算できるか もし前者ならSAT, TSPなどが多項式時間で解ける • クレイ数学研究所のミレニアム問題の一つ • PSPACE = NPSPACEは証明されている -
チューリングマシン(探索版) • 一般的な問題に対応するチューリングマシン • テープに出力を書いてから唯一の受理状態へ移動 受理しない場合(ドメイン外の入力など)は停止しない • 考えやすくするため,複数テープを持つチューリングマシンの変種を考えることも •
変種の例 入力テープ,作業テープ,出力テープを別々に持ち,入力テープは読み込みのみ,出力テープは書 き込みのみしかできない.それぞれのテープが別の遷移関数を持ち,各時点で同時に遷移できる. 消費空間は使用した作業テープのセルの数 -
多対一帰着 • 判定問題𝐴から𝐵への多対一帰着とは,関数𝑇であって,任意の文字列𝑥に対して, 𝐴 𝑥 = 𝐵(𝑇 𝑥 )が成立するものを指す. •
そのような𝑇のうち,FPに属するものを多項式時間多対一帰着(カープ帰着) するといい,𝐴 ≤𝑚 𝐹𝑃 𝐵と書く. …問題𝐴から𝐵へ多項式時間で変換できる関数. 𝐵のほうが𝐴よりも難しい(計算に時間がかかる)問題といえる. • どちらも推移律,反射律を満たす(擬順序). • 例 𝐴を二進数の足し算を行う問題,𝐵を二進数の引き算を行う問題とすると, 𝐴 ≤𝑚 𝐹𝑃 𝐵, 𝐵 ≤𝑚 𝐹𝑃 𝐴. ∵二つ目の入力を二の補数表現にする変換𝑇はFPに属する -
NP完全 • ある問題𝐴がNP完全であるとは,以下2つを満たすことをいう. 1. 𝐴 ∈ NP 2. ∀ Π
∈ NP, Π ≤𝑚 𝐹𝑃 𝐴 (NP 困難) →NPに属するすべての問題をシミュレートできるNPの問題 ・あるNP完全な問題𝐴がPに属することを示せればP=NPとなる. ∵カープ帰着の推移性より明らか. -
SATのNP完全性 • NP完全な問題は存在するか? →SATがNP完全 …論理式でチューリングマシンを(多項式時間で)模倣すればよい 以下のような論理変数を定義すれば動作をこれらを用いた節で表せる. 𝑄𝑖,𝑘 ∶ 時刻𝑖で𝑀が状態𝑞𝑘
𝐻𝑖,𝑗 ∶ 時刻𝑖でヘッドがテープの𝑗番のセルを指す 𝑆𝑖,𝑗,𝑘 : 時刻𝑖でテープ𝑗番のセルに記号𝑠𝑘 -
NP完全性の証明方法 • 𝐴がNP完全であることを示すには, 1. 定義通りに示す 2. あるNP完全な問題Πに対し, Π ≤𝑚 𝐹𝑃
𝐴 を示す • SATがNP完全だと示されたので,2の手法で証明できるようになった. 一つの問題に対してカープ帰着することを示せばよいので楽. →以後,NP完全性が証明された問題を用いて別の問題のNP完全性を示すとい うことが繰り返される. -
Reduction tree (web) • NP完全な問題を帰着させた関係を木に表したもの. 任意のNPに属する問題 SAT 3SAT INDSET VC
CLIQUE dHAMPATH HAMPATH TSP -
NP完全性の示し方 • よく使われる手法は3種 Component Design (難) 変換元の問題の構成要素を変換先の構成要素となるGadgetにうまく変換する
変換元,変換先の問題が別種の問題のとき Local Replacement (中) 変換元の問題の構成要素をいい感じに置き換えをする 変換元,変換先の問題が同種の問題のとき(SAT, 3SATなど) Restriction (易) 変換先の問題で入力を制限して変換元の問題を表す -
3SAT → VC (Vertex Cover) • Vertex Cover (頂点カバー問題)
グラフ𝐺にサイズ𝑘以下の頂点カバーがあるか • 頂点カバー … グラフ𝐺 = (𝑉, 𝐸)に対して,𝑉′ ⊆ 𝑉 が頂点カバーである とは,すべての辺𝑒 ∈ 𝐸に対して,少なくとも一方の端点が𝑉′に含まれる ことである. • 同様に辺カバーも 定義できる. 頂点カバー(最小) -
3SAT → VC (Vertex Cover) • NP完全性の証明 NPに属することは自明
3SAT ≤𝑚 𝐹𝑃 VCを示す. Gadget 作成 論理変数 𝑥𝑖 節 (𝑐𝑖 ∨ 𝑐𝑗 ∨ 𝑐𝑘 ) Gadget 合体 節の要素𝑐𝑖 がリテラル𝑙𝑗 なら,辺{𝑐𝑖 , 𝑙𝑗 }を追加する 例 𝑥1 ∨ 𝑥3 ∨ 𝑥2 ∧ 𝑥1 ∨ 𝑥2 ∨ 𝑥3 𝑥𝑖 ഥ 𝑥𝑖 𝑐𝑖 𝑐𝑗 𝑐𝑘 𝑥1 𝑥1 𝑥2 𝑥2 𝑥3 𝑥3 𝑐[1]1 𝑐[1]2 𝑐[1]3 𝑐[2]1 𝑐[2]2 𝑐[2]3 -
3SAT → VC (Vertex Cover) • 論理変数の個数を𝑛, 節の数を𝑚としたとき,このグラフに𝑛 + 2𝑚以下のサイズの頂点カ
バーがあることと,充足可能性が同値になる • 例 𝑥1 ∨ 𝑥3 ∨ 𝑥2 ∧ 𝑥1 ∨ 𝑥2 ∨ 𝑥3 𝑥1 , 𝑥2 , 𝑥3 =(T, T, T) • Component Design の一種 𝑥1 𝑥1 𝑥2 𝑥2 𝑥3 𝑥3 𝑐[1]1 𝑐[1]2 𝑐[1]3 𝑐[2]1 𝑐[2]2 𝑐[2]3 -
3SAT → VC (Vertex Cover) • 充足不可能な例 𝑥2 ∨ 𝑥1
∨ 𝑥1 ∧ 𝑥1 ∨ 𝑥1 ∨ 𝑥1 ∧ 𝑥1 ∨ 𝑥2 ∨ 𝑥2 完全グラフ(すべての2頂点をつなぐ辺があるグラフ)の頂点カバーのサイズは 𝑉 − 1以上であることに注意 𝑥1 𝑥1 𝑥2 𝑥2 𝑐[1]1 𝑐[1]2 𝑐[1]3 𝑐[1]1 𝑐[1]2 𝑐[1]3 𝑐[1]1 𝑐[1]2 𝑐[1]3 -
SAT → 3SAT • 3SAT … 連言標準系の各節の長さを高々3に制限したSAT. • NP完全性
3SAT ∈ NPは明らか(SATの部分問題) SAT ≤𝑚 𝐹𝑃 3SATを示す. 節の長さ𝑘が3より多い節があった際,新変数𝑦1 , 𝑦2 , … , 𝑦𝑘−2 を導入して,以下の例の ように変換 𝑥1 ∨ 𝑥2 ∨ 𝑥3 ∨ 𝑥4 ∨ 𝑥5 ↦ 𝑥1 ∨ 𝑥2 ∨ 𝑦1 ∧ 𝑦1 ∨ 𝑥3 ∨ 𝑦2 ∧ (𝑦2 ∨ 𝑥4 ∨ 𝑥5 ) • Local Replacement の一種 -
Local Replacementの例 • VC→INDSET (独立集合) 独立集合 … グラフ𝐺 =
(𝑉, 𝐸)に対して,𝑉′ ⊆ 𝑉 が独立集合とは,任意の2頂点𝑣0 , 𝑣1 ∈ 𝑉′をつなぐ辺が𝐸に含まれないこと. INDSET … 入力されたグラフ𝐺がサイズ𝑘の独立集合を持つか グラフ𝐺 = 𝑉, 𝐸 で𝑉′ ⊆ 𝑉が頂点カバーなら,𝑉 − 𝑉′は独立集合 • INDSET→CLQUE (閥) 閥… グラフ𝐺で𝑉′ ⊆ 𝑉が閥とは,任意の2頂点𝑣0 , 𝑣1 ∈ 𝑉′をつなぐ辺が𝐸に含まれること 部分グラフが完全グラフになること CLIQUE … 入力されたグラフ𝐺がサイズ𝑘の閥を持つか グラフ𝐺 = (𝑉, 𝐸)で𝑉′ ⊆ 𝑉が独立集合なら,グラフ𝐺′ = (𝑉, 𝑉 × 𝑉 − 𝐸) (𝐺の補グラフ)で𝑉′は閥 -
HC→TSP • NP完全性 TSP ∈ NPは明らか HC ≤𝑚
𝐹𝑃 TSPを示す. HCへ入力するグラフを𝐺 = (𝑉, 𝐸)としたとき,TSPへの入力を以下のように制限す る. 𝑘 = |𝑉| 𝐺′は𝑉を頂点集合とする完全グラフ(𝑉, 𝐸′) コスト関数𝑐: 𝐸 → ℕ, 𝑐 𝑒 = ቊ 1 (𝑒 ∈ 𝐸) 2 (𝑒 ∉ 𝐸) この入力を受理することは,𝐺がハミルトン閉路を持つことと同値である • Restriction の一種 -
Restrictionの使いどころ • かなり応用しやすい とりあえずこれを考える • 例 HAMPATH (ハミルトン路)
(SIMPLE) LONGEST PATH … (最長路) グラフ𝐺に経路長𝑘以上の路が存在するか INTEGERPROG … (整数計画問題) 有理数の係数がついた𝑚個の線形な不等式を満たすような整数の変数割り当てが存在するか 例 ቊ −2𝑥0 + 𝑥1 ≤ 2 3𝑥0 − 2𝑥1 ≤ 1 𝑥0 , 𝑥1 = (0, 1)など SI (部分グラフ同型問題) … 後述 -
似て非なる問題 • LONGEST PATH … NP完全 • SHORTEST PATH …
P (フロイト,ベルマンフォード法) • VERTEX COVER … NP完全 • EDGE COVER … P (マッチングアルゴリズム) • HAMILTON CIRCUIT … NP完全 • EULERIAN CIRCUIT … P (頂点の次数で判定可能) • 3SAT … NP完全 • 2SAT … P (深さ優先探索) -
グラフ同型問題 • 同型… 𝐺 𝑉, 𝐸 と𝐺′(𝑉′, 𝐸′)が同型とは,全単射の関数𝑓: 𝑉 →
𝑉′が存在し, ∀ 𝑣0 , 𝑣1 ∈ 𝑉, 𝑣0 , 𝑣1 ∈ 𝐸 ↔ 𝑓 𝑣0 , 𝑓 𝑣1 ∈ 𝐸′ 頂点の位置関係を変えると形が一致すること(下のグラフは同型) • SI (部分グラフ同型問題) … グラフ𝐺がグラフ𝐻と同型な部分グラフを持つか NP完全 (Restrictionで示せる) • GI (グラフ同型問題) … グラフ𝐺とグラフ𝐻が同型か NPだが,P, NP困難であるかどうかが示せてない NPが示されてる問題はたいていNP完全 → P≠NPを示す鍵…? -
探索版と判定版の違い • 判定版ではNP完全でも探索版ではNP困難であることがある TSP(判定版) …入力された完全グラフとコスト関数が総コスト𝑘以下のハミルトン閉路を持つか →最小性を担保しなくてよいためNP完全 TSP(探索版) …入力された完全グラフとコスト関数の総コスト最小のハミルトン閉路を返す
→最小性を担保する必要があるためNP困難 判定か探索かが明記されてなかったり.NP完全,NP困難が混同されていたりするので注意 Wikipediaもぐちゃぐちゃ -
PARTITION • PARTITION … 整数の集合𝑆を入力として受け取ったとき,分割𝑆0 , 𝑆1 ⊆ 𝑆 (𝑆0
∩ 𝑆1 = 𝜙 ∧ 𝑆0 ∪ 𝑆1 = 𝑆)で, σ𝑠∈𝑆0 𝑠 = σ𝑠∈𝑆1 𝑠 ≡ 𝑀を満たすようなものが存在する か • 動的計画法でアルゴリズムを考える 𝑆 = {s0 , s1 , … , sn }とする. 𝑙𝑖,𝑗 … 集合𝑆𝑖 = {𝑠0 , 𝑠1 , … , 𝑠𝑖 }の部分集合𝑆𝑖 ′でσ 𝑠′∈𝑆𝑖 ′ 𝑠′ = 𝑗を満たすものが存在する. 𝑙𝑖,𝑗 = 𝑙𝑖−1,𝑗 ∨ 𝑙𝑖−1, 𝑗 −𝑠𝑖 → 𝑛 × 𝑀のサイズの表を作って埋めていけばよい. →時間計算量𝑂(𝑛 ⋅ 𝑀) →多項式時間アルゴリズム…ではない -
擬多項式時間,強NP困難(完全) • 擬多項式時間アルゴリズム…時間計算量が入力長と,数値として解釈できる入 力の最大値の多項式で表せるアルゴリズム 入力の数値の大きさを制限すればP PARTITIONは擬多項式時間アルゴリズム • 強NP困難
… 入力に含まれる数値の大きさを入力長に制限してもNP困難である 強NP完全も同様に示せる 「入力の数値を1進数で表しても」とも言い換えられる 擬多項式時間アルゴリズムを持つ問題は強NP困難ではない 例 … TSPは強NP困難 ∵ HC→TSPの証明 -
この先へ • RP, BPP, (NP)などの計算量級 • coNP, coRPなどの計算量級 • Π𝑘
𝑃, Σ𝑘 𝑃 (𝑘 ∈ ℕ)などの計算量級