Reduction (4): Circuit-SAT and Cook-Levin Theorem
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Circuit-SAT is NP-complete
Circuit-SAT
๋จผ์ Circuit-SAT๊ฐ ๋ฌด์์ธ์ง๋ถํฐ ์ดํด๋ณด์.
Definition. Circuit-SAT
Given a combinatorial circuit build out of $\text{AND}$, $\text{OR}$ and $\text{NOT}$ gates, is there a way to set the circuit inputs so that the output is $1$?
Circuit-SAT๋ ๊ทธ์ boolean formula๊ฐ $\text{true}$์ธ์ง $\text{false}$์ธ์ง๋ฅผ ํ๋จํ๋ ๋ฌธ์ ๋ค. SAT ๋ฌธ์ ๊ฐ CNF ๊ผด์ boolean formula๊ฐ $\text{true}$์ธ์ง $\text{false}$์ธ์ง๋ฅผ ํ๋จํ๋ ๋ฌธ์ ์ด๊ธฐ ๋๋ฌธ์ Circuit-SAT๋ SAT ๋ฌธ์ ๋ฅผ generalizationํ ๊ฒ์ธ ์ ์ด๋ค. ์ค์ ๋ก SAT ๋ฌธ์ ๋ฅผ Circuit-SAT ๋ฌธ์ ๋ก ํํํ๋ ๊ฒ์ $\text{AND}$, $\text{OR}$, $\text{NOT}$ ๊ฒ์ดํธ๋ฅผ ์ ์ ํ ์ฌ์ฉํด ํํํ ์ ์์์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
\[\text{SAT} \le_P \text{Circuit-SAT}\]Overview
์ด๋ฒ ํฌ์คํธ์์ ์ฐ๋ฆฌ์ ๋ชฉ์ ์ ๋ชจ๋ $\textbf{NP}$ ๋ฌธ์ ๊ฐ SAT ๋ฌธ์ ๋ก ํ์๋๋ ๊ฒ์ ๋ณด์ด๋ ๊ฒ์ด๋ค. ์ด๊ฒ์ SAT๊ฐ $\textbf{NP-complete}$์์ ์ฆ๋ช ํ๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ฆ๋ช ํ๊ธฐ ์ํด์ ํ๋์ ์ค๊ฐ ๋จ๊ณ๋ฅผ ์ถ๊ฐํ๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก <Circuit-SAT>์ด๋ค! ์ฐ๋ฆฌ๋ ๋ชจ๋ $\textbf{NP}$ ๋ฌธ์ ๊ฐ Circuit-SAT ๋ฌธ์ ๋ก ํ์๋จ์ ๋ณด์ด๊ณ , Circuit-SAT ๋ฌธ์ ๋ฅผ SAT๋ก ํ์ํ๋ ๋ฐฉ์์ ์ดํด๋ณผ ๊ฒ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก SAT ๋ฌธ์ ๊ฐ 3-SAT ๋ฌธ์ ๋ก ํ์๋จ์ ๋ณด์ผ ๊ฒ์ด๋ค. ์ด๊ฒ์ ์ฐ๋ฆฌ๊ฐ Reduction (2), Reduction (3) ํฌ์คํธ์์ ์ดํด๋ณธ <Independent Set>, <Vertex Cover> ๋ฑ์ ๋ฌธ์ ๊ฐ $\textbf{NP-complete}$์ ์ํจ์ ๋งํ๋ค.
์ฆ๋ช ์ ์-์๋ ์์๋๋ก ํ์ง ์๊ณ , ๋ณธ์ธ์ด ์ดํดํ๊ธฐ ํธํ๋ ์์๋๋ก ์งํํ๊ฒ ๋ค.
- SAT โ 3-SAT
- Circuit-SAT โ 3-SAT
- All of NP โ Circuit-SAT: Cook-Levin Theorem
SAT โ 3-SAT
์ ์ผ ๋จผ์ <SAT>๊ฐ <3-SAT>๋ก ํ์๋จ์ผ๋ก ๋ณด์ด์. ์ด ๊ฒฝ์ฐ๋ ์ข ํน์ดํ ์ํฉ์ธ๋ฐ, <SAT>๋ <3-SAT>๋ generalization์ธ ๋ฐ๋ฉด์ <3-SAT>๋ <SAT>์ special case์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋์
\[\text{3-SAT} \le_P \text{SAT}\]๋ generalization๊ณผ special case์ ์ํด ์์ฐ์ค๋ฝ๊ฒ ์ ๋๋๋๋ฐ, ์ฐ๋ฆฌ๊ฐ ์ฆ๋ช ํ ๊ฒ์
\[\text{SAT} \le_P \text{3-SAT}\]์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ ๋๋๊ฒ๋ ์ด Reduction์ด ๊ฐ๋ฅํ๋ค!
Proof
[Problem Transformation]
3๊ฐ ์ด์์ literal์ ๊ฐ์ง clause $(a_1 \lor a_2 \lor \cdots \lor a_k) \, (k > 3)$๋ฅผ ์๋์ ๋ฐฉ์์ผ๋ก 3-SAT์ผ๋ก ๋ณํํ๋ค.
\[(a_1 \lor a_2 \lor \cdots \lor a_k) = (a_1 \lor a_2 \lor y_1)(\bar{y}_1 \lor a_3 \lor y_2)(\bar{y}_2 \lor a_4 \lor y_3) \cdots (\bar{y}_{k-3} \lor a_{k-1} \lor a_k)\]์ด๋, $y_i$๋ ๋ชจ๋ ์๋ก์ด boolean variable์ด๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ฐ ๋ณํ์ด ๋ง์ด ๋๋ ๊ฑธ๊น? Why this work?
[Solution Transformation]
clause $(a_1 \lor a_2 \lor \cdots \lor a_k) = \text{true}$๊ฐ ๋๋ ค๋ฉด, ์ ์ด๋ ํ๋์ $a_i$๋ $\text{true}$์ฌ์ผ ํ๋ค.
-
๊ทธ๋ฌ๋ ๋ง์ฝ $a_i$ ๋ชจ๋ $\text{false}$๋ผ๋ฉด, ๋ชจ๋ $y_i$๋ $\text{true}$๊ฐ ๋๋๋ผ๋, ๋ง์ง๋ง clause \((\bar{y}_{k-3} \lor a_{k-1} \lor a_k)\)๊ฐ $\text{false}$๊ฐ ๋์ด์ 3-SAT์ผ๋ก ๋ณํํ clause๊ฐ not satisfying ํ๋ค.
-
๋ง์ฝ ์ด๋ค $a_i=\text{true}$๋ผ๊ณ ํ์. ๊ทธ๋ฌ๋ฉด, $y_1, y_2, \dots, y_{i-2}$๊น์ง ๋ชจ๋ $\text{true}$์ด๊ณ , $y_{i-1}$๋ถํฐ ๋ชจ๋ $\text{false}$๊ฐ ๋๋ฉด, 3-SAT์ผ๋ก ๋ณํํ clause๊ฐ satisfying ํ๋ค.
์ฆ, 3-SAT transformed SAT๊ฐ satisfiableํ๋ฉด, ์์ ํน์ฑ์ ํ์ฉํด ์๋ณธ SAT์ satisfiability์ truth assignment๋ฅผ ์ ์ ์๋ค๋ ๊ฒ์ด๋ค!
Circuit-SAT โ 3-SAT
์ฐ๋ฆฌ๋ ์ด๋ฏธ <Circuit-SAT>๊ฐ <SAT>์ generalization์์ ์๋ค.
\[\text{SAT} \le_P \text{Circuit-SAT}\]๊ทธ๋ฌ๋ ์ด๋ฒ์ ์ฆ๋ช ํ๋ ๊ฑด, ๋ฐ๋ ๋ฐฉํฅ์ธ
\[\text{Circuit-SAT} \le_P \text{SAT}\]์ด๋ค. ๋ฐ๋ก ์์์ ์ดํด๋ณธ โSAT โ 3-SATโ์ฒ๋ผ special case๋ฅผ generalization์ผ๋ก ํ์ํ๋ ๊ฒ์ด๋ค!
Proof
[Problem Transformation]
Circuit Instance $k$์ ๋ํด ๊ฐ ๋ ธ๋๋ฅผ ๋ชจ๋ 3-SAT variable $x_i$๋ก ๋ณํํ๋ค. ๊ท์น์ ์๋์ ๊ฐ๋ค.
All of NP โ Circuit-SAT: Cook-Levin Theorem
โ๋ชจ๋ โ NP ๋ฌธ์ ๋ผ๋! ์ง๊ธ๊น์ง ๋ค๋ฃฌ ํ์ ์ค์์ ๊ฐ์ฅ ์ถ์์ ์ธ ํํ์ ํ์์ด๋ค. ํ๋ฆ์ ์ ๋ฐ๋ผ๊ฐ๋๊ฒ ์ค์ํ๋ฐ, ์ผ๋จ ๋ณธ๊ฒฉ์ ์ธ ์ฆ๋ช ์ ํ๊ธฐ ์ ์ ์๋์ ๋ ผ์ฆ์ ๋จผ์ ์ดํดํ์.
์ด๋ค ๋ฌธ์ $X$๊ฐ $\textbf{NP}$์ ์ํ๋ค๋ ๊ฑด, ๋ฌธ์ $X$๊ฐ Search Problem์ด๋ผ๋ ๋ง์ด๋ค. Problem $X$๊ฐ Search Problem์ด๋ฏ๋ก polynomial-time algorithm์ธ verifier๊ฐ ์กด์ฌํ๋ค, ๊ทธ๊ฒ์ verifier $V$๋ผ๊ณ ํ์. verifier $V$๋ 2๊ฐ์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ๋๋ฐ, Problem $X$์ instance $x \in X$, ๊ทธ๋ฆฌ๊ณ ์ด๋ค solution $s$์ด๋ค: $V(x, s)$.
์ด๋, ๊ณ ์ ๋ ํฌ๊ธฐ์ $n$ bits๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ $\text{yes}/\text{no}$๋ฅผ ์ถ๋ ฅํ๋ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ๋ ํ๋ก(circuit)์ผ๋ก ํํํ ์ ์๋ค. ๋, ์ด ํ๋ก ๋ณํ ๊ณผ์ ์ ์ ๋ ฅ ๋นํธ $n$์ ๋ํด polynomial-time ๋ง์ ๊ฐ๋ฅํ๊ณ , ๊ทธ ํ๋ก์ ํฌ๊ธฐ๋ ์ ๋ ฅ ๋นํธ $n$์ ๋ํด polynomial-size์ด๋ค. (๋ณธ์ธ์ ๋์ถฉ computer๋ก ๊ตฌํํ ์ ์์ผ๋ ํ๋ก(circuit)์ผ๋ก ํํํ ์ ์๋ค๊ณ ์ดํดํ๋ค.)
์์ ์๊ณ ๋ฆฌ์ฆ์ ํ๋ก ๋ณํ๋ก ๋ณํํ ์ ์๋ค๋ ์ฌ์ค์ ๋ฐํ์ผ๋ก verifier $V(x, s)$๋ฅผ circuit $C(x, s)$๋ก ๋ณํํ ์ ์๋ค.
์, ์ด์ ์ค๋น ๊ณผ์ ์ ๋๋ฌ๊ณ , ๋ณธ๊ฒฉ์ ์ผ๋ก Problem $X$๋ฅผ <Circuit-SAT>๋ก ํ์ํด๋ณด์!
Proof
[Problem Transformation]
์์ ๋ ผ์๋ฅผ ํตํด Search Problem $X$์ Vertifier $V(x, s)$๋ฅผ circuit $C(x, s)$๋ก ๋ณํํ ์ ์์๋ค. ์, ์ด์ ๊ทธ circuit $C(x, s)$๊ฐ ์ด๋ป๊ฒ ์๊ฒผ๋์ง ์ดํด๋ณด์.
์ฒซ์งธ, problem instance์ธ $x$๋ฅผ hard-coded input์ด๋ค. ๋์งธ, problem solution $s$๋ Circuit-SAT ๋ฌธ์ ๊ฐ ์ฐพ์์ผ ํ๋ truth assignment์ด๋ค!
์๋ฅผ ๋ค๋ฉด, ์์ ๊ฐ์ <Indenpendent Set> ๋ฌธ์ ์์ ์ผํธ์ Graph Instance๊ฐ $x$๋ก hard-coded๋์ด circuit ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ๋ค. ์ฐ๋ฆฌ๊ฐ ์ฐพ๊ณ ์ ํ๋ solution $s$๋ circuit์์ ๋น์์ ธ ์๋ ์ ๋ ฅ๊ฐ์ผ๋ก ๋ค์ด๊ฐ Circuit-SAT๋ฅผ ํธ๋ ์๊ณ ๋ฆฌ์ฆ์ ํตํด ๊ทธ ๊ฐ์ ์ฐพ์์ผ ํ๋ค!
์ ๋ฆฌํ๋ฉด, ์ด๋ ๋ค.
โTo solve a problem instance $x \in X$, take a circuit corresponding to $C(x, \cdot)$. Then, use a Circuit-SAT algorithm for this circuit to find a solution (if exist).โ
์ฆ, ์ด๋ค Search Problem์ ์ ์ ํ Circuit-SAT ๋ฌธ์ ๋ก ๋ฐ๊ฟ์, Circuit-SAT๋ฅผ ํ๋ฉด ํด๋น Search Problem์ ํ ์ ์๋ ํํ๋ก ํ์ํ๋ค!
์ด ์ ๋ฆฌ๋ฅผ ํตํด <Circuit-SAT>๊ฐ $\textbf{NP-complete}$์์ ๋ณด์ด๊ฒ ๋๊ณ , ์ด์ ๋ฐ๋ผ <Circuit-SAT> ๋๋ <SAT>๋ก๋ถํฐ ํ์๋๋ ๋ชจ๋ Search Problem๋ค์ด $\textbf{NP-complete}$์ ์ํ๊ฒ ๋๋ค! ์ด ์ ๋ฆฌ๋ฅผ <CookโLevin Theorem>๋ผ๊ณ ํ๋๋ฐ, ๋ณธ ํฌ์คํธ์ ์ฆ๋ช ์ ์ด ์ ๋ฆฌ๋ฅผ ์ ๋ง ๊ฐ๋ตํ๊ฒ ๊ธฐ์ ํ ๊ฒ์ ๋ถ๊ณผํ๋ค ๐
์! ์ด๊ฒ์ผ๋ก โNP & NP-completeโ ๋จ์์ ๋ด์ฉ์ ๋ชจ๋ ์ดํด๋ดค๋ค! ํ์ฅ ์์ ์์ ๋ค์ ๋๋ ์ ์ผ ์ด๋ ค์ ๋ ๋จ์์ด๋ผ ์ ๋๋ก ์ดํด๋ ๋ชป ํ๊ณ ์ํ์ ๋ดค๋ ๊ธฐ์ต์ด ์๋ค ๐ข ๊ทธ๋์ ์๊ณ ๋ฆฌ์ฆ ์์ ์ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด, ๊ผญ ์ ๋ณตํ๊ณ ์ถ์๋ ๋จ์์ ๋ง๋ฌด๋ฆฌ ํ๊ฒ ๋์ด ๋ฟ๋ฏํ๋ค. ์ด์ ๋ง์ง๋ง ๋จ์๋ง ๋จ๊ฒจ๋์๋๋ฐ, ๋๊น์ง ํ๋ด๋ณด์ ๐