Fehlerbehebung

This commit is contained in:
Marco Ammon 2020-10-18 13:50:53 +02:00
parent 34a09b247d
commit 8ba3d86a71
2 changed files with 131 additions and 126 deletions

Binary file not shown.

View File

@ -5,6 +5,7 @@
\usepackage{amssymb}
\usepackage{scrextend}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{enumitem}
@ -67,6 +68,7 @@
% Rucksackproblem
\newcommand{\rucksack}{\problem{Rucksack}}
\newcommand{\vol}{\mathrm{vol}}
\newcommand{\ark}{\algo{AR}[k]}
\newcommand{\dynrucksack}{\algo{DynRucksack}}
\newcommand{\fpasrucksack}{\algo{FPASRucksack}}
@ -126,6 +128,8 @@
\g@addto@macro\bfseries{\boldmath}
\makeatother
\hyphenation{Gü-te-ga-ran-tie}
\begin{document}
\maketitle
@ -151,8 +155,8 @@ Gesucht ist zu $I \in \domain$ eine zulässige Lösung $\sigma_\mathrm{opt} \in
\subsubsection{Das Rucksackproblem \rucksack}
\begin{align*}
\domain &= \{\encoded{ W, \vol, p, B} \mid \{1, \dots, n\}, \vol: W \mapsto \naturals, p: W\mapsto \naturals, B \in \naturals, \forall w \in W: vol(w) \le B\}\\
\solution(\encoded{ W, \vol, p, B}) &= \{ A \subseteq W \mid \sum_{w\in A}\vol(w) \le B\}\\
\domain &= \{\encoded*{ W, \vol, p, B} \mid \{1, \dots, n\}, \vol: W \mapsto \naturals, p: W\mapsto \naturals, B \in \naturals, \forall w \in W: vol(w) \le B\}\\
\solution(\encoded*{ W, \vol, p, B}) &= \{ A \subseteq W \mid \sum_{w\in A}\vol(w) \le B\}\\
f(A) &= \sum_{w\in A} p_w\\
\ziel &= \max
\end{align*}
@ -160,9 +164,9 @@ Die Restriktion der verfügbaren Waren auf solche, die in den leeren Rucksack pa
\subsubsection{Das Knotenfärbungsproblem \problem{Col}}
\begin{align*}
\domain &= \{\encoded{ G} \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\
\solution(\encoded{ G }) &= \{ c_\vertices \mid c_\vertices\, \text{ist eine Knotenfärbung von}\, G\}\\
f(c_\vertices) &= \abs{c_\vertices(V)}\\
\domain &= \{\encoded*{ G} \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\
\solution(\encoded*{ G }) &= \{ c_\vertices \mid c_\vertices\, \text{ist eine Knotenfärbung von}\, G\}\\
f(c_\vertices) &= \abs*{c_\vertices(V)}\\
\ziel &= \min
\end{align*}
@ -170,43 +174,43 @@ Die Größe der kleinsten möglichen Knotenfärbung ist die chromatische Zahl $\
\subsubsection{Das Kantenfärbungsproblem \problem{EdgeCol}}
\begin{align*}
\domain &= \{\encoded{ G} \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\
\solution(\encoded{ G }) &= \{ c_\edges \mid c_\edges\, \text{ist eine Kantenfärbung von}\, G\}\\
f(c_\edges) &= \abs{c_\edges(E)}\\
\domain &= \{\encoded*{ G} \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\
\solution(\encoded*{ G }) &= \{ c_\edges \mid c_\edges\, \text{ist eine Kantenfärbung von}\, G\}\\
f(c_\edges) &= \abs*{c_\edges(E)}\\
\ziel &= \min
\end{align*}
Die Größe der kleinsten möglichen Kantenfärbung ist der chromatische Index $\chi'(G)$.
\subsubsection{Das Traveling-Salesperson-Problem \tsp}
\begin{align*}
\domain &= \{\encoded{ K_n, c} \mid K_n\, \text{vollständiger Graph auf $n$ Knoten}, c: E \mapsto \naturals,\}\\
\solution(\encoded{ K_n, c }) &= \{ C \mid C = (v_{i_1}, v_{i_2}, \dots, v_{i_n}, v_{i_i})\,\text{ist ein Hamiltonkreis}\}\\
\domain &= \{\encoded*{ K_n, c} \mid K_n\, \text{vollständiger Graph auf $n$ Knoten}, c: E \mapsto \naturals,\}\\
\solution(\encoded*{ K_n, c }) &= \{ C \mid C = (v_{i_1}, v_{i_2}, \dots, v_{i_n}, v_{i_i})\,\text{ist ein Hamiltonkreis}\}\\
f(c_\edges) &= c(v_{i_n}, v_{i_1}) + \sum_{j=1}^{n-1} c(v_{i_j}, v_{i_{j+1}})\\
\ziel &= \min
\end{align*}
\subsubsection{Das metrische Traveling-Salesperson-Problem $\deltatsp$}
\begin{align*}
\domain &= \{\encoded{ K_n, c} \mid K_n\, \text{vollständiger Graph auf $n$ Knoten}, c: E \mapsto \naturals,\\
\domain &= \{\encoded*{ K_n, c} \mid K_n\, \text{vollständiger Graph auf $n$ Knoten}, c: E \mapsto \naturals,\\
&\underbrace{\forall u, v, w \in V: c(u,v) \le c(u,w) + c(w, v)}_\text{Dreiecksungleichung}\}\\
\solution(\encoded{ K_n, c }) &= \{ C \mid C = (v_{i_1}, v_{i_2}, \dots, v_{i_n}, v_{i_i})\,\text{ist ein Hamiltonkreis}\}\\
\solution(\encoded*{ K_n, c }) &= \{ C \mid C = (v_{i_1}, v_{i_2}, \dots, v_{i_n}, v_{i_i})\,\text{ist ein Hamiltonkreis}\}\\
f(c_\edges) &= c(v_{i_n}, v_{i_1}) + \sum_{j=1}^{n-1} c(v_{i_j}, v_{i_{j+1}})\\
\ziel &= \min
\end{align*}
\subsubsection{Das Problem der Unabhängigen Knotenmengen \is}
\begin{align*}
\domain &= \{\encoded{ G} \mid G = (V, E)\,\text{ein Graph}\}\\
\solution(\encoded{ G }) &= \{ U \mid U \subseteq V, \forall u, v \in U: (u, v) \notin E\}\\
f(U) &= \abs{U}\\
\domain &= \{\encoded*{ G} \mid G = (V, E)\,\text{ein Graph}\}\\
\solution(\encoded*{ G }) &= \{ U \mid U \subseteq V, \forall u, v \in U: (u, v) \notin E\}\\
f(U) &= \abs*{U}\\
\ziel &= \max
\end{align*}
\subsubsection{Das Cliquenproblem \clique}
\begin{align*}
\domain &= \{\encoded{ G} \mid G = (V, E)\,\text{ein Graph}\}\\
\solution(\encoded{ G }) &= \{ U \mid U \subseteq V, \forall u, v \in U: (u, v) \in E\}\\
f(U) &= \abs{U}\\
\domain &= \{\encoded*{ G} \mid G = (V, E)\,\text{ein Graph}\}\\
\solution(\encoded*{ G }) &= \{ U \mid U \subseteq V, \forall u, v \in U: (u, v) \in E\}\\
f(U) &= \abs*{U}\\
\ziel &= \max
\end{align*}
@ -218,9 +222,9 @@ Eine Oder-Klausel (kurz Klausel) $C = l_1 \lor \dots \lor l_k$ ist eine Oder-Ver
Eine Boolesche $(n, m)$-Formel $\Phi = C_1 \land \dots \land C_m$ in konjunktiver Normalform ist eine Und-Verknüpfung von Oder-Klauseln aus $n$ Variablen aus $V$.
\begin{align*}
\domain &= \{\encoded{ \Phi} \mid \Phi\,\text{eine boolesche $(n,m)$-Formel in KNF}\}\\
\solution(\encoded{ \Phi }) &= \{ b \mid b: V \mapsto \{\false{}, \true{}\}\}\\
\wahr(\Phi) &= \abs{\{j \mid C_j \in \Phi, b(C_j) = \true{}\}}\\
\domain &= \{\encoded*{ \Phi} \mid \Phi\,\text{eine boolesche $(n,m)$-Formel in KNF}\}\\
\solution(\encoded*{ \Phi }) &= \{ b \mid b: V \mapsto \{\false{}, \true{}\}\}\\
\wahr(\Phi) &= \abs*{\{j \mid C_j \in \Phi, b(C_j) = \true{}\}}\\
\ziel &= \max
\end{align*}
@ -228,16 +232,16 @@ Eine Boolesche $(n, m)$-Formel $\Phi = C_1 \land \dots \land C_m$ in konjunktive
\begin{align*}
\domain &= \{S \mid S = \{S_1, \dots, S_m\}, V = \cup_{i=1}^{m}S_i = \{u_1, \dots, u_n\}\}\\
\solution(S) &= \{ S_\cov \mid S_\cov = \{S_{i_1}, \dots, S_{i_l}\}, V = \cup_{j=1}^{l} S_{i_j}\}\\
f(S_\cov) &= \abs{S_\cov}\\
f(S_\cov) &= \abs*{S_\cov}\\
\ziel &= \min
\end{align*}
\subsubsection{Das Knotenüberdeckungsproblem \vertexcover}
Spezialfall von \setcover:
\begin{align*}
\domain &= \{\encoded{G} \mid \text{$G = (E, V)$ ein Graph}\}\\
\solution(\encoded{G}) &= \{ C \mid C \subset V, \forall e \in E: e \cap C \neq \emptyset\}\\
f(C) &= \abs{C}\\
\domain &= \{\encoded*{G} \mid \text{$G = (E, V)$ ein Graph}\}\\
\solution(\encoded*{G}) &= \{ C \mid C \subset V, \forall e \in E: e \cap C \neq \emptyset\}\\
f(C) &= \abs*{C}\\
\ziel &= \min
\end{align*}
@ -245,20 +249,20 @@ Spezialfall von \setcover:
\begin{align*}
\domain &= \{M \mid M = \left\{a_1,\dots, a_n\right\}, 1 \ge s(a_1)\ge\dots\ge s(a_n)\ge 0\}\\
\solution(M) &= \{ B \mid B = \{B_1, \dots,B_k\}, \cupdot_{B_i\in B} B_i = M, \forall B_i \in B: s(B_i)\le 1\}\\
f(M) &= \abs{M}\\
f(M) &= \abs*{M}\\
\ziel &= \min
\end{align*}
\subsection{$t(n)$-Zeit-Approximationsalgorithmus}
Berechnet ein Algorithmus $A$ in Zeit $t(\abs{I})$ eine Ausgabe $\sigma_I^A \in \solution(I)$ für Eingabe $I \in \domain$, wird er als $t(n)$-Zeit-Approximationsalgorithmus bezeichnet. Es gilt die Schreibweise $A(I) = f(\sigma_I^A)$.
Berechnet ein Algorithmus $A$ in Zeit $t(\abs*{I})$ eine Ausgabe $\sigma_I^A \in \solution(I)$ für Eingabe $I \in \domain$, wird er als $t(n)$-Zeit-Approximationsalgorithmus bezeichnet. Es gilt die Schreibweise $A(I) = f(\sigma_I^A)$.
\subsection{Pseudo-polynomieller Algorithmus}
Sei $\Pi$ ein kombinatorisches Optimierungsproblem, sodass in allen Instanzen $I$ alle vorkommenden Zahlen natürliche Zahlen sind. Sei $\maxnr(I)$ die größte in $I$ vorkommende Zahl. Ein Algorithmus wird als pseudo-polynomiell bezeichnet, falls es ein Polynom $\poly(\cdot, \cdot)$ gibt, sodass für alle Instanzen $I$ seine Laufzeit $\poly(\abs{I}, \maxnr(I))$ ist.
Sei $\Pi$ ein kombinatorisches Optimierungsproblem, sodass in allen Instanzen $I$ alle vorkommenden Zahlen natürliche Zahlen sind. Sei $\maxnr(I)$ die größte in $I$ vorkommende Zahl. Ein Algorithmus wird als pseudo-polynomiell bezeichnet, falls es ein Polynom $\poly(\cdot, \cdot)$ gibt, sodass für alle Instanzen $I$ seine Laufzeit $\poly(\abs*{I}, \maxnr(I))$ ist.
Kann also das Problem so eingeschränkt werden, dass für alle Instanzen $I$ die größte vorkommende Zahl durch ein Polynom begrenz wird, also $\maxnr(I) \le q(\abs{I})$ mit Polynom $q$ gilt, so ist auch die Laufzeit des Algorithmus polynomiell.
Kann also das Problem so eingeschränkt werden, dass für alle Instanzen $I$ die größte vorkommende Zahl durch ein Polynom begrenzt wird, also $\maxnr(I) \le q(\abs*{I})$ mit Polynom $q$ gilt, so ist auch die Laufzeit des Algorithmus polynomiell in der Eingabegröße.
\subsection{Starke NP-Vollständigkeit}
Ein NP-vollständiges Entscheidungsproblem $L$ wird als stark NP-vollständig bezeichnet, wenn es ein Polynom $q$ gibt, sodass $L_q = \{x \mid x \in L, \maxnr(x) \le q(\abs{x})\}$ NP-vollständig ist. Gibt es kein solches Polynom, gilt $L$ als schwach NP-vollständig.
Ein NP-vollständiges Entscheidungsproblem $L$ wird als stark NP-vollständig bezeichnet, wenn es ein Polynom $q$ gibt, sodass $L_q = \{x \mid x \in L, \maxnr(x) \le q(\abs*{x})\}$ NP-vollständig ist. Gibt es kein solches Polynom, gilt $L$ als schwach NP-vollständig.
Eine äquivalente Charakterisierung ist: Das NP-vollständige Entscheidungsproblem $L$ ist stark vollständig, falls es keinen pseudo-polynomiellen Algorithmus für $L$ gibt (unter der Annahme $P \neq NP$).
@ -297,8 +301,8 @@ Ein planarer Graph kann so auf einer Kugel dargestellt werden, dass sich keine s
Ein planarer Graph enthält mindestens einen Knoten mit Grad 5 oder weniger.
\end{satz}
\begin{proof}[Beweis durch Widerspruch]
Nähme man an, dass einen planaren Graphen mit lediglich Knoten vom Grad 6 oder höher gibt, muss dieser Graph $m = 3\cdot n$ Knoten haben.
Es folgt dann der Widerspruch $n = 3\cdot m \not\le 3\cdot m - 6$.
Nähme man an, dass einen planaren Graphen mit lediglich Knoten vom Grad 6 oder höher gibt, muss dieser Graph $3\cdot n \le m$ Knoten haben.
Es folgt dann der Widerspruch $3\cdot n \le m \not\le 3\cdot m - 6$.
\end{proof}
\section{Absolute Gütegarantie}
@ -306,11 +310,11 @@ Ein planarer Graph kann so auf einer Kugel dargestellt werden, dass sich keine s
\begin{enumerate}
\item $A$ hat bei Eingabe $I$ absolute Güte von
\begin{equation*}
\kappa_A(I) = \abs{A(I) - \opt(I)}
\kappa_A(I) = \abs*{A(I) - \opt(I)}
\end{equation*}
\item Die absolute Worst-Case-Güte von $A$ abhängig von der Eingabelänge $n = \abs{I}$ ist die Funktion
\item Die absolute Worst-Case-Güte von $A$ abhängig von der Eingabelänge $n = \abs*{I}$ ist die Funktion
\begin{equation*}
\kappa_A^{\mathrm{wc}}(n) = \max\{\kappa_A(I) \mid I \in \domain, \abs{I} <= n\}
\kappa_A^{\mathrm{wc}}(n) = \max\{\kappa_A(I) \mid I \in \domain, \abs*{I} \le n\}
\end{equation*}
\item $A$ garantiert eine absolute Güte von $\kappa_A: \naturals \mapsto \naturals$, falls für alle $n \in \naturals$ gilt:
\begin{equation*}
@ -322,7 +326,7 @@ Ein planarer Graph kann so auf einer Kugel dargestellt werden, dass sich keine s
\end{equation*}
Eine unendlich große Menge $\domain' \subseteq \domain$ heißt $\kappa'_A(n)$-Zeugenmenge gegen $A$, wenn für alle $I \in \domain'$ gilt:
\begin{equation*}
\kappa_A(I) \ge \kappa'_A(\abs{I})
\kappa_A(I) \ge \kappa'_A(\abs*{I})
\end{equation*}
\end{enumerate}
@ -330,13 +334,13 @@ Ein planarer Graph kann so auf einer Kugel dargestellt werden, dass sich keine s
\begin{satz}
Falls $P \neq NP$, dann gibt es keine Konstante $n\in \naturals$, sodass es einen polynomiellen Approximationsalgorithmus $A$ für \rucksack{} gibt mit
\begin{equation*}
\abs{A(I) - \opt(I)} \le k
\abs*{A(I) - \opt(I)} \le k
\end{equation*}
\end{satz}
\begin{proof}[Widerspruchsbeweis]
Unter der Annahme, dass $A$ und $k$ existieren, kann \rucksack in Polynomzeit exakt gelöst werden, was $P = NP$ zur Folge hat:
Unter der Annahme, dass $A$ und $k$ existieren, kann \rucksack{} in Polynomzeit exakt gelöst werden, was $P = NP$ zur Folge hat:
Konstruiere aus einer Instanz $I = \encoded{ W, \vol, p, B \rangle$ eine neue Probleminstanz $I' = \langle W, \vol, p', B}$ mit $p'(w) = (k + 1) \cdot p(w)$.
Konstruiere aus einer Instanz $I = \encoded*{ W, \vol, p, B }$ eine neue Probleminstanz $I' = \encoded*{W, \vol, p', B}$ mit $p'(w) = (k + 1) \cdot p(w)$.
Eine zulässige Lösung $\sigma$ für $I$ ist auch eine zulässige Lösung für $I'$. Gleiches gilt aufgrund der Monotonie der Multiplikation auch für optimale Lösungen.
Durch die Multiplikation aller Preise mit $k + 1$ beträgt die \enquote{Lücke} zwischen den optimalen und der ersten nicht-optimalen Lösung für $I'$ mindestens $k + 1$.
@ -350,11 +354,11 @@ Die hierbei verwendete Vorgehensweise einer Selbstreduktion sowie das \enquote{A
\begin{enumerate}
\item $A$ hat bei Eingabe $I$ eine relative Güte von
\begin{equation*}
\rho_A(I) = \max\left\{\frac{A(I)}{\opt(I)}, \frac{\opt(I)}{A(i)}\right\} \ge 1
\rho_A(I) = \max\left\{\frac{A(I)}{\opt(I)}, \frac{\opt(I)}{A(I)}\right\} \ge 1
\end{equation*}
\item Die relative Worst-Case-Güte von $A$ ist die Funktion
\begin{equation*}
\rho_A^\mathrm{wc}(n) = \max\left\{\rho_A(I)\mid I \in \domain, \abs{i}\le n\right\}
\rho_A^\mathrm{wc}(n) = \max\left\{\rho_A(I)\mid I \in \domain, \abs*{I}\le n\right\}
\end{equation*}
\item $A$ garantiert eine relative Güte von $\rho_A : \naturals \mapsto \naturals$, falls für alle $n \in \naturals$ gilt
\begin{equation*}
@ -362,9 +366,9 @@ Die hierbei verwendete Vorgehensweise einer Selbstreduktion sowie das \enquote{A
\end{equation*}
\item $A$ macht für die Eingabe $I \in \domain$ einen relativen Fehler von
\begin{equation*}
\varepsilon_A(I) = \frac{\abs{A(I) - \opt(I)}}{\opt(I)} = \abs{\frac{A(I)}{\opt(I)} - 1}
\varepsilon_A(I) = \frac{\abs*{A(I) - \opt(I)}}{\opt(I)} = \abs*{\frac{A(I)}{\opt(I)} - 1}
\end{equation*}
\item $A$ garantiert einen relativen Fehler von $\varepsilon_A(n)$, falls für alle $\{I\mid I \in \domain, \abs{I}\le n\}$ gilt
\item $A$ garantiert einen relativen Fehler von $\varepsilon_A(n)$, falls für alle $\{I\mid I \in \domain, \abs*{I}\le n\}$ gilt
\begin{equation*}
\varepsilon_A(I) \le \varepsilon_A(n)
\end{equation*}
@ -375,7 +379,7 @@ Die hierbei verwendete Vorgehensweise einer Selbstreduktion sowie das \enquote{A
Eine unendlich große Menge $\domain' \subseteq \domain$ heißt $\rho'_A(n)$-Zeugenmenge gegen $A$, wenn für alle $I \in \domain'$ gilt
\begin{equation*}
\rho_A(I) \ge \rho'_A(\abs{I})
\rho_A(I) \ge \rho'_A(\abs*{I})
\end{equation*}
\end{enumerate}
@ -390,19 +394,19 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
\begin{enumerate}
\item bei einem Minimierungsproblem gilt
\begin{equation*}
\frac{1}{\rho_A(\abs{I})} \cdot A(I) \le \opt(I) \le A(I) \le \rho_A(\abs{I})\cdot \opt(I)
\frac{1}{\rho_A(\abs*{I})} \cdot A(I) \le \opt(I) \le A(I) \le \rho_A(\abs*{I})\cdot \opt(I)
\end{equation*}
\item bei einem Maximierungsproblem gilt
\begin{equation*}
\frac{1}{\rho_A(\abs{I})} \cdot \opt(I) \le A(I) \le \opt(I) \le \rho_A(\abs{I}) \cdot A(I)
\frac{1}{\rho_A(\abs*{I})} \cdot \opt(I) \le A(I) \le \opt(I) \le \rho_A(\abs*{I}) \cdot A(I)
\end{equation*}
\item bei beiden Problemtypen mit der Beziehung
\begin{equation*}
\abs{A(I) - \opt(I)} \le \varepsilon_A(\abs{I}) \cdot \opt(I)
\abs*{A(I) - \opt(I)} \le \varepsilon_A(\abs*{I}) \cdot \opt(I)
\end{equation*}
gilt
\begin{equation*}
(1 - \varepsilon_A(\abs{I})) \cdot \opt(I) \le A(I) \le (1 + \varepsilon_A(\abs{I})) \cdot \opt(I)
(1 - \varepsilon_A(\abs*{I})) \cdot \opt(I) \le A(I) \le (1 + \varepsilon_A(\abs*{I})) \cdot \opt(I)
\end{equation*}
\end{enumerate}
@ -411,9 +415,9 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
Wenn es einen polynomiellen Approximationsalgorithmus $A$ mit konstanter relativer Gütegarantie $r$ für das volle \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 \naturals$ kann \hamilton{} auf das volle \tsp reduziert werden. Es wird also $\hamilton{} \le \mathrm{p} \tsp[r]$ für alle $r$ gezeigt:
Durch Benutzung von $A$ mit beliebiger konstanter relativer Gütegarantie $r \in \naturals$ kann \hamilton{} auf das volle \tsp{} reduziert werden. Es wird also $\hamilton{} \le_\mathrm{p} \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 = \encoded{ K_n, c}$ für \tsp erzeugt. $c$ wird wie folgt konstruiert:
Sei der Graph $G = (V, E)$ mit $n = \abs*{V}$, gegeben. Dazu wird nun passend eine Probleminstanz $I_G = \encoded*{ K_n, c}$ für \tsp{} erzeugt. $c$ wird wie folgt konstruiert:
\begin{equation*}
c(u,v) = \begin{cases*}
1 & falls $\{u, v\} \in E$ (\enquote{kurze} Kante)\\
@ -435,7 +439,7 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
\begin{algorithmic}[1]
\State konstruiere $I_G$
\State approximiere mit $A$ eine kürzeste Rundreise $A(I_G)$
\If{$A(I_G) > r \cdot \abs{V}$}
\If{$A(I_G) > r \cdot \abs*{V}$}
\State \Return $G \notin \hamilton{}$
\Else
\State \Return $G \in \hamilton{}$
@ -443,7 +447,7 @@ Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus eine
\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}.
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} (in Verbindung mit \problem{Partition}).
\section{Approximationsschemata}
Während die Ergebnisse von Approximationsalgorithmen mit absoluter oder relativer Gütegarantie nur durch eine Modifikation oder Wechsel des Algorithmus verbessert werden können, ist es manchmal gewünscht, im Gegenzug für eine verlängerte Laufzeit eine bessere Güte zu erreichen. Dafür sind sogenannte Approximationsschemata geeignet.
@ -451,28 +455,28 @@ Während die Ergebnisse von Approximationsalgorithmen mit absoluter oder relativ
\subsection{Definition}
Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\Pi$, der eine Probleminstanz $I$ von $\Pi$ und ein $0 < \varepsilon < 1$ bekommt.
\begin{enumerate}
\item $A$ ist ein polynomielles Approximationsschema (PAS) für $\Pi$, wenn $A$ zu jedem $I$ und für jedes $\varepsilon$ in Zeit $\bigO(\poly(\abs{I}))$ eine zulässige Lösung zu $I$ mit relativem Fehler $\varepsilon_A(I, \varepsilon) \le \varepsilon$ berechnet.
\item $A$ ist ein streng polynomielles Approximationsschema (FPAS), wenn $A$ ein PAS mit Laufzeit $\bigO(poly\left(\abs{I}, \frac{1}{\varepsilon}\right))$ ist.
\item $A$ ist ein polynomielles Approximationsschema (PAS) für $\Pi$, wenn $A$ zu jedem $I$ und für jedes $\varepsilon$ in Zeit $\bigO(\poly(\abs*{I}))$ eine zulässige Lösung zu $I$ mit relativem Fehler $\varepsilon_A(I, \varepsilon) \le \varepsilon$ berechnet.
\item $A$ ist ein streng polynomielles Approximationsschema (FPAS), wenn $A$ ein PAS mit Laufzeit $\bigO\left(poly\left(\abs*{I}, \frac{1}{\varepsilon}\right)\right)$ ist.
\end{enumerate}
\begin{satz}[Umwandlung eines (F)PAS in einen exakten Algorithmus]
Sei $A$ ein (F)PAS und zu jeder Eingabe $I$ $Z(I)$ eine obere Schranke. Sei $\varepsilon^* = \frac{1}{Z(I) + 1}$, dann ist $A(I, \varepsilon^*) = \opt(I)$. Sofern $A$ ein FPAS ist, liegt die Laufzeit in $\bigO(\poly(\abs{I}, Z(I)))$.
Sei $A$ ein (F)PAS und zu jeder Eingabe $I$ $Z(I)$ eine obere Schranke. Sei $\varepsilon^* = \frac{1}{Z(I) + 1}$, dann ist $A(I, \varepsilon^*) = \opt(I)$. Sofern $A$ ein FPAS ist, liegt die Laufzeit in $\bigO(\poly(\abs*{I}, Z(I)))$.
\end{satz}
\begin{proof}
Starte $A$ mit Eingabe $I$ und $\varepsilon^*$. Es wird eine zulässige Lösung zu $I$ gefunden, für ihren relativen Fehler gilt
\begin{equation*}
\varepsilon_a(I, \varepsilon^*) = \frac{\abs{\opt(I) - A(I, \varepsilon^*)}}{\opt(I)} \le \varepsilon^*
\varepsilon_a(I, \varepsilon^*) = \frac{\abs*{\opt(I) - A(I, \varepsilon^*)}}{\opt(I)} \le \varepsilon^*
\end{equation*}
Weil $\opt(I) \le Z(I)$ beschränkt ist, folgt für die Abweichung
\begin{equation*}
\abs{\opt(I) - A(I, \varepsilon^*)} \le \varepsilon^* \cdot \opt(I) = \frac{\opt(I)}{Z(I) + 1} < 1
\abs*{\opt(I) - A(I, \varepsilon^*)} \le \varepsilon^* \cdot \opt(I) = \frac{\opt(I)}{Z(I) + 1} < 1
\end{equation*}
Da die Werte zulässiger Lösungen immer ganzzahlig sind, folgt $\abs{\opt(I) - A(I, \varepsilon^*)} = 0$, damit also die Optimalität von $A(I, \varepsilon^*)$.
Da die Werte zulässiger Lösungen immer ganzzahlig sind, folgt $\abs*{\opt(I) - A(I, \varepsilon^*)} = 0$, damit also die Optimalität von $A(I, \varepsilon^*)$.
\end{proof}
\subsection{Unmöglichkeitsergebnisse für Approximationschemata}
\begin{satz}
Sei $\Pi$ ein Optimierungsproblem. Wenn es ein Polynom $q(\cdot, \cdot)$ gibt, sodass $\forall I \in \domain: \opt(I) \le q(\abs{I}, \maxnr(I))$ gilt, dann folgt aus der Existenz eines FPAS für $\Pi$, dass ein pseudo-polynomieller exakter Algorithmus für $\Pi$ existiert.
Sei $\Pi$ ein Optimierungsproblem. Wenn es ein Polynom $q(\cdot, \cdot)$ gibt, sodass $\forall I \in \domain: \opt(I) \le q(\abs*{I}, \maxnr(I))$ gilt, dann folgt aus der Existenz eines FPAS für $\Pi$, dass ein pseudo-polynomieller exakter Algorithmus für $\Pi$ existiert.
\end{satz}
\begin{satz}
Wenn es für eine Optimierungsvariante eines stark NP-vollständigen Problems ein FPAS gibt, dann folgt $P = NP$.
@ -494,7 +498,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{satz}
Sei $G$ ein knoten-$k$-färbbarer Graph, dann ist
\begin{equation*}
\greedyis(G) \ge \left\lceil \log_k\left(\frac{\abs{V}}{3}\right) \right\rceil
\greedyis(G) \ge \left\lceil \log_k\left(\frac{\abs*{V}}{3}\right) \right\rceil
\end{equation*}
\end{satz}
@ -503,17 +507,17 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{lemma}
Sei $G$ ein knoten-$k$-färbbarer Graph, dann gilt:
\begin{equation*}
\exists u \in V: \degree_G(u) \le \left\lfloor \left(1 - \frac{1}{k}\right) \cdot \abs{V}\right\rfloor
\exists u \in V: \degree_G(u) \le \left\lfloor \left(1 - \frac{1}{k}\right) \cdot \abs*{V}\right\rfloor
\end{equation*}
\end{lemma}
\begin{proof}
Da $G$ mit $k$ Farben gefärbt ist, gibt es $k$ Mengen $U_i$ an Knoten, die jeweils mit der gleichen Farbe $i$ gefärbt sind.
Es muss nach einem Durchschnitsargument eine Menge $U_i$ mit $\abs{U_i} \geq \left\lceil \frac{1}{k}\cdot \abs{V}\right\rceil$ geben. Jeder der Knoten $u$ in $U_i$ kann maximal mit allen Knoten aus $V \setminus U_i$ verbunden sein. Es folgt also
Es muss nach einem Durchschnitsargument eine Menge $U_i$ mit $\abs*{U_i} \geq \left\lceil \frac{1}{k}\cdot \abs*{V}\right\rceil$ geben. Jeder der Knoten $u$ in $U_i$ kann maximal mit allen Knoten aus $V \setminus U_i$ verbunden sein. Es folgt also
\begin{equation*}
\degree_G(u) \leq \abs{V} - \abs{U_i} \le \abs{V} - \left\lceil \frac{1}{k}\cdot \abs{V}\right\rceil = \left\lfloor \left(1 - \frac{1}{k}\right) \cdot \abs{V}\right\rfloor
\degree_G(u) \leq \abs*{V} - \abs*{U_i} \le \abs*{V} - \left\lceil \frac{1}{k}\cdot \abs*{V}\right\rceil = \left\lfloor \left(1 - \frac{1}{k}\right) \cdot \abs*{V}\right\rfloor
\end{equation*}
\end{proof}
Zur Vereinfachung gelte $n = \abs{V}$ und $n_t = \abs{V^{(t)}}$. Es kann $k \ge 2$ angenommen werden.
Zur Vereinfachung gelte $n = \abs*{V}$ und $n_t = \abs*{V^{(t)}}$. Es kann $k \ge 2$ angenommen werden.
Mit dem Hilfslemma ergibt sich für die Anzahl der Knoten folgende Rekursion:
\begin{align*}
n_0 &= n\\
@ -523,7 +527,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{equation*}
n_t \ge \frac{n}{k^t} - \underbrace{\frac{k}{k - 1} \cdot \left(1 - \frac{1}{k^t}\right)}_{\le 2\, \text{für $k\ge 2$}} \ge \frac{n}{k^t} - 2
\end{equation*}
aufgelöst werden. Solange $n_t \ge 1$ gilt, wird ein neuer Knoten nach $U$ gelegt. Durch Umformen obiger Ungleichung lässt sich dies für $t \ge \log_k\left(\frac{n}{3}\right)$ garantieren. Es folgt also $\abs{U} \ge \left\lceil\log_k\left(\frac{n}{3}\right)\right\rceil$.
aufgelöst werden. Solange $n_t \ge 1$ gilt, wird ein neuer Knoten nach $U$ gelegt. Durch Umformen obiger Ungleichung lässt sich dies für $t \ge \log_k\left(\frac{n}{3}\right)$ garantieren. Es folgt also $\abs*{U} \ge \left\lceil\log_k\left(\frac{n}{3}\right)\right\rceil$.
\end{proof}
\section{Knotenfärbungsalgorithmen}
@ -532,14 +536,14 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\ForAll{$u_i \in V$}
\State $c_\vertices(u_i) = \infty$
\EndFor
\ForAll{$i \in \{1,\dots, \abs{V}\}$}
\ForAll{$i \in \{1,\dots, \abs*{V}\}$}
\State $c_\vertices(u_i) = \min\{\naturals\setminus\{c_\vertices(\Gamma(u_i))\}\}$
\EndFor
\State\Return $c_\vertices$
\end{algorithmic}
\begin{satz}
\greedycol{} berechnet in Zeit $\bigO(\abs{V} + \abs{E})$ eine Knotenfärbung aus höchstens $\Delta(G) + 1$ Farben.
\greedycol{} berechnet in Zeit $\bigO(\abs*{V} + \abs*{E})$ eine Knotenfärbung aus höchstens $\Delta(G) + 1$ Farben.
\end{satz}
\begin{proof}
Da ein Knoten $u$ maximal $\Delta(G)$ viele Nachbarn haben kann, muss in $[1,\dots,\Delta(G)+1]$ noch mindestens eine Farbe frei sein.
@ -550,11 +554,11 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{equation*}
\kappa_\greedycol(G) = \greedycol(G) - \opt(G) \le \Delta(G) + 1 - 2 = \Delta(G) - 1
\end{equation*}
, weil die untere Schranke $\opt(G)\ge 2$ für Graphen mit $\abs{V} \ge 2$ gilt.
, weil die untere Schranke $\opt(G)\ge 2$ für Graphen mit $\abs*{V} \ge 2$ gilt.
\end{satz}
\begin{satz}
\greedycol{} liefert eine Knotenfärbung aus höchstens $\left\lceil \sqrt{2\cdot \abs{E}}\right\rceil$.
\greedycol{} liefert eine Knotenfärbung aus höchstens $\left\lceil \sqrt{2\cdot \abs*{E}}\right\rceil$.
\end{satz}
\begin{zeuge}
@ -563,15 +567,15 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\subsection{\greedyplanarcol}
\begin{algorithmic}[1]
\If{$G$ ist knoten-2-färbbar}
\State \Return berechne Knoten-2-Färbung
\If{$G$ ist knoten-2-färbbar}\Comment{$\in P$}
\State \Return berechne Knoten-2-Färbung \Comment{$\in P$}
\EndIf
\State wähle Knoten $u$ mit höchstem Grad $\Gamma(u)$ \Comment{$\Gamma(u) \le 5$}
\State entferne $u$ und seine $\Gamma(u) \le 5$ Kanten aus $G$
\ForAll{übrige Teilgraphen $G_i$} \Comment{$1 \le i \le \Gamma(u)$}
\State $c_\vertices = c_\vertices \cup \greedyplanarcol(G_i)$
\EndFor
\State $c_\vertices(u) =$ kleinste der freien Farbe aus $\{1, \dots, 6\}$
\State $c_\vertices(u) =$ kleinste der freien Farbe aus $\{1, \dots, \gamma(u) + 1\}$
\State \Return $c_\vertices$
\end{algorithmic}
\begin{satz}
@ -580,7 +584,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{proof}
Ist $G$ knoten-2-färbbar, so liefert \greedyplanarcol{} auch eine Knoten-2-Färbung zurück. Es gilt also im Folgenden $\opt(G) \ge 3$ und damit
\begin{equation*}
\kappa_\greedyplanarcol(n) = \abs{\greedyplanarcol(G) - \opt(G)} \le \abs{6 - 3} = 3
\kappa_\greedyplanarcol(n) = \abs*{\greedyplanarcol(G) - \opt(G)} \le \abs*{6 - 3} = 3
\end{equation*}
\end{proof}
@ -598,10 +602,10 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\end{algorithmic}
\begin{satz}
Für einen knoten-$k$-färbbaren Graph $G = (V, E)$ mit $n = \abs{V}$ gibt \greedycoltwo{} eine Färbung mit höchstens $\frac{3n}{\log_k \left(\frac{n}{16}\right)}$. Die relative Gütegarantie liegt als in $\bigO\left(\frac{n}{\log n}\right)$.
Für einen knoten-$k$-färbbaren Graph $G = (V, E)$ mit $n = \abs*{V}$ gibt \greedycoltwo{} eine Färbung mit höchstens $\frac{3n}{\log_k \left(\frac{n}{16}\right)}$. Die relative Gütegarantie liegt als in $\bigO\left(\frac{n}{\log n}\right)$.
\end{satz}
\begin{proof}
Zur Vereinfachung bezeichne $n_t = \abs{V^{(t)}}$. Aus der Analyse von \greedyis{} folgt $\abs{U_t} \ge \log_k\left(\frac{n_t}{3}\right)$. Es ergibt sich die Rekursion
Zur Vereinfachung bezeichne $n_t = \abs*{V^{(t)}}$. Aus der Analyse von \greedyis{} folgt $\abs*{U_t} \ge \log_k\left(\frac{n_t}{3}\right)$. Es ergibt sich die Rekursion
\begin{align*}
n_1 &= n\\
n_{t + 1} &\le n_t - \log_k\left(\frac{n_t}{3}\right)
@ -639,7 +643,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
Für eine Knotenfärbung werden mindestens $\Delta(G)$ Farben benötigt, also folgt
\begin{equation*}
\kappa_\greedycoledge = \abs{\greedycoledge(2) - \opt(G)} \leq \abs{2\cdot \Delta(G) - 1 - \Delta(G)} = \Delta(G) - 1
\kappa_\greedycoledge = \abs*{\greedycoledge(2) - \opt(G)} \leq \abs*{2\cdot \Delta(G) - 1 - \Delta(G)} = \Delta(G) - 1
\end{equation*}
\end{proof}
@ -658,7 +662,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\greedyvc{} liefert eine Knotenüberdeckung mit relativer Güte $2$.
\end{satz}
\begin{proof}
Wenn \greedyvc{} zwei Knoten hinzufügt, könnte es auch ausreichen, nur eine einzelne Kante aufzunehmen.
Wenn \greedyvc{} zwei Knoten hinzufügt, könnte es auch ausreichen, nur eine einzelne Kante aufzunehmen. Es werden außerdem nie mehr als 2 Knoten pro Kante aufgenommen.
\end{proof}
\section{\nextfit{} für \binpacking}
@ -675,20 +679,20 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\State \Return $(B_1,\dots,B_k)$
\end{algorithmic}
\begin{satz}
\nextfit{} approximiert \binpacking mit relativer Gütegarantie $\rho_\nextfit = 2$.
\nextfit{} approximiert \binpacking{} mit relativer Gütegarantie $\rho_\nextfit = 2$.
\end{satz}
\section{Christofides' Algorithmus \algo{CH} für $\deltatsp$}
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs*{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
Als Multi-Graph wird ein Graph bezeichnet, der um mehrere Kanten zwischen den gleichen Knoten erweitert wurde.
Wird in einem Pfad jede Kante des (Multi-)Graph genau einmal besucht, so spricht man von einem Euler-Pfad. Bildet der Pfad einen Kreis, so nennt man ihn Euler-Kreis oder Euler-Tour. Haben alle Knoten von $G$ geraden Grad, so existiert eine Euler-Tour in $G$. Diese lässt sich in $\bigO(\abs{V} + \abs{E})$ berechnen.
Wird in einem Pfad jede Kante des (Multi-)Graph genau einmal besucht, so spricht man von einem Euler-Pfad. Bildet der Pfad einen Kreis, so nennt man ihn Euler-Kreis oder Euler-Tour. Haben alle Knoten von $G$ geraden Grad, so existiert eine Euler-Tour in $G$. Diese lässt sich in $\bigO(\abs*{V} + \abs*{E})$ berechnen.
Der Algorithmus von Christofides (\algo{CH}) geht wie folgt vor:
\begin{algorithmic}[1]
\State berechne einen minimalen Spannbaum $T_\ch$ von $I = \encoded{ K_n, c}$
\State $S = \{v \in T_\ch \mid \degree_{T_\ch}(v)\, \text{ungerade}\}$ \Comment{$\abs{S}$ ist gerade}
\State berechne einen minimalen Spannbaum $T_\ch$ von $I = \encoded*{ K_n, c}$
\State $S = \{v \in T_\ch \mid \degree_{T_\ch}(v)\, \text{ungerade}\}$ \Comment{$\abs*{S}$ ist gerade}
\State berechne auf dem durch $S$ induzierten Teilgraphen des $K_n$ ein leichtestes Matching $M_\ch$
\State berechne eine Euler-Tour $E = (u_1, u_2, \dots)$ auf $T_\ch \cupdot M_\ch$ \Comment{$T_\ch \cupdot M_\ch$ kann Multi-Graph sein, alle Knoten haben geraden Grad}
\State entferne Wiederholungen von Knoten in $E$, sodass man $E'$ erhält
@ -707,17 +711,17 @@ Der Algorithmus von Christofides (\algo{CH}) geht wie folgt vor:
\end{equation*}
\item In beliebigen Bäumen ist die Anzahl der Knoten mit ungeradem Grad gerade.
\item Zur Vereinfachung werden die Knoten so umbenannt, dass $R^* = (u_1, u_2, \dots, u_n, u_1)$ ist.
$S$ kann dann als $S = \{u_{i_1}, \dots, u_{i_{\abs{S}}}\}$ mit $i_1 < \dots < i_{\abs{S}}$ geschrieben werden.
$S$ kann dann als $S = \{u_{i_1}, \dots, u_{i_{\abs*{S}}}\}$ mit $i_1 < \dots < i_{\abs*{S}}$ geschrieben werden.
Aus $S$ kann ein Kreis $H = (u_{i_1}, \dots, u_{i_{\abs{S}}}, u_{i_1})$ gebildet werden. Durch die Dreiecksungleichung ($\abs{H} \le n$ und jede \enquote{Abkürzung} ist maximal gleich lang wie der Weg in $R^*$) gilt $c(H) \le c(R^*)$.
Aus $S$ kann ein Kreis $H = (u_{i_1}, \dots, u_{i_{\abs*{S}}}, u_{i_1})$ gebildet werden. Durch die Dreiecksungleichung ($\abs*{H} \le n$ und jede \enquote{Abkürzung} ist maximal gleich lang wie der Weg in $R^*$) gilt $c(H) \le c(R^*)$.
Es können zwei perfekte Matching $M_1$ und $M_2$ auf $H$ berechnet werden, denn $\abs{S}$ ist gerade. Weil $M_\ch$ minimal ist, folgt o.B.d.A. mit $c(M_1) \le c(M_2)$ die Aussage
Es können zwei perfekte Matching $M_1$ und $M_2$ auf $H$ berechnet werden, denn $\abs*{S}$ ist gerade. Weil $M_\ch$ minimal ist, folgt o.B.d.A. mit $c(M_1) \le c(M_2)$ die Aussage
\begin{equation*}
c(M_\ch) \leq c(M_1) \le \frac{1}{2} \cdot (c(M_1) + c(M_2)) = \frac{1}{2} \cdot c(H) \le \frac{1}{2} \cdot c(R^*)
\end{equation*}
\item Da jeder Knoten in $T_\ch \cupdot M_\ch$ geraden Grad hat, kann eine Euler-Tour $E$ berechnet werden. Weil diese nur Kanten aus $T_\ch \cupdot M_\ch$ benutzt, kann ihre Länge mit den vorherigen Ergebnissen wie folgt beschränkt werden:
\begin{equation*}
c(E) = c(T_\ch \cupdot M_\ch) \le \left(1 - \frac{1}{n}\right)\cdot c(R^*) + \frac{1}{n}\cdot c(R^*) = \left(\frac{3}{2} - \frac{1}{n}\right) \cdot \opt(I)
c(E) = c(T_\ch \cupdot M_\ch) \le \left(1 - \frac{1}{n}\right)\cdot c(R^*) + \frac{1}{2}\cdot c(R^*) = \left(\frac{3}{2} - \frac{1}{n}\right) \cdot \opt(I)
\end{equation*}
\item Durch die Dreiecksungleichung kann $E'$ nicht länger als $E$ werden.
\end{enumerate}
@ -728,7 +732,7 @@ Der Algorithmus von Christofides (\algo{CH}) geht wie folgt vor:
\section{Approximationsschema für \rucksack}
\subsection{\dynrucksack{} zur exakten Lösung von \rucksack}
Für eine Instanz $I = \encoded{ W, \vol, p, B}$ kann direkt eine obere und eine untere Grenze für den maximalen Wert der Füllung angegeben werden:
Für eine Instanz $I = \encoded*{ W, \vol, p, B}$ kann direkt eine obere und eine untere Grenze für den maximalen Wert der Füllung angegeben werden:
\begin{equation*}
P_{\max} \le \opt(I) \le n \cdot P_{\max}
\end{equation*}
@ -752,7 +756,7 @@ Der Algorithmus \dynrucksack{} setzt diese durch dynamische Programmierung um:
\State $\alpha = 0$
\Repeat
\State $\alpha = \alpha + 1$
\For{$i \in \{1,\dots,n\}$}
\For{$j \in \{1,\dots,n\}$}
\State $F_j(\alpha) = \min\{F_{j-1}(\alpha - p_j) + \vol(j), F_{j-1}(\alpha)\}$
\EndFor
\Until{$B < F_n(\alpha)$}
@ -763,17 +767,17 @@ Der Algorithmus \dynrucksack{} setzt diese durch dynamische Programmierung um:
\dynrucksack{} berechnet zur Eingabe $I$ den Wert $\opt(I)$ in Zeit $\bigO(n \cdot \opt(I)) = \bigO(n^2 \cdot P_{\max})$.
\end{satz}
\subsection{\algo{AR\textsubscript{$k$}} zur Approximation mit konstantem relativen Fehler}
Der Algorithmus \algo{AR\textsubscript{$k$}} rechnet mit um den Faktor $k$ reduzierten, gerundeten Preisen:
\subsection{$\ark$ zur Approximation mit konstantem relativen Fehler}
Der Algorithmus $\ark$ rechnet mit um den Faktor $k$ reduzierten, gerundeten Preisen:
\begin{algorithmic}[1]
\State $p_\red(w) = \left\lfloor\frac{p(w)}{k}\right\rfloor$
\State $I_\red = \encoded{ W, \vol, p_\red, B }$
\State $I_\red = \encoded*{ W, \vol, p_\red, B }$
\State $R_k = \Call{\dynrucksack{}}{I_\red}$
\State \Return $R_k$
\end{algorithmic}
\begin{satz}
\algo{AR\textsubscript{$k$}} macht bei Eingabe $I$ einen relativen Fehler von $\varepsilon_{\algo{AR\textsubscript{$k$}}} \le \frac{k \cdot n}{P_{\max}}$ und hat eine Laufzeit von $\bigO(n^2 \cdot \frac{P_{\max}}{k})$.
$\ark$ macht bei Eingabe $I$ einen relativen Fehler von $\varepsilon_{\ark} \le \frac{k \cdot n}{P_{\max}}$ und hat eine Laufzeit von $\bigO(n^2 \cdot \frac{P_{\max}}{k})$.
\end{satz}
\begin{proof}
Sei $R^*$ die Indexmenge einer optimalen Rucksackfüllung für $I$ und $R_k$ die berechnete Indexmenge der Lösung des um $k$ reduzierten Problems $I_\red$.
@ -781,24 +785,24 @@ Der Algorithmus \algo{AR\textsubscript{$k$}} rechnet mit um den Faktor $k$ reduz
Da $R_k$ eine optimale Lösung für $I_\red$ ist, gilt $\opt(I_\red) \geq \sum_{j\in R^*}\left\lfloor\frac{p_j}{k}\right\rfloor$. Weiterhin ist $R_k$ eine zulässige Lösung für $I$.
Es gilt dann:
\begin{align*}
\algo{AR}_k(I) &= p(R_k) \ge k \cdot \sum_{j\in R_k} \left\lfloor \frac{p_j}{k}\right\rfloor = k \cdot \opt(I_\red)\\
&\ge k\cdot \sum_{j\in R^*} \left\lfloor \frac{p_j}{k}\right\rfloor \ge k \cdot \sum_{j\in R^*}\left(\frac{p_j}{k} - 1\right) = \sum_{j\in R^*}\left(p_j - k\right) = p(R^*) - k \cdot \abs{R^*}\\
&= \opt(I) - k \cdot \abs{R^*} \ge \opt(I) - k \cdot n
\ark(I) &= p(R_k) \ge k \cdot \sum_{j\in R_k} \left\lfloor \frac{p_j}{k}\right\rfloor = k \cdot \opt(I_\red)\\
&\ge k\cdot \sum_{j\in R^*} \left\lfloor \frac{p_j}{k}\right\rfloor \ge k \cdot \sum_{j\in R^*}\left(\frac{p_j}{k} - 1\right) = \sum_{j\in R^*}\left(p_j - k\right) = p(R^*) - k \cdot \abs*{R^*}\\
&= \opt(I) - k \cdot \abs*{R^*} \ge \opt(I) - k \cdot n
\end{align*}
Damit folgt für den relativen Fehler die zu zeigende Aussage
\begin{equation*}
\varepsilon_{\algo{AR}_k} = \frac{\abs{\algo{AR}_k(I) - \opt(I)}}{\opt(I)} \le \frac{k\cdot n}{\opt(I)} \le \frac{k\cdot n}{P_{\max}}
\varepsilon_{\ark} = \frac{\abs*{\ark(I) - \opt(I)}}{\opt(I)} \le \frac{k\cdot n}{\opt(I)} \le \frac{k\cdot n}{P_{\max}}
\end{equation*}
\end{proof}
\subsection{\fpasrucksack{} zur Umwandlung in ein streng polynomielles Approximationsschema}
Um ein FPAS zu erreichen, muss gezeigt werden, dass jedes $\varepsilon \in ]0, 1[$ als relativer Fehler erreichbar ist.
Der Algorithmus \fpasrucksack{} verwendet dazu \algo{AR\textsubscript{$k$}} und konstruiert ein passendes $k$:
Der Algorithmus \fpasrucksack{} verwendet dazu $\ark$ und konstruiert ein passendes $k$:
\begin{algorithmic}[1]
\State bestimme $n$ und $P_{\max}$ aus der Eingabe $I$
\State $k = \varepsilon \cdot \frac{P_{\max}}{n}$
\State \Return \Call{\algo{AR\textsubscript{$k$}}}{$I$}
\State \Return \Call{$\ark$}{$I$}
\end{algorithmic}
\begin{satz}
@ -814,7 +818,7 @@ Der Algorithmus \fpasrucksack{} verwendet dazu \algo{AR\textsubscript{$k$}} und
\end{equation*}
\end{satz}
\begin{proof}
TODO
Wenn eine Belegung aus lediglich o.B.d.A. \true{} weniger als die Hälfte der Klauseln erfüllt, muss die Belegung aus lediglich \false{} den Rest, also mehr als die Häflte erfüllen.
\end{proof}
Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, in dem eine Belegung für jede Variable stochastisch unabhängig durchgeführt wird:
@ -864,7 +868,7 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus,
Sei $2^k > m$, dann ist jede boolesche $(n,m)$-Formel $\Phi$ in KNF, in der jede Klausel mindestens $k$ Literale hat, erfüllbar.
\end{satz}
\begin{proof}
Eingesetzt in die vorherige Aussage, erhält man dann $\left(1 - \frac{1}{2^k}\right) \cdot m = m - \overbrace{\frac{m}{2^k}}^{< 1}$. Aus einem Durchschnittsargument folgt auch hier, dass es eine Belegung $b$ mit $m - 1 < \wahr(b, \Phi) \le m$ geben muss, wegen der Ganzzahligkeit von $\wahr$ werden also alle $m$ Klauseln erfüllt.
Eingesetzt in die vorherige Aussage, erhält man dann $\left(1 - \frac{1}{2^k}\right) \cdot m = m - \overbrace{\frac{m}{2^k}}^{< 1}$ = m. Aus einem Durchschnittsargument folgt auch hier, dass es eine Belegung $b$ mit $\wahr(b, \Phi) = m$ geben muss.
\end{proof}
\begin{satz}
@ -880,7 +884,7 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus,
\end{satz}
\subsection{Arithmetisierung und Randomized Rounding mit Algorithmus $B$}
\maxsat kann auch als Lineares Programm (LP) ausgedrückt werden.
\maxsat{} kann auch als Lineares Programm (LP) ausgedrückt werden.
Es bezeichnen im Folgenden $S_j^{\oplus}$ die Menge der Variablen, die in $C_j$ nicht negiert vorkommen, und $S_j^{\ominus}$ die Menge der Variablen, die in $C_j$ negiert vorkommen.
Für jede boolesche Variable $x_i$ wird eine 0-1-Variable $\hat{x}_i$ eingeführt; für jede Klausel $C_j$ eine 0-1-Variable $\hat{Z}_j$.
Es ergibt sich also das folgende ganzahlige lineare Programm (ILP) $B$ für \maxsat:
@ -898,8 +902,8 @@ Durch die Relaxierung entsteht die folgende Beziehung (exemplarisch für ein Max
\end{equation*}
Im Allgemeinen ist die rationale Lösung $\sigma_\rel$ von $B_\rel$ also keine zulässige Lösung für $B$.
Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \false{} oder \true{}) gerundet müssen.
Eine Möglichkeit hierzu stellt der durch die stochastische Funktion $\phi: \left[0, 1\right] \mapsto \left[0, 1\right]$ parametrisierte Algorithmus $\algo{RandomizedRounding}[\pi]$ dar:
Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \false{} oder \true{}) gerundet werden.
Eine Möglichkeit hierzu stellt der durch die stochastische Funktion $\pi: \left[0, 1\right] \mapsto \left[0, 1\right]$ parametrisierte Algorithmus $\algo{RandomizedRounding}[\pi]$ dar:
\begin{algorithmic}[1]
\For{$i \in \{1,\dots,n\}$}
\State $x_i = \begin{cases*}
@ -932,7 +936,7 @@ Damit kann dann der Algorithmus $B$ gebildet werden, der \maxsat{} approximiert:
\begin{align*}
P&\left[C_j\,\text{wird durch den Algorithmus $B$ erfüllt}\right] = 1- \left[\Pi_{x_i\in S_j^{\oplus}} \left(1 - \hat{x}_i\right)\right] \cdot \left[\Pi_{x_i\in S_j^{\ominus}} \hat{x}_i\right]\\
&\ge 1 - \left(\frac{\sum_{x_i \in S_j^{\oplus}}\left(1 - \hat{x}_i\right) + \sum_{x_i \in S_j^{\ominus}}\hat{x}_i}{k_j}\right)^{k_j}\\
&= 1 - \left(\frac{\abs{S_j^{\oplus}} - \sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \abs{S_j^{\ominus}} - \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)}{k_j}\right)^{k_j}\\
&= 1 - \left(\frac{\abs*{S_j^{\oplus}} - \sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \abs*{S_j^{\ominus}} - \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)}{k_j}\right)^{k_j}\\
&= 1 - \left(\frac{k_j - \left(\sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)\right)}{k_j}\right)^{k_j}\\
&\overset{\text{NB von $B$}}{\ge} 1 - \left(1 - \frac{\hat{Z}_j}{k_j}\right)^{k_j} \overset{\text{Konkavität}}{\ge} \left(1 - \left(1 - \frac{1}{k_j}\right)^{k_j}\right)\cdot \hat{Z}_j
\end{align*}
@ -981,7 +985,7 @@ Es gilt offensichtlich \begin{equation*}
\end{equation*} für alle $p_A \in \left[0, 1\right]$.
\begin{satz}
Der Algorithmus $C_{\frac{1}{2}}$ hat eine erwartete relative Güte von $\frac{4}{3}$
Der Algorithmus $C_{\frac{1}{2}}$ hat eine erwartete relative Güte von $\frac{4}{3}$.
\end{satz}
\begin{proof}
Es sind folgende Erwartungswerte bekannt:
@ -998,7 +1002,7 @@ Es gilt offensichtlich \begin{equation*}
\end{proof}
\subsection{Derandomisierung durch die Methode der bedingten Erwartungswerte}
Die Ansätze mancher randomisierten Algorithmen können so modifiziert werden, dass sie deterministisch ein Ergebnis zurückliefern, was mindestens so gut wie der Erwartungswert des nicht-deterministischen Algorithmus ist.
Die Ansätze mancher randomisierter Algorithmen können so modifiziert werden, dass sie deterministisch ein Ergebnis zurückliefern, was mindestens so gut wie der Erwartungswert des nicht-deterministischen Algorithmus ist.
Man macht sich hierbei unter anderem die Eigenschaft des randomisierten Algorithmus zu Nutze, dass der Erwartungswert auch ohne wirkliche Ausführung des Algorithmus berechenbar ist.
Der Algorithmus \algo{Derand\_$A$} benutzt den Erwartungswert für Algorithmus $A$ um nach und nach alle Variablen $x_i$ zu belegen. Für jede Variable wird einmal \true{} und \false{} eingesetzt, dann mit der resultierenden Formel mit höherem Erwartungswert fortgefahren:
@ -1015,12 +1019,13 @@ Der Algorithmus \algo{Derand\_$A$} benutzt den Erwartungswert für Algorithmus $
\State \Return $b = (x_1, \dots, x_{n(I)})$
\end{algorithmic}
\begin{satz}
Der Algorithmus \algo{Derand\_$A$} approximiert \maxsat mit relativer Worst-Case-Güte $\rho_{\algo{Derand\_}A}^{\mathrm{wc}} = \frac{1}{1 - \frac{1}{2^k}}$ in Polynomzeit.
Der Algorithmus \algo{Derand\_$A$} approximiert \maxsat{} mit relativer Worst-Case-Güte\\
$\rho_{\algo{Derand\_}A}^{\mathrm{wc}} = \frac{1}{1 - \frac{1}{2^k}}$ in Polynomzeit.
\end{satz}
\section{Approximation durch Lineare Optimierung}
Die zum Lösen eines LP mit $k$ Variablen benötigte Zeit wird im Folgenden als $L\left(\abs{\mathrm{LP}}, k\right)$ bezeichnet.
Sie liegt in der Größenordnung $\bigO(k^4 \cdot \abs{\encoded{\mathrm{LP}}}^2)$.
Die zum Lösen eines LP mit $k$ Variablen benötigte Zeit wird im Folgenden als $L\left(\abs*{\mathrm{LP}}, k\right)$ bezeichnet.
Sie liegt in der Größenordnung $\bigO(k^4 \cdot \abs*{\encoded*{\mathrm{LP}}}^2)$.
\subsection{Ganzzahligkeitslücke}
Der für \maxsat{} gewählte Ansatz lässt sich im Prinzip auch auf verschiedenste andere kombinatorische Optimierungsprobleme $\Pi$ anwenden. Verallgemeinert bezeichnet man ihn als Rundungsansatz (exemplarisch für Maximierungsprobleme):
@ -1029,7 +1034,7 @@ Der für \maxsat{} gewählte Ansatz lässt sich im Prinzip auch auf verschiedens
Es gilt damit $\opt(I) = \opt(X)$.
\item Fallenlassen der Ganzzahligkeitsbedingung (Relaxierung), sodass das entstandene Lineare Programm $X_\rel$ in Polynomzeit lösbar ist.
Durch die Superoptimalität gilt $\opt(X_\rel) \ge \opt(X)$.
\item Der Approximationsalgorithmus $A$ löst $X_\rel$ und rundet die rationalen Lösungen geschickt zu einer zulässigen Lösung $\sigma \in \solution(I)$.
\item Der Approximationsalgorithmus $A$ löst $X_\rel$ und rundet die rationale Lösung geschickt zu einer zulässigen Lösung $\sigma \in \solution(I)$.
\item Beweis, dass $A(I) \ge \frac{1}{\rho}\cdot \opt(X_\rel)$ gilt.
\item Aus der Superoptimalität folgt $A(I) \ge \frac{1}{p}\cdot \opt(I)$.
\end{enumerate}
@ -1037,7 +1042,7 @@ Der für \maxsat{} gewählte Ansatz lässt sich im Prinzip auch auf verschiedens
Für ein kombinatorisches Maximierungsproblem $\Pi$ mit Eingaben $I \in \domain$ sei $X$ jeweils das äquivalente ILP und $X_\rel$ jeweils das relaxierte LP.
Dann bezeichnet
\begin{equation*}
\gamma = \max\left\{\frac{\opt(X_\rel)}{\opt(X)} \mid I\in \domain \right\}
\gamma = \max\left\{\frac{\opt(X_\rel)}{\opt(X)} \mid I\in \domain \right\} \ge 1
\end{equation*}
die Ganzzahligkeitslücke (\enquote{integrality gap}) der Relaxierung.
@ -1047,20 +1052,20 @@ $\opt(\phi) = 3$, aber $\opt(B_\rel) = 4$. Damit folgt $\gamma \le \frac{4}{3}$.
Allgemein folgen mit $\gamma \ge \frac{\opt(X_\rel)}{\opt(X)}$ die beiden Aussagen
\begin{align*}
A(I) &\ge \frac{\gamma}{\rho}\cdot \opt(I)\\
\rho &\gamma
\rho &\ge \gamma
\end{align*}
Daraus kann geschlossen werden, dass der Rundungsansatz die Ganzzahligkeitslücke nicht überwinden kann und Modellierung in LP mit geringer Ganzzahligkeitslücke wichtig ist.
\subsection{Arithmetisierung von \setcover}
Sei $X = \{S_{i_1}, \dots, S_{i_l}\}$ eine Sammlung von Gruppen, dann bezeichne die Notation $V(X) = S_{i_1} \cup \dots \cup S_{i_l}$ die Menge der von $X$ überdeckten Objekte.
Weiter bezeichne $G_S = \max\{\abs{S_i}\mid 1\le i\le m\}$ die Mächtigkeit der größten Gruppe, $\degree_S(u) = \abs{\{S_i \mid u \in S_i \in S\}}$ den Grad des Objekts $u \in V$ und $\Delta_S = \max{\{\degree_S(u)\mid u \in V\}}$ den Grad von $S$.
Weiter bezeichne $G_S = \max\{\abs*{S_i}\mid 1\le i\le m\}$ die Mächtigkeit der größten Gruppe, $\degree_S(u) = \abs*{\{S_i \mid u \in S_i \in S\}}$ den Grad des Objekts $u \in V$ und $\Delta_S = \max{\{\degree_S(u)\mid u \in V\}}$ den Grad von $S$.
Bei der Arithmetisierung wird pro Gruppe $S_i$ eine 0-1-Variable $x_i$ eingeführt, die genau dann 1 ist, wenn $S_i \in S_\cov$.
Damit lautet das ILP $X$ für \setcover:
\begin{align*}
\min &\quad \sum_{i=1}^{m} x_i\\
\text{gemäß} &\quad \sum_{i: u \in S_i} x_1 \ge 1 & \forall u \in V\\
\text{gemäß} &\quad \sum_{i: u \in S_i} x_i \ge 1 & \forall u \in V\\
&\quad x_i \in \{0, 1\} & \forall i \in \{1, \dots, m\}
\end{align*}
@ -1097,7 +1102,7 @@ Damit lautet das ILP $X$ für \setcover:
Weil für jede Gruppe $S_i \in S_\cov$ $\Delta_S \cdot x_i \ge 1$ gilt, folgt für die Qualität der Ausgabe
\begin{equation*}
\detroundsc(S) = \abs{S_\cov} \le \sum_{i=1}^{m} \Delta_S \cdot x_i =\Delta_S \cdot \sum_{i=1}^{m} x_i = \Delta_S \cdot \opt(X_\rel) \le \Delta_S \cdot \opt(S)
\detroundsc(S) = \abs*{S_\cov} \le \sum_{i=1}^{m} \Delta_S \cdot x_i =\Delta_S \cdot \sum_{i=1}^{m} x_i = \Delta_S \cdot \opt(X_\rel) \le \Delta_S \cdot \opt(S)
\end{equation*}
\end{proof}
@ -1116,12 +1121,12 @@ Damit lautet das ILP $X$ für \setcover:
Für eine Eingabe $S$ von \setcover{} sei $\chi$ die Ausgabe von $\randroundscr$. Dann gelten
\begin{enumerate}
\item $P\left[\chi\,\text{ist eine Überdeckung}\right] \ge 1 - n \cdot e^{-r}$
\item $E\left[\abs{\chi}\right] \le r \cdot \opt(S)$
\item $E\left[\abs*{\chi}\right] \le r \cdot \opt(S)$
\end{enumerate}
\end{satz}
\begin{proof}
\begin{enumerate}
\item Sei $u \in V$, dann gilt:
\item Sei $u \notin V$, dann gilt:
\begin{align*}
P\left[u \in V(\chi)\right] &= P\left[\forall i\,\text{mit}\, u \in S_i: S_i \notin \chi\right]\\
&= \Pi_{i: u\in S_i} e^{-r \cdot x_i} = \left(\Pi_{i: u\in S_i} e^{-x_i}\right)^r = \left(e^{- \sum_{i: u \in S_i} x_i}\right)^r\\
@ -1131,9 +1136,9 @@ Damit lautet das ILP $X$ für \setcover:
\begin{equation*}
P\left[\exists U \in V: u \notin V(\chi)\right] \le n \cdot e^{-r}
\end{equation*}
\item Für $\abs{\chi}$ folgt
\item Für $\abs*{\chi}$ folgt
\begin{equation*}
E\left[\abs{\chi}\right] = \sum_{i=1}^{m} P\left[S_i \in \chi\right] = \sum_{i=1}^{m} \left(1 - e^{-r\cdot x_i}\right) \le r\cdot \sum_{i=1}^{m} x_i = r\cdot \opt(X_\rel) \le r \cdot\opt(S)
E\left[\abs*{\chi}\right] = \sum_{i=1}^{m} P\left[S_i \in \chi\right] = \sum_{i=1}^{m} \left(1 - e^{-r\cdot x_i}\right) \le r\cdot \sum_{i=1}^{m} x_i = r\cdot \opt(X_\rel) \le r \cdot\opt(S)
\end{equation*}
\end{enumerate}
\end{proof}
@ -1208,7 +1213,7 @@ Diese untere Schranke kann folglich mit dem sogenannten dualen LP maximiert werd
\end{satz}
Man bezeichnet die Differenz zwischen dem Wert einer Nebenbedingung und ihrer Grenze als Schlupf.
Der primale Schlupf der $j$. Nebenbedingung des Duals ist also $p_j = \row_j\left[A\right] \cdot \vec{x} - b_j$; der duale Schlupf der $i$. Nebenbedingung des Duals $s_i = c_i - \row_i\left[\transposed{A}\right] \cdot \vec{y}$
Der primale Schlupf der $j$. Nebenbedingung des Duals ist also $p_j = \row_j\left[A\right] \cdot \vec{x} - b_j$; der duale Schlupf der $i$. Nebenbedingung des Duals $s_i = c_i - \row_i\left[\transposed{A}\right] \cdot \vec{y}$.
Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
\begin{satz}[Satz vom komplementären Schlupf]
@ -1216,8 +1221,8 @@ Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
Sie sind genau dann optimale Lösungen, wenn für alle $i$ und $j$ $y_j \cdot \left(\row_j\left[A\right] \cdot \vec{y} - b_j\right) = 0$ und $\left(c_i - \row_i\left[\transposed{A}\right]\cdot \vec{y}\right) \cdot x_i =0$ gilt.
Die Bedingung können auch als
\begin{align}
y_j > 0 &\Rightarrow \row_j\left[A\right]\cdot\vec{x} = b_j\label{eq:primaler-schlupf}\\
x_i > 0 &\Rightarrow \row_i\left[\transposed{A}\right] \cdot \vec{y} = c_i \label{eq:dualer-schlupf}
y_j > 0 &\Rightarrow \row_j\left[A\right]\cdot\vec{x} = b_j &\text{$j$. Nebenbedingung des Primals scharf}\label{eq:primaler-schlupf}\\
x_i > 0 &\Rightarrow \row_i\left[\transposed{A}\right] \cdot \vec{y} = c_i &\text{$i$. Nebenbedingung des Duals scharf}\label{eq:dualer-schlupf}
\end{align}
formuliert werden.
Für Approximationsalgorithmen ist vor allem die zweite Aussage wichtig.
@ -1226,7 +1231,7 @@ Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
\begin{satz}
Sei $\Pi$ ein Minimierungsproblem, $I$ eine Instanz von $\Pi$, $X$ das zu $I$ gehörige ILP, $X_\rel$ dessen Relaxierung und $Y_\rel$ das Dual zu $X_\rel$ sowie $\vec{x}$ und $\vec{y}$ beliebige zulässige Lösungen von $X$ bzw. $Y_\rel$, dann gilt:
\begin{equation*}
\zeta(\vec{y}) \le \opt(Y_\rel) = \opt(X_\rel) \le \opt(X) = \opt(I) \le z(\vec{x})
\zeta(\vec{y}) \le \zeta(\vec{y}_\mathrm{opt}) = \opt(Y_\rel) = \opt(X_\rel) = z(\vec{x}_\mathrm{opt}) \le \opt(X) = \opt(I) \le z(\vec{x})
\end{equation*}
\end{satz}
@ -1258,7 +1263,7 @@ Die Qualität der Lösung hängt dabei stark vom ursprünglich bestimmten $\vec{
\begin{algorithmic}[1]
\State bestimme optimale Lösung $\vec{y}$ des relaxierten Duals $Y_\rel$
\For{$i \in \{1,\dots,m\}$}
\If{$i$. Nebenbedingung von $Y_\rel$ ist scharf}
\If{$i$. Nebenbedingung von $Y_\rel$ scharf}
\State $x_i = 1$ \Comment{mit erfüllter Nebenbedingung folgt $\sum_{j: u_j \in S_i} y_j = x_i$}
\Else
\State $x_i = 0$
@ -1326,10 +1331,10 @@ Für sie gilt die Ungleichung $\mathcal{H}(n) \leq \ln n + 1$.
\EndFor
\State $C = \emptyset$ \Comment{$C$ enthält die schon überdeckten Objekte}
\While{$C\neq V$}
\State bestimme einen Index $i$ mit maximalem $\abs{S_i \setminus C}$
\State bestimme einen Index $i$ mit maximalem $\abs*{S_i \setminus C}$
\State $x_i = 1$
\ForAll{$u_j\in S_i \setminus C$}
\State $p[u_j] = \frac{1}{\abs{S_i \setminus C}}$ \Comment{$x_i = 1$ und $\sum_{u_j\in S_i \setminus C} p[u_j] = 1$}
\State $p[u_j] = \frac{1}{\abs*{S_i \setminus C}}$ \Comment{$x_i = 1$ und $\sum_{u_j\in S_i \setminus C} p[u_j] = 1$}
\State $y_j = \frac{1}{\mathcal{H}(G_S)} \cdot p[u_j]$ \Comment{$\mathcal{H}(G_S) \cdot y_j = p[u_j]$}
\EndFor
\State $C = C \cup S_i$