Unmöglichkeitsergebnis für volles TSP

This commit is contained in:
Marco Ammon 2020-10-14 15:51:31 +02:00
parent e2a72e9edd
commit d4a1ca3f2c
2 changed files with 47 additions and 8 deletions

Binary file not shown.

View File

@ -183,6 +183,45 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
\end{equation*} \end{equation*}
\end{enumerate} \end{enumerate}
\subsection{Unmöglichkeitsergebnis für das allgemeine Traveling Salesperson Problem \problem{TSP}}
\begin{satz}
Wenn es einen polynomiellen Approximationsalgorithmus $A$ mit konstanter relativer Gütegarantie $r$ für das volle \problem{TSP} gibt, dann gilt $P = NP$.
\end{satz}
\begin{proof}[Beweis durch Reduktion]
Durch Benutzung von $A$ mit beliebiger konstanter relativer Gütegarantie $r \in \mathbb{N}$ kann \problem{Hamilton} auf das volle \problem{TSP} reduziert werden. Es wird also $\problem{Hamilton} \le \mathrm{p} \problem{TSP}[r]$ für alle $r$ gezeigt:
Sei der Graph $G = (V, E)$ mit $n = \abs{V}$, gegeben. Dazu wird nun passend eine Probleminstanz $I_G = \langle K_n, c\rangle$ für \problem{TSP} erzeugt. $c$ wird wie folgt konstruiert:
\begin{equation*}
c(u,v) = \begin{cases*}
1 & falls $\{u, v\} \in E$ (\enquote{kurze} Kante)\\
\left(r - 1\right)\cdot n + 2 & sonst (\enquote{lange} Kante)
\end{cases*}
\end{equation*}
$I_G$ kann in Polynomzeit aus $G$ berechnet werden. Es gilt weiter:
\begin{itemize}
\item $G \in \problem{Hamilton} \Rightarrow$ kürzeste Rundreise in $I_G$ hat die Länge $n$
\item $G \notin \problem{Hamilton} \Rightarrow$ kürzeste Rundreise in $I_G$ nimmt mindestens eine der langen Kanten und hat damit eine Länge von mindestens
\begin{equation*}
(r - 1) \cdot n + 2 + n - 1 = r \cdot n +1 > r \cdot n
\end{equation*}
\item $I_G$ besitzt keine zulässige Lösung $\sigma$ mit $n + 1\le c(\sigma) \le r \cdot n$.
\end{itemize}
Durch den folgenden Algorithmus kann also \problem{Hamilton} entschieden werden:
\begin{algorithmic}[]
\State konstruiere $I_G$
\State approximiere mit $A$ eine kürzeste Rundreise $A(I_G)$
\If{$A(I_G) > r \cdot \abs{V}$}
\State \Return $G \notin \problem{Hamilton}$
\Else
\State \Return $G \in \problem{Hamilton}$
\EndIf
\end{algorithmic}
\end{proof}
Der Ansatz der Konstruktion von Probleminstanzen anderer $NP$-schwerer Probleme und der anschließenden Verwendung eines Scaling-Arguments kann auch für weitere Probleme verwendet werden. Ebenfalls können damit bestimmte Bereiche für mögliche konstante relative Gütegarantien ausgeschlossen werden, etwa $\rho < \frac{3}{2}$ bei \problem{BinPacking}.
\section{Das Problem der Unabhängigen Knotenmengen \problem{IS}} \section{Das Problem der Unabhängigen Knotenmengen \problem{IS}}
\subsection{Definition} \subsection{Definition}
\begin{align*} \begin{align*}
@ -202,8 +241,8 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
\State $V^{(t+1)} = V^{(t)} - \left(\{u_l\} \cup \Gamma_{G^{(t)}}(u_l)\right)$ \State $V^{(t+1)} = V^{(t)} - \left(\{u_l\} \cup \Gamma_{G^{(t)}}(u_l)\right)$
\State $U = U \cup \{u_l\}$ \State $U = U \cup \{u_l\}$
\State $t = t + 1$ \State $t = t + 1$
\EndWhile\\ \EndWhile
\Return $U$ \State \Return $U$
\end{algorithmic} \end{algorithmic}
\begin{satz} \begin{satz}
@ -260,8 +299,8 @@ Die Größe der kleinsten möglichen Knotenfärbung ist die chromatische Zahl $\
\EndFor \EndFor
\ForAll{$i \in [1,\dots, \abs{V}]$} \ForAll{$i \in [1,\dots, \abs{V}]$}
\State $c_\mathrm{V}(u_i) = \min\{\mathbb{N}\setminus\{c_\mathrm{V}(\Gamma(u_i))\}\}$ \State $c_\mathrm{V}(u_i) = \min\{\mathbb{N}\setminus\{c_\mathrm{V}(\Gamma(u_i))\}\}$
\EndFor\\ \EndFor
\Return $c_\mathrm{V}$ \State\Return $c_\mathrm{V}$
\end{algorithmic} \end{algorithmic}
\begin{satz} \begin{satz}
@ -292,8 +331,8 @@ Die Größe der kleinsten möglichen Knotenfärbung ist die chromatische Zahl $\
\State färbe alle Knoten in $U_t$ mit Farbe $t$ \State färbe alle Knoten in $U_t$ mit Farbe $t$
\State $V^{(t+1)} = V^{(t)} - U_t$ \State $V^{(t+1)} = V^{(t)} - U_t$
\State $t = t + 1$ \State $t = t + 1$
\EndWhile\\ \EndWhile
\Return berechnete Färbung \State \Return berechnete Färbung
\end{algorithmic} \end{algorithmic}
\begin{satz} \begin{satz}
@ -354,8 +393,8 @@ Der Algorithmus von Christofides (\algo{CH}) geht wie folgt vor:
\State $S = \{v \in T_\mathrm{CH} \mid \mathrm{deg}_{T_\mathrm{CH}}(v)\, \text{ungerade}\}$ \Comment{$\abs{S}$ ist gerade} \State $S = \{v \in T_\mathrm{CH} \mid \mathrm{deg}_{T_\mathrm{CH}}(v)\, \text{ungerade}\}$ \Comment{$\abs{S}$ ist gerade}
\State berechne auf dem durch $S$ induzierten Teilgraphen des $K_n$ ein leichtestes Matching $M_\mathrm{CH}$ \State berechne auf dem durch $S$ induzierten Teilgraphen des $K_n$ ein leichtestes Matching $M_\mathrm{CH}$
\State berechne eine Euler-Tour $E = (u_1, u_2, \dots)$ auf $T_\mathrm{CH} \cupdot M_\mathrm{CH}$ \Comment{$T_\mathrm{CH} \cupdot M_\mathrm{CH}$ kann Multi-Graph sein, alle Knoten haben geraden Grad} \State berechne eine Euler-Tour $E = (u_1, u_2, \dots)$ auf $T_\mathrm{CH} \cupdot M_\mathrm{CH}$ \Comment{$T_\mathrm{CH} \cupdot M_\mathrm{CH}$ kann Multi-Graph sein, alle Knoten haben geraden Grad}
\State entferne Wiederholungen von Knoten in $E$, sodass man $E'$ erhält\\ \State entferne Wiederholungen von Knoten in $E$, sodass man $E'$ erhält
\Return $E'$ \State\Return $E'$
\end{algorithmic} \end{algorithmic}
\begin{satz} \begin{satz}