Approximationsalgorithmen/zusammenfassung.tex

238 lines
9.5 KiB
TeX
Raw Normal View History

2020-10-13 15:31:09 +02:00
% !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}
2020-10-14 10:10:29 +02:00
\usepackage{amsthm}
2020-10-13 15:31:09 +02:00
\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}
2020-10-13 15:31:09 +02:00
2020-10-14 10:10:29 +02:00
\newtheorem*{satz}{Satz}
\newtheorem*{zeuge}{Zeuge}
\newcommand*{\algo}[1]{\textsc{#1}}
\newcommand*{\problem}[1]{\textsc{#1}}
2020-10-14 10:10:29 +02:00
2020-10-13 15:31:09 +02:00
\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
2020-10-14 11:14:27 +02:00
\section{Kombinatorisches Optimierungsproblem $\Pi$}
\subsection{Definition}
2020-10-13 15:31:09 +02:00
\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*}
2020-10-14 11:14:27 +02:00
\begin{enumerate}
2020-10-13 15:31:09 +02:00
\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)
2020-10-14 11:14:27 +02:00
\end{enumerate}
2020-10-13 15:31:09 +02:00
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}
2020-10-13 15:31:09 +02:00
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)$.
2020-10-13 15:31:09 +02:00
\section{Konstante Gütegarantie}
\subsection{Definition}
2020-10-14 11:14:27 +02:00
\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*}
2020-10-14 11:14:27 +02:00
\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*}
2020-10-14 11:14:27 +02:00
\end{enumerate}
2020-10-14 10:10:29 +02:00
\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.
2020-10-14 10:10:29 +02:00
\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
2020-10-14 11:14:27 +02:00
\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}
2020-10-13 15:31:09 +02:00
\end{document}