Arithmetisierung von SetCover
This commit is contained in:
parent
83d260cd04
commit
56b2303a68
Binary file not shown.
@ -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}
|
||||||
|
Loading…
Reference in New Issue
Block a user