diff --git a/zusammenfassung.pdf b/zusammenfassung.pdf index a3c0029..06e3021 100644 Binary files a/zusammenfassung.pdf and b/zusammenfassung.pdf differ diff --git a/zusammenfassung.tex b/zusammenfassung.tex index fb50ae1..93a0753 100644 --- a/zusammenfassung.tex +++ b/zusammenfassung.tex @@ -57,6 +57,7 @@ \newcommand{\greedycoltwo}{\algo{GreedyCol2}} \newcommand{\vertices}{\mathrm{V}} \newcommand{\edges}{\mathrm{E}} +\newcommand{\degree}{\mathrm{deg}} % Rucksackproblem \newcommand{\rucksack}{\problem{Rucksack}} @@ -82,6 +83,10 @@ % Hamilton \newcommand{\hamilton}{\problem{Hamilton}} +% Set-Cover +\newcommand{\setcover}{\problem{SetCover}} +\newcommand{\cov}{\mathrm{cov}} + % Beweisumgebungen \newtheorem*{satz}{Satz} \newtheorem*{lemma}{Lemma} @@ -184,10 +189,18 @@ Eine Boolesche $(n, m)$-Formel $\Phi = C_1 \land \dots \land C_m$ in konjunktive \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{}\}}\\ + \wahr(\Phi) &= \abs{\{j \mid C_j \in \Phi, b(C_j) = \true{}\}}\\ \ziel &= \max \end{align*} +\subsubsection{Das Mengenüberdeckungsproblem \setcover} +\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}\\ + \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)$. @@ -249,7 +262,7 @@ Eine äquivalente Charakterisierung ist: Das NP-vollständige Entscheidungsprobl 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 \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. +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 \setcover{} anwenden. Folglich kann eine konstante Gütegarantie nur für vergleichsweise wenig Probleme erreicht werden. \section{Relative Gütegarantie} \subsection{Definition} @@ -409,14 +422,14 @@ 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: \mathrm{deg}_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 \begin{equation*} - \mathrm{deg}_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. @@ -513,7 +526,7 @@ Wird in einem Pfad jede Kante des (Multi-)Graph genau einmal besucht, so spricht 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 \mathrm{deg}_{T_\ch}(v)\, \text{ungerade}\}$ \Comment{$\abs{S}$ ist gerade} + \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 @@ -635,7 +648,7 @@ Der Algorithmus \fpasrucksack{} verwendet dazu \algo{AR\textsubscript{$k$}} und \begin{satz} Sei $\Phi$ eine boolesche $(n,m)$-Formel in KNF, dann gilt \begin{equation*} - \max\{\\wahr\left(\false{}, \dots, \false{}, \Phi\right), \\wahr\left(\true{}, \dots, \true{}, \Phi\right)\} \ge \frac{1}{2}\cdot m + \max\{\wahr\left(\false{}, \dots, \false{}, \Phi\right), \wahr\left(\true{}, \dots, \true{}, \Phi\right)\} \ge \frac{1}{2}\cdot m \end{equation*} \end{satz} \begin{proof} @@ -668,7 +681,7 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, \begin{equation*} E\left[A(\Phi)\right] \ge \left(1 - \frac{1}{2^k}\right) \cdot m \end{equation*} - Des Weiteren existiert eine Belegung $b$ mit $\\wahr(b, \Phi) \ge \left(1 - \frac{1}{2^k}\right) \cdot m$. + Des Weiteren existiert eine Belegung $b$ mit $\wahr(b, \Phi) \ge \left(1 - \frac{1}{2^k}\right) \cdot m$. \end{satz} \begin{proof} Für jede Klausel $C_j$ wird eine Indikator-Variable $Z_j$ mit @@ -680,7 +693,7 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, \end{equation*} eingeführt. Da ihr Erwartungswert gleich der Wahrscheinlichkeit, dass sie 1 annimmt, ist, folgt \begin{equation*} - E\left[A(\Phi)\right] = E\left[\\wahr(b_A, \Phi)\right] = E\left[\sum_{j=1}^{m} Z_j\right] = \sum_{j=1}^{m} \left(1 - \frac{1}{2^{k_j}}\right) \ge \left(1 - \frac{1}{2^k}\right) \cdot m + E\left[A(\Phi)\right] = E\left[\wahr(b_A, \Phi)\right] = E\left[\sum_{j=1}^{m} Z_j\right] = \sum_{j=1}^{m} \left(1 - \frac{1}{2^{k_j}}\right) \ge \left(1 - \frac{1}{2^k}\right) \cdot m \end{equation*} Die Existenz einer solchen Belegung folgt aus einem klassischen Durchschnittsargument. \end{proof} @@ -689,7 +702,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}$. 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. \end{proof} \begin{satz} @@ -876,4 +889,23 @@ Allgemein folgen mit $\gamma \ge \frac{\opt(X_\rel)}{\opt(X)}$ die beiden Aussag \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$. + +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\\ + &\quad x_i \in \{0, 1\} & \forall i \in \{1, \dots, m\} +\end{align*} + +\begin{satz} + Für die kanonische Relaxierung $X_\rel$ von $X$ gilt für die Ganzzahligkeitslücke + \begin{equation*} + \gamma \ge \frac{1}{2}\cdot \log n + \end{equation*} +\end{satz} \end{document}