DualPurSC
This commit is contained in:
parent
92e245e9a6
commit
e89c61c98d
Binary file not shown.
@ -93,6 +93,7 @@
|
||||
\newcommand{\randroundscr}{\algo{RandRoundSC}[r]}
|
||||
\newcommand{\lasvegassc}{\algo{LasVegasSC}}
|
||||
\newcommand{\lasvegasscr}{\lasvegassc[r]}
|
||||
\newcommand{\dualpursc}{\algo{DualPurSC}}
|
||||
|
||||
% Beweisumgebungen
|
||||
\newtheorem*{satz}{Satz}
|
||||
@ -404,7 +405,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
|
||||
Wenn es für eine Optimierungsvariante eines stark NP-vollständigen Problems ein FPAS gibt, dann folgt $P = NP$.
|
||||
\end{satz}
|
||||
|
||||
\section{\greedyis für \is}
|
||||
\section{\greedyis{} für \is}
|
||||
\begin{algorithmic}[1]
|
||||
\State $U = \emptyset, t = 0, V^{(0)} = V$
|
||||
\While{$V^{(t)} \neq \emptyset$}
|
||||
@ -940,9 +941,9 @@ Damit lautet das ILP $X$ für \setcover:
|
||||
\end{equation*}
|
||||
Damit wird für jedes $u$ mindestens ein überdeckendes $S_i$ aufgenommen, also stellt die Ausgabe eine Überdeckung dar.
|
||||
|
||||
Weil für jede Gruppe $S_i \in S_\cov$ $\Delta_s \cdot x_i \ge 1$ gilt, folgt für die Qualität der Ausgabe
|
||||
Weil für jede Gruppe $S_i \in S_\cov$ $\Delta_S \cdot x_i \ge 1$ gilt, folgt für die Qualität der Ausgabe
|
||||
\begin{equation*}
|
||||
\detroundsc(S) = \abs{S_\cov} \le \sum_{i=1}^{m} \Delta_s \cdot x_i =\Delta_S \cdot \sum_{i=1}^{m} x_i = \Delta_S \cdot \opt(X_\rel) \le \Delta_S \cdot \opt(S)
|
||||
\detroundsc(S) = \abs{S_\cov} \le \sum_{i=1}^{m} \Delta_S \cdot x_i =\Delta_S \cdot \sum_{i=1}^{m} x_i = \Delta_S \cdot \opt(X_\rel) \le \Delta_S \cdot \opt(S)
|
||||
\end{equation*}
|
||||
\end{proof}
|
||||
|
||||
@ -1019,7 +1020,8 @@ $\lasvegasscr$ ist ein sogenannter Las-Vegas-Algorithmus, weil er immer eine zul
|
||||
\end{satz}
|
||||
|
||||
% TODO: Umorganisieren: (I)LP sowie Arithmetisierungen in Allgemeine Definitionen, Dualität als eigene section?
|
||||
\subsection{Dualität von LP}
|
||||
\section{Ausnutzen der Dualität von Linearen Programmen}
|
||||
\subsection{Herleitung der Dualität}
|
||||
Ein LP für ein o.B.d.A. Minimierungsproblem kann wie folgt geschrieben werden:
|
||||
\begin{align*}
|
||||
\min &\quad z(\vec{x}) = \transposed{\vec{c}} \cdot \vec{x}\\
|
||||
@ -1074,15 +1076,58 @@ Beträgt der Schlupf 0, so ist die Nebenbedingung scharf.
|
||||
\end{equation*}
|
||||
\end{satz}
|
||||
|
||||
\subsection{Verwendung der Dualität für Approximationsalgorithmen}
|
||||
\subsubsection{Entwurf neuer Algorithmen mittels Dual Fitting}
|
||||
\subsection{Lineare Programme für \setcover}
|
||||
\subsubsection{Primal $X$}
|
||||
\begin{align*}
|
||||
\min &\quad \sum_{i=1}^{m} x_i\\
|
||||
\text{gemäß} &\quad \sum_{i: u_j \in S_i} x_i \ge 1 &\forall u_j \in V\\
|
||||
&\quad x_i \in \{0,1\} &\forall i \in \{1,\dots, m\}
|
||||
\end{align*}
|
||||
|
||||
\subsubsection{Relaxiertes Dual $Y_\rel$}
|
||||
\begin{align*}
|
||||
\max &\quad \sum_{j=1}^{n} y_j\\
|
||||
\text{gemäß} &\quad \sum_{j: u_j \in S_i} y_j \le 1 &\forall S_i \in S\\
|
||||
&\quad 0 \le y_j \le 1 &\forall j \in \{1,\dots, n\}
|
||||
\end{align*}
|
||||
|
||||
|
||||
\subsection{Entwurf neuer Algorithmen für \setcover{} mittels Dual Fitting}
|
||||
Beim Dual-Fitting wird allgemein versucht, \Cref{eq:dualer-schlupf} zu erfüllen.
|
||||
Zunächst wird dazu eine zulässige Lösung $\vec{y}$ des Duals bestimmt, bei der einige Nebenbedingungen scharf sind.
|
||||
Die den scharfen Nebenbedingungen entsprechenden Variablen $x_i$ des Primals werden dann als Approximation auf 1 gesetzt, die anderen auf 0.
|
||||
Das so entstandene $\vec{x}$ gibt mit $z(\vec{x})$ eine obere Schranke an.
|
||||
Die Qualität der Lösung hängt dabei stark von der Qualität des ursprünglich bestimmten $\vec{y}$ ab.
|
||||
Die Qualität der Lösung hängt dabei stark vom ursprünglich bestimmten $\vec{y}$ ab.
|
||||
|
||||
\subsubsection{Analyse bestehender Algorithmen}
|
||||
\subsubsection{\dualpursc}
|
||||
\dualpursc{} löst das relaxierte Dual optimal und baut damit eine zulässige 0-1-Lösung für $X$:
|
||||
\begin{algorithmic}[1]
|
||||
\State bestimme optimale Lösung $\vec{y}$ des relaxierten Duals $Y_\rel$
|
||||
\For{$i \in \{1,\dots,m\}$}
|
||||
\If{$i$. Nebenbedingung von $Y_\rel$ ist scharf}
|
||||
\State $x_i = 1$ \Comment{mit erfüllter Nebenbedingung folgt $\sum_{j: u_j \in S_i} y_j = x_i$}
|
||||
\Else
|
||||
\State $x_i = 0$
|
||||
\EndIf
|
||||
\EndFor
|
||||
\State \Return $(x_1,\dots, x_m)$
|
||||
\end{algorithmic}
|
||||
\begin{satz}
|
||||
\dualpursc{} liefert eine Überdeckung der relativen Güte $\Delta_S$ in Zeit $\bigO(m + L(mn, n))$.
|
||||
\end{satz}
|
||||
\begin{proof}
|
||||
Die Ausgabe ist eine Überdeckung, weil bei einer Nichtüberdeckung eines Objekts $u_i$ alle $x_i$ für $S_i \in S$ mit $u_j \in S_i$ gleich 0 wären.
|
||||
Dann wäre auch der duale Schlupf der zugehörigen $i$. Nebenbedingung nicht 0 und $y_j$ könnte vergrößert werden.
|
||||
Damit ist die ursprüngliche Lösung $\vec{y}$ aber nicht optimal gewesen.
|
||||
|
||||
Da für jedes $i$ mit $x_i = 1$ gilt $\sum_{j: u_j \in S_i} y_j = 1$, folgt für die Qualität der Lösung:
|
||||
\begin{align*}
|
||||
\dualpursc(S) &= \sum_{i=1}^{m} x_i = \sum_{i: x_i = 1} 1 = \sum_{i: x_i = 1} \sum_{j: u_j \in S_i} y_j \le \Delta_S \cdot \sum_{j=1}^{n} y_j\\
|
||||
&= \Delta_S \cdot \opt(Y_\rel) \le \Delta_S \cdot \opt(S)
|
||||
\end{align*}
|
||||
\end{proof}
|
||||
|
||||
\subsection{Analyse bestehender Algorithmen für \setcover}
|
||||
Ein bestehender Algorithmus, der eine 0-1-Lösung des ursprünglichen ILPs $X$ berechnet, wird so erweitert, dass er gleichzeitig eine zulässige Lösung $\vec{y}$ für $Y_\rel$ konstruiert.
|
||||
Da $\vec{x}$ und $\vec{y}$ von einander abhängen, hängt auch $z(\vec{x})$ von $\vec{y}$ ab.
|
||||
Kann daraus der Wert $\zeta(\vec{y})$ isoliert werden, kann eine obere Schranke des Wertes der Lösung zu $I$ berechnet werden.
|
||||
|
Loading…
Reference in New Issue
Block a user