Lecture 17

Polynomial-time Reductions

Definition The language \(A\subseteq\{0,1\}^*\) is polynomial-time reducible to \(B\subseteq\{0,1\}^*\) if \(f:\{0,1\}^*\rightarrow\{0,1\}^*\) that satisfies

  1. there exists a Turing machine with polynomial running time that on input \(x\in\{0,1\}^*\) writes \(f(x)\) on the tape
  2. \(x\in A\) iff \(f(x)\in B\)

Definition We write \(A\leq_p B\) when \(A\) is polynomial-time reducible to \(B\).

Prop If \(A\leq_p B\) and \(B\in P\), then \(A\in P\) as well.

    MA
   --------------
x->|Mf->f(x)->MB|
   --------------

E.g.

  1. \(Add\leq_p Sub\) (\(\{1^k01^l01^{k+l}\}\) and \(\{1^{k+l}01^k01^l\}\))
  2. \(L_{0^k1^k}\leq_p PAL^{even}=\{ww^R:w\in\{0,1\}^*\}\)
  3. \(2COL\leq_p 3COL\)

NP-hardness & NP-completeness

Definition \(L\subseteq\{0,1\}^*\) is \(NP-hard\) if for every \(A\in NP\) \(A\leq_p L\)

Definition \(L\subseteq\{0,1\}^*\) is \(NP-complete\) if \(L\) is \(NP-hard\) and \(L\in NP\)

Theorem There is alanguage \(L\) that is \(NP-complete\)

Proof Consider \(TMSAT=\{<M,x,1^u,1^t>:\exists c\in\{0,1\}^*\) of length \(\leq u\) s.t. \(M\) accepts \(<x,c>\) in at most \(t\) steps\(\}\)

  1. \(TMSAT\in NP\): we can build a NTM that guesses the certificate \(c\) and simulate \(M\) on \(<x,c>\) for at most \(t\) steps
  2. Let \(A\) be any language in \(NP\). Let \(V\) be a polynomial-time verifier for \(A\). Define \(f(x)=<V,x,1^{p(|x|)},1^{t(|x|+p(|x|))}>\) We can compute \(f\) in polynomial time and we can easily verify that \(x\in A\) iff \(f(x)\in TMSAT\)

Cook-Levin Theorem

\(SAT\) is \(NP-complete\)

Definition A Boolean formula is an expression of some boolean variables combine with \(\land, \lor, \lnot\).

e.g. \(\varphi(x_1,x_2,x_3)=(x_1\land x_2)\lor(\lnot x_3\lor x_1)\)

Definition A Boolean formula is satisfiable if there is an assignment of True/False values to the variables that cases the formula to evaluate to True.

Definition \(SAT=\{<\varphi>: \varphi\) is a satisfiable Boolean formular\(\}\)