Satisfiability(SAT)
2020-1ํ๊ธฐ, ๋ํ์์ โ์๊ณ ๋ฆฌ์ฆโ ์์ ์ ๋ฃ๊ณ ๊ณต๋ถํ ๋ฐ๋ฅผ ์ ๋ฆฌํ ๊ธ์ ๋๋ค. ์ง์ ์ ์ธ์ ๋ ํ์์ ๋๋ค :)
Satisfiability ๋ฌธ์ , ์ค์ฌ์ SAT ๋ฌธ์ ๋ ์ฃผ์ด์ง Boolean formula๋ฅผ ๋ง์กฑ์ํฌ ์ ์๋ true/false ๊ฐ์ Boolean ๋ณ์๋ค์ ์ ์ ํ ํ ๋นํ๋ ๋ฌธ์ ๋ค. ๊ตฌ์ฒด์ ์ผ๋ก Boolean formula๋ CNF(conjunctive normal form) ํํ๋ก ์ฃผ์ด์ง๋ค.
\[(x \lor y \lor z) (x \lor \bar{y}) (y \lor \bar{z}) (z \lor \bar{x}) (\bar{x} \lor \bar{y} \lor \bar{z})\]โGiven a Boolean formula in CNF, either find a satisfying truth assignment or report โnone existsโ.โ
๋จ์ํ๊ฒ ์์ ํ์์ผ๋ก ์ ๊ทผํ๋ฉด, $n$๊ฐ์ boolean variable์ ๋ํด $2^n$๊ฐ์ ๊ฐ๋ฅํ ๋ชจ๋ assignment๋ฅผ ์ํํ๋ฉฐ ์ฃผ์ด์ง Boolean formula์ ํ ๋นํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉด ๋๋ค. ๊ทธ๋์ SAT ๋ฌธ์ ๋ ์ด์ง ํธ๋ฆฌ๋ฅผ ํ์ํ๋ ์ ํ์ ์ธ search problem์ ์ํ๋ค.
Variation of SAT
์๋ฌด ์ ์ฝ์กฐ๊ฑด์ด ์๋ ์์ํ SAT ๋ฌธ์ ๋ฅผ ํธ๋ ๊ฒ์ NP์ง๋ง, ์๋์ ๋ณํ์ ๋ํด์ ํจ๊ณผ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ด ์ ์๋์๋ค!
Horn formula
โAll clauses contain at most one positive literal. Find a satisfying truth assignment.โ
Greedy Algorithm์ ํตํด linear-time์ ํด๋ฅผ ์ฐพ์ ์ ์๋ค.
2 SAT
โAll clauses have only two literals. Find a satisfying truth assignment.โ
Strongly Connected Components ๋ฌธ์ ๋ก ํ์(reduction)ํด linear-time์ ํด๋ฅผ ์ฐพ์ ์ ์๋ค.
์ ๋ฌธ์ ๋ค์ ๋ํ ๋ด์ฉ์ ๋ณ๋์ ํฌ์คํธ์์ ํ๊ตฌํด๋ณด๋๋ก ํ๊ณ ์ง๊ธ์ SAT ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง๋ง ํ์ธํ๊ณ ๋์ด๊ฐ์.
SAT ๋ฌธ์ ๋ NP ๋ฌธ์ ์ค์์ ๊ธฐ๋ณธ์ด ๋๋ ๋ฌธ์ ๋ค. ๊ทธ๋์ ๊ฑฐ์ ๋ชจ๋ NP ๋ฌธ์ ๋ค์ด SAT ๋ฌธ์ ์ ๊ผด๋ก ํ์ํ ์ ์๋ค. ํด๋น ๋ด์ฉ์ ์ถํ์ Reduction ํฌ์คํธ์์ ๋ ์ดํด๋ณด๋๋ก ํ๊ฒ ๋ค.