Definition: Karp Reduction
A language $A$ is Karp reducible to a language $B$ if there is a polynomial-time computable function $f:{0,1}^*rightarrow{0,1}^*$ such that for every $x$, $xin A$ if and only if $f(x)in B$.
Definition: Levin Reduction
A search problem $V_A$ is Levin reducible to a search problem $V_B$ if there is polynomial time function $f$ that Karp reduces $L(V_A)$ to $L(V_B)$ and there are polynomial-time computable functions $g$ and $h$ such that
- $langle x, y rangle in V_A implies langle f(x), g(x,y) rangle in V_B$,
- $langle f(x), z rangle in V_B implies langle x, h(x,z) rangle in V_A$
Are these reductions equivalent? I think the two definitions are equivalent. For any two $mathsf{NP}$ languages $A$ and $B$, if $A$ is Karp reducible to $B$, then $A$ is Levin reducible to $B$. Here is my proof: Let $x$ and $overline{x}$ be arbitrary instances of $A$ while $x’$ be that of $B$. Suppose $V_A$ and $V_B$ are verifiers of $A$ and $B$. Let $y$ and $overline{y}$ be arbitrary certificates of $x$ and $overline{x}$ according to $V_A$. Let $z$ be that of $x’$ according to $V_B$. Construct new verifiers $V’_A$ and $V’_B$ with new certificates $y’$ and $z’$: $V’_A(x,y’):$
- $y’=langle 0,overline{x},overline{y}rangle$: If $f(x)ne f(overline{x})$, reject. Otherwise output $V_A(overline{x},overline{y})$.
- $y’=langle 1,zrangle$: Output $V_B(f(x),z)$.
$V’_B(x’,z’):$
- $z’=langle 0,zrangle$: Output $V_B(x’,z)$.
- $z’=langle 1,x,yrangle$: If $x’ne f(x)$, reject. Otherwise output $V_A(x,y)$.
The polynomial-time computable functions $g$ and $h$ are defined as below: $g(x,y’)$
- $y’=langle 0,overline{x},overline{y}rangle$: Output $langle 1,overline{x},overline{y}rangle$.
- $y’=langle 1,zrangle$: Output $langle 0,zrangle$.
$h(x’,z’)$
- $z’=langle 0,zrangle$: Output $langle 1,zrangle$.
- $z’=langle 1,x,yrangle$: Output $langle 0,x,yrangle$.
Let $Y_x$ be the set of all certificates of $x$ according to $V_A$ and $Z_{x’}$ be the set of all certificates of $x’$ according to $V_B$. Then the set of all certificates of $x$ according to $V’_A$ is $0overline{x}Y_overline{x}+1Z_{f(x)}$ such that $f(x)=f(overline{x})$, and the set of all certificates of $x’$ according to $V’_B$ is $0Z_{x’}+1overline{x}Y_overline{x}$ such that $x’=f(overline{x})$. (This is derived from the accepting language of $V’_A$ and $V’_B$.) Now let $x’=f(x)$, the rest part is easy to check.
Asked By : c c
Answered By : Kaveh
Best Answer from StackOverflow
Question Source : http://cs.stackexchange.com/questions/2689