Arithmetisierung von SetCover

This commit is contained in:
Marco Ammon 2020-10-15 16:15:04 +02:00
parent 83d260cd04
commit 56b2303a68
2 changed files with 41 additions and 9 deletions

Binary file not shown.

View File

@ -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}