Un [[problema decisionale]] $A$ può essere trasformato in un altro [[problema decisionale]] $B$ attraverso una *riduzione di Karp* se: - la trasformazione è un'operazione in tempo [[polinomiale]] - ogni [[istanza positiva]] del primo problema rimane un'[[istanza positiva]] dopo essere stata trasformata - ogni [[istanza negativa]] del primo problema rimane un'[[istanza negativa]] dopo essere stata trasformata $$ \def \varProblemA {{\color{DarkOrchid} Problem_{A}}} \def \varProblemB {{\color{SlateBlue} Problem_{B}}} \def \varProblemC {{\color{DarkOliveGreen} Problem_{C}}} \def \karp {\leq_p} \Huge \varProblemA \karp \varProblemB $$ ## Corollari Se un problema è [[polinomiale]], e un altro può essere ridotto ad esso, anche l'altro è [[polinomiale]]: $$ \large \begin{cases} \varProblemA \karp \varProblemB \\\\ \varProblemB \in P \end{cases} \implies \begin{cases} \\ \varProblemA \in P \\\quad \end{cases} $$ Se un problema non è [[polinomiale]], e può essere ridotto ad un altro, anche l'altro non è [[polinomiale]]: $$ \large \begin{cases} \varProblemA \karp \varProblemB \\\\ \varProblemA \not\in P \end{cases} \implies \begin{cases} \\ \varProblemB \not\in P \\\quad \end{cases} $$ Infine, se due problemi possono ridursi a vicenda uno all'altro, essi sono [[problemi equivalenti|equivalenti]]: $$ \large \begin{cases} \varProblemA \karp \varProblemB \\\\ \varProblemB \karp \varProblemA \end{cases} \implies \begin{cases} \\ \varProblemA \equiv_P \varProblemB \\\quad \end{cases} $$ ## Proprietà La [[riduzione di Karp]] è [[transitività|transitiva]]: $$ \large \begin{cases} \varProblemA \karp \varProblemB \\\\ \varProblemB \karp \varProblemC \end{cases} \implies \varProblemA \karp \varProblemC $$