mirror of
https://github.com/Steffo99/appunti-magistrali.git
synced 2024-11-24 03:04:18 +00:00
81 lines
1.7 KiB
Markdown
81 lines
1.7 KiB
Markdown
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
|
|
$$
|