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{\greedycoltwo}{\algo{GreedyCol2}}
\newcommand{\vertices}{\mathrm{V}} \newcommand{\vertices}{\mathrm{V}}
\newcommand{\edges}{\mathrm{E}} \newcommand{\edges}{\mathrm{E}}
\newcommand{\degree}{\mathrm{deg}}
% Rucksackproblem % Rucksackproblem
\newcommand{\rucksack}{\problem{Rucksack}} \newcommand{\rucksack}{\problem{Rucksack}}
@ -82,6 +83,10 @@
% Hamilton % Hamilton
\newcommand{\hamilton}{\problem{Hamilton}} \newcommand{\hamilton}{\problem{Hamilton}}
% Set-Cover
\newcommand{\setcover}{\problem{SetCover}}
\newcommand{\cov}{\mathrm{cov}}
% Beweisumgebungen % Beweisumgebungen
\newtheorem*{satz}{Satz} \newtheorem*{satz}{Satz}
\newtheorem*{lemma}{Lemma} \newtheorem*{lemma}{Lemma}
@ -184,10 +189,18 @@ Eine Boolesche $(n, m)$-Formel $\Phi = C_1 \land \dots \land C_m$ in konjunktive
\begin{align*} \begin{align*}
\domain &= \{\encoded{ \Phi} \mid \Phi\,\text{eine boolesche $(n,m)$-Formel in KNF}\}\\ \domain &= \{\encoded{ \Phi} \mid \Phi\,\text{eine boolesche $(n,m)$-Formel in KNF}\}\\
\solution(\encoded{ \Phi }) &= \{ b \mid b: V \mapsto \{\false{}, \true{}\}\}\\ \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 \ziel &= \max
\end{align*} \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} \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)$.
@ -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. 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} \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} \section{Relative Gütegarantie}
\subsection{Definition} \subsection{Definition}
@ -409,14 +422,14 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
\begin{lemma} \begin{lemma}
Sei $G$ ein knoten-$k$-färbbarer Graph, dann gilt: Sei $G$ ein knoten-$k$-färbbarer Graph, dann gilt:
\begin{equation*} \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{equation*}
\end{lemma} \end{lemma}
\begin{proof} \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. 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*} \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{equation*}
\end{proof} \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.
@ -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: Der Algorithmus von Christofides (\algo{CH}) geht wie folgt vor:
\begin{algorithmic}[1] \begin{algorithmic}[1]
\State berechne einen minimalen Spannbaum $T_\ch$ von $I = \encoded{ K_n, c}$ \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 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 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 \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} \begin{satz}
Sei $\Phi$ eine boolesche $(n,m)$-Formel in KNF, dann gilt Sei $\Phi$ eine boolesche $(n,m)$-Formel in KNF, dann gilt
\begin{equation*} \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{equation*}
\end{satz} \end{satz}
\begin{proof} \begin{proof}
@ -668,7 +681,7 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus,
\begin{equation*} \begin{equation*}
E\left[A(\Phi)\right] \ge \left(1 - \frac{1}{2^k}\right) \cdot m E\left[A(\Phi)\right] \ge \left(1 - \frac{1}{2^k}\right) \cdot m
\end{equation*} \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} \end{satz}
\begin{proof} \begin{proof}
Für jede Klausel $C_j$ wird eine Indikator-Variable $Z_j$ mit 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*} \end{equation*}
eingeführt. Da ihr Erwartungswert gleich der Wahrscheinlichkeit, dass sie 1 annimmt, ist, folgt eingeführt. Da ihr Erwartungswert gleich der Wahrscheinlichkeit, dass sie 1 annimmt, ist, folgt
\begin{equation*} \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*} \end{equation*}
Die Existenz einer solchen Belegung folgt aus einem klassischen Durchschnittsargument. Die Existenz einer solchen Belegung folgt aus einem klassischen Durchschnittsargument.
\end{proof} \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. 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} \end{satz}
\begin{proof} \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} \end{proof}
\begin{satz} \begin{satz}
@ -876,4 +889,23 @@ Allgemein folgen mit $\gamma \ge \frac{\opt(X_\rel)}{\opt(X)}$ die beiden Aussag
\end{align*} \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. 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} \end{document}