1. Many-one reducibility
A problem is a set of numbers in computability theory.
Problem $A $ is said to being m-reducible to Problem $B $ ($A \leq_m b$) iff there exists A total computable function $ f$ such that $x \in A\leftrightarrow f (x) \in b$. This is the so-called m-reduction.
Given $A \leq_m b$, we have the known that:
(i) if $B $ is recursive and then $A $ must be recursive;
(ii) If $B $ is r.e. And then $A $ must be R.E.;
(iii) If $A $ is productive and then $B $ must be productive;
(iv) If $A $ is creative and $B $ are r.e., then $B $ must be creative.
Problem $A $ is R.E. IFF $A \leq_m k$. A R.E. Set is m-complete if every R.E. Set is m-reducible to it. Thus, $K $ is one of m-complete sets.
(Myhill ' s theorem) A set is m-complete iff it is creative.
The sets $A $ and $B $ is many-one equivalent ($A \equiv_m b$) iff both $A \leq_m b$ and $B \leq_m a$ hold. Many-one equivalence is a equivalence relation since it is reflexive, symmetric and transitive . We define the equivalence Class A problem $A $ based on $\equiv_m$ as $d _m (a) =\{b |\text{}a\equiv_m b\}$, which is know N as m-degree.
Given m-degrees $\mathbf{a}$ and $\mathbf{b}$, we further define $\mathbf{a}\leq_m\mathbf{b}$ IFF $ (\exists A_1\in \ma Thbf{a}) (\exists b_1\in\mathbf{b}) (A_1\leq_m b_1) $ and $ (\forall a_2\in\mathbf{a) (\forall b_2\in\mathbf{b}) (B_2\ Nleqslant_m a_2) $. This was a partial order on m-degrees since it was transitive and irreflexive.
In the picture above, $o =\{\varnothing\}$, $n =\{\mathbb{n}\}$, $\mathbf{0}_m=\{a| A\text{is recursive}\}$, and $\mathbf{0}_m ' =d_m (K) $. All M-degrees form a join-semilattice since for any $\mathbf{a}$ and $\mathbf{b}$, if we pick $A \in\mathbf{a}$ an D $B \in\mathbf{b}$, there would exist $d _m (A\oplus B) $ as the least upper bound of $\mathbf{a}$ and $\mathbf{b}$. About lattice, we give the following picture as a refresher.
2. Polynomial-time reducibility
A function $f $ is polynomial-time computed by a program $P $ iff there exists some constants $c $ and $k $ such that For any instance $n $, $f (n) $ are computed by $P (n) $ within $c \cdot n^k$ steps.
A problem is polynomial-time decidable iff it is polynomial-time partially decidable.
A problem $A $ is poly-reducible to another problem $B $ ($A \leq_p b$) iff there exists A polynomial-time total computable F Unction $f $ such that $A (n) \leftrightarrow B (f (n)) $.
A decision problem is a P problem iff there are a polynomial-time algorithm to solve it.
A decision problem belongs to NP iff there are a polynomial-time certifier for it. A certifier checks a certificate related to the problem. A P problem must be an NP-problem, but whether P=NP is still unknown (probably not).
An Np-hard problem are a problem to which any NP problem are poly-reducible. An np-complete problem are a problem that belongs to both NP and Np-hard. From the definition of poly-reducibility, we can deduce the If $A \leq_p b$:
(1) $B $ belongs to NPCs implies $A $ belongs to NP;
(2) If $A $ is NPCs and $B $ is NP, then $B $ is NPC.
P=NP iff there exists an NPCs problem that's polynomial-time solvable. Here is some famous NPC problems:
References:
1. Cutland, Nigel. Computability:an Introduction to recursive function theory [M]. Cambridge:cambridge University Press, 1980
2. Cormen, T. H. et al Introduction to Algorithms [M]. Beijing: Machinery Industry Press, 2006-09
Computability 6:reducibility and NP problems