% !TeX spellcheck = de_DE \documentclass[11pt,a4paper,toc]{scrartcl} \usepackage[a4paper,left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm]{geometry} \usepackage[ngerman]{babel} \usepackage{amssymb} \usepackage{scrextend} \usepackage[utf8]{inputenc} \usepackage{amsmath} \usepackage{amsthm} \usepackage{enumitem} \usepackage{mathtools} \usepackage[load=named]{siunitx} \usepackage{csquotes} \usepackage[hidelinks]{hyperref} %\usepackage{listings} \usepackage{algorithmicx} \usepackage{algpseudocode} %\usepackage{pgfplots} \usepackage{tikz} %\usetikzlibrary{positioning} %\usetikzlibrary{arrows.meta} %\usetikzlibrary{quotes} %\usetikzlibrary{angles} %\usetikzlibrary{babel} %\usetikzlibrary{fit} %\usepackage{datetime} %\usepackage{xcolor} \DeclareMathOperator{\opt}{OPT} \DeclarePairedDelimiter\abs{\lvert}{\rvert} \newtheorem*{satz}{Satz} \newtheorem*{zeuge}{Zeuge} \newcommand*{\algo}[1]{\textsc{#1}} \newcommand*{\problem}[1]{\textsc{#1}} \setlist[enumerate,1]{label={\arabic*.}} \setlist[enumerate,2]{label={\alph*)}} \title{Approximationsalgorithmen} \author{Marco Ammon} \date{\today} \makeatletter \g@addto@macro\bfseries{\boldmath} \makeatother \begin{document} \maketitle \tableofcontents \clearpage \section{Kombinatorisches Optimierungsproblem $\Pi$} \subsection{Definition} \begin{align*} \mathcal{D} &= \text{Menge der Eingaben $I$}\\ \mathcal{S}(I \in \mathcal{D}) &= \text{Menge der zur Eingabe $I$ zulässigen Lösungen}\\ f: \mathcal{S}(I) \mapsto \mathbb{N}^{\neq 0} &= \text{Bewertungs-/Kosten-/Maßfunction}\\ \mathrm{ziel} \in \{\min, \max\} \end{align*} \begin{enumerate} \item Beschränkung auf natürliche Zahlen, weil Vergleich reeller Zahlen bislang nicht beweisbar schnell funktioniert. \item Ausschluss der 0 für spätere Definitionen sinnvoll (lässt sich durch Modifikation von $f$ in der Regel trivial erreichen) \end{enumerate} Gesucht ist zu $I \in \mathcal{D}$ eine zulässige Lösung $\sigma_\mathrm{opt} \in \mathcal{S}(I)$, sodass \begin{equation*} \opt(I) = f(\sigma_\mathrm{opt}) = \mathrm{ziel}\{f(\sigma) \mid \sigma \in \mathcal{S}(I) \} \end{equation*} \subsection{Beispiele} TODO: TSP, Rucksackproblem, etc. \section{$t(n)$-Zeit-Approximationsalgorithmus $A$} Für Eingabe $I \in \mathcal{D}$ berechnet $A$ in Zeit $t(\abs{I})$ eine Ausgabe $\sigma_I^A \in \mathcal{S}(I)$. Es gilt die Schreibweise $A(I) = f(\sigma_I^A)$. \section{Konstante Gütegarantie} \subsection{Definition} \begin{enumerate} \item $A$ hat bei Eingabe $I$ absolute Güte von \begin{equation*} \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 \begin{equation*} \kappa_A^{\mathrm{wc}}(n) = \max\{\kappa_A(I) \mid I \in \mathcal{D}, \abs{I} <= n\} \end{equation*} \item $A$ garantiert eine absolute Güte von $\kappa_A: \mathbb{N} \mapsto \mathbb{N}$, falls für alle $n \in \mathbb{N}$ gilt: \begin{equation*} \kappa_A^{\mathrm{wc}}(n) \le \kappa_A(n) \end{equation*} \item $A$ hat eine absolute Abweichung von $\kappa'_A: \mathbb{N} \mapsto \mathbb{N}$, falls für unendlich viele $n$ gilt \begin{equation*} \kappa'_A(n) \le \kappa_A^{wc}(n) \end{equation*} Eine unendlich große Menge $\mathcal{D}' \subseteq \mathcal{D}$ heißt $\kappa'_A(n)$-Zeugenmenge gegen $A$, wenn für alle $I \in \mathcal{D}'$ gilt: \begin{equation*} \kappa_A(I) \ge \kappa'_A(\abs{I}) \end{equation*} \end{enumerate} \subsection{Unmöglichkeitsergebnis für das Rucksackproblem} \begin{satz} Falls $P \neq NP$, dann gibt es keine Konstante $n\in \mathbb{N}$, sodass es einen polynomiellen Approximationsalgorithmus $A$ für das Rucksackproblem gibt mit \begin{equation*} \abs{A(I) - \opt(I)} \le k \end{equation*} \end{satz} \begin{proof}[Widerspruchsbeweis] Unter der Annahme, dass $A$ und $k$ existieren, kann \problem{Rucksack} in Polynomzeit exakt gelöst werden, was $P = NP$ zur Folge hat: Konstruiere aus einer Instanz $I = \langle W, \mathrm{vol}, p, B \rangle$ eine neue Probleminstanz $I' = \langle W, \mathrm{vol}, p', B\rangle$ 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$. Da $A$ eine absolute Güte von $k$ garantiert und in Polynomzeit terminiert, kann es nur eine optimale Lösung für $I'$, welche auf optimal für $I$ ist, zurückgeben. Damit ist das $NP$-vollständige \problem{Rucksack} in Polynomzeit exakt lösbar. \end{proof} Die hierbei verwendete Vorgehensweise einer Selbstreduktion sowie das \enquote{Aufblasen} des Problems (\enquote{Scaling}, \enquote{Gap Amplification}) lässt sich auch auf viele andere Probleme wie etwa \problem{SetCover} anwenden. Folglich kann eine konstante Gütegarantie nur für vergleichsweise wenig Probleme erreicht werden. \section{Graphfärbbarkeit} \subsection{Knotenfärbungsproblem} \subsubsection{Definition} \begin{align*} \mathcal{D} &= \{\langle G\rangle \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\ \mathcal{S}(\langle G \rangle) &= \{ c_\mathrm{V} \mid c_\mathrm{V}\, \text{ist eine Knotenfärbung von}\, G\}\\ f(c_\mathrm{V}) &= \abs{c_\mathrm{V}(V)}\\ \mathrm{ziel} &= \min \end{align*} Die Größe der kleinsten möglichen Knotenfärbung ist die chromatische Zahl $\chi(G)$. \subsubsection{Algorithmen} \paragraph{\algo{GreedyCol}} \begin{algorithmic}[] \ForAll{$u_i \in V$} \State $c_\mathrm{V}(u_i) = \infty$ \EndFor \ForAll{$i \in [1,\dots, \abs{V}]$} \State $c_\mathrm{V}(u_i) = \min\{\mathbb{N}\setminus\{c_\mathrm{V}(\Gamma(u_i))\}\}$ \EndFor\\ \Return $c_\mathrm{V}$ \end{algorithmic} \begin{satz} \algo{GreedyCol} berechnet in Zeit $\mathcal{O}(\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. \end{proof} \begin{satz} \algo{GreedyCol} garantiert eine absolute Güte von \begin{equation*} \kappa_\algo{GreedyCol}(G) = \algo{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. \end{satz} \begin{zeuge} $\Delta(G) - 1$-Zeuge gegen \algo{GreedyCol}: TODO (Abbildung 2.1) \end{zeuge} \subsection{Kantenfärbungsproblem} \subsubsection{Definition} \begin{align*} \mathcal{D} &= \{\langle G\rangle \mid G = (V, E)\,\text{ein ungerichteter Graph mit mindestens einer Kante}\}\\ \mathcal{S}(\langle G \rangle) &= \{ c_\mathrm{E} \mid c_\mathrm{E}\, \text{ist eine Kantenfärbung von}\, G\}\\ f(c_\mathrm{E}) &= \abs{c_\mathrm{E}(E)}\\ \mathrm{ziel} &= \min \end{align*} Die Größe der kleinsten möglichen Kantenfärbung ist der chromatische Index $\chi'(G)$. \subsubsection{Algorithmen} TODO: Übung \section{Relative Gütegarantie} \subsection{Definition} \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 \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 \mathcal{D}, \abs{i}\le n\right\} \end{equation*} \item $A$ garantiert eine relative Güte von $\rho_A : \mathbb{N} \mapsto \mathbb{N}$, falls für alle $n \in \mathbb{N}$ gilt \begin{equation*} \rho_A^{\mathrm{wc}}(n) \le \rho_A(n) \end{equation*} \item $A$ macht für die Eingabe $I \in \mathcal{D}$ einen relativen Fehler von \begin{equation*} \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 \mathcal{D}, \abs{I}\le n\}$ gilt \begin{equation*} \varepsilon_A(I) \le \varepsilon_A(n) \end{equation*} \item $A$ hat eine relative Abweichung von $\rho'_A : \mathbb{N} \mapsto \mathbb{N}$, falls für unendlich viele $n$ gilt \begin{equation*} \rho_A^\mathrm{wc}(n) \ge \rho'_A(n) \end{equation*} Eine unendlich große Menge $\mathcal{D}' \subseteq \mathcal{D}$ heißt $\rho'_A(n)$-Zeugenmenge gegen $A$, wenn für alle $I \in \mathcal{D}'$ gilt \begin{equation*} \rho_A(I) \ge \rho'_A(\abs{I}) \end{equation*} \end{enumerate} Es folgen daraus direkt, dass \begin{enumerate} \item bei einem Minimierungsproblem $1 + \varepsilon_A(n) = \rho_A(n)$ ist. \item bei einem Maximierungsproblem $1 - \varepsilon_A(n) = \frac{1}{\rho_A(n)}$ ist. \item für alle Probleme $\varepsilon_A(n) \le \rho_A(n) - 1$ ist. \end{enumerate} Weiter lassen sich damit obere bzw. untere Schranken der Optimallösung aus einer approximierten Lösung angeben. Es folgt, dass \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) \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) \end{equation*} \item bei beiden Problemtypen mit der Beziehung \begin{equation*} \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) \end{equation*} \end{enumerate} \end{document}