PrimalDualSC_2
This commit is contained in:
parent
e89c61c98d
commit
91dacf4cdc
Binary file not shown.
@ -94,6 +94,8 @@
|
||||
\newcommand{\lasvegassc}{\algo{LasVegasSC}}
|
||||
\newcommand{\lasvegasscr}{\lasvegassc[r]}
|
||||
\newcommand{\dualpursc}{\algo{DualPurSC}}
|
||||
\newcommand{\primaldualscone}{\algo{PrimalDualSC\_1}}
|
||||
\newcommand{\primaldualsctwo}{\algo{PrimalDualSC\_2}}
|
||||
|
||||
% Beweisumgebungen
|
||||
\newtheorem*{satz}{Satz}
|
||||
@ -1127,9 +1129,88 @@ Die Qualität der Lösung hängt dabei stark vom ursprünglich bestimmten $\vec{
|
||||
\end{align*}
|
||||
\end{proof}
|
||||
|
||||
\subsubsection{\primaldualscone}
|
||||
\primaldualscone{} berechnet jetzt keine optimale Lösung von $Y_\rel$ mehr:
|
||||
\begin{algorithmic}[1]
|
||||
\ForAll{$y_j$}
|
||||
\State $y_j = 1$
|
||||
\EndFor
|
||||
\For{$i \in \{1,\dots,m\}$}
|
||||
\State $x_i = 0$
|
||||
\State $\mathrm{dualer\_schlupf}[i] = 1$
|
||||
\EndFor
|
||||
\While{es ein nicht überdecktes Objekt $u_j$ gibt}
|
||||
\State bestimme eine Gruppe $S_i$ mit $u_j \in S_i$ mit minimalem $\mathrm{dualer\_schlupf}[i]$
|
||||
\State $x_i = 1$
|
||||
\State $y_j = \mathrm{dualer\_schlupf}[i]$ \Comment{$i$. Nebenbedingung scharf: $x_i = \sum_{j: u_j \in S_i} y_j$}
|
||||
\ForAll{$i'$ mit $u_j \in S_{i'}$}
|
||||
\State $\mathrm{dualer\_schlupf}[i'] = \mathrm{dualer\_schlupf}[i'] - y_j$ \Comment{Aktualisieren des dualen Schlupfs}
|
||||
\EndFor
|
||||
\EndWhile
|
||||
\State \Return $(x_1, \dots, x_m)$
|
||||
\end{algorithmic}
|
||||
|
||||
\begin{satz}
|
||||
\primaldualscone{} gibt eine Überdeckung der relativen Güte $\Delta_S$ nach Zeit $\bigO(n\cdot m)$ aus.
|
||||
\end{satz}
|
||||
\begin{proof}
|
||||
Die While-Schleife kann bis zu $n$ mal durchlaufen werden, wobei für die Bestimmung der Gruppe mit minimalem dualen Schlupf jeweils $\bigO(m)$ Schritte benötigt werden.
|
||||
|
||||
$\vec{y}$ ist zu Beginn eine zulässige Lösung und jeder Eintrag wird nur maximal einmal verändert, also ist auch $\vec{y}$ auch am Ende eine zulässige Lösung. Für die Qualität kann die Rechnung für \dualpursc{} erneut verwendet werden.
|
||||
\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.
|
||||
|
||||
\subsubsection{\primaldualsctwo}
|
||||
Ein bestehender gieriger Algorithmus, der immer die Gruppe wählt, die am meisten noch nicht überdeckte Objekte überdeckt, wird so erweitert, dass man die Dualität der LP zur Analyse verwenden kann.
|
||||
Es sei $\mathcal{H}(n) = \sum_{i=1}^{n} \frac{1}{i}$ die $n$. harmonische Zahl.
|
||||
Für sie gilt die Ungleichung $\mathcal{H}(n) \leq \ln n + 1$.
|
||||
\begin{algorithmic}[1]
|
||||
\ForAll{$i\in \{1,\dots, m\}$}
|
||||
\State $x_i = 0$
|
||||
\EndFor
|
||||
\State $C = \emptyset$ \Comment{$C$ enthält die schon überdeckten Objekte}
|
||||
\While{$C\neq V$}
|
||||
\State bestimme einen Index $i$ mit maximalem $\abs{S_i \setminus C}$
|
||||
\State $x_i = 1$
|
||||
\ForAll{$u_j\in S_i \setminus C$}
|
||||
\State $p[u_j] = \frac{1}{\abs{S_i \setminus C}}$ \Comment{$x_i = 1$ und $\sum_{u_j\in S_i \setminus C} p[u_j] = 1$}
|
||||
\State $y_j = \frac{1}{\mathcal{H}(G_S)} \cdot p[u_j]$ \Comment{$\mathcal{H}(G_S) \cdot y_j = p[u_j]$}
|
||||
\EndFor
|
||||
\State $C = C \cup S_i$
|
||||
\EndWhile
|
||||
\State\Return $(x_1, \dots, x_m)$
|
||||
\end{algorithmic}
|
||||
|
||||
\begin{satz}
|
||||
\primaldualsctwo{} liefert eine Überdeckung der relativen Güte $\mathcal{H}(G_S)$ in Zeit $\bigO(n\cdot m)$.
|
||||
\end{satz}
|
||||
\begin{proof}
|
||||
Erneut kann die While-Schleife maximal $n$ Mal durchlaufen werden, und die Bestimmung des Index $i$ kann $\bigO(m)$ Schritte dauern.
|
||||
|
||||
Zunächst ist zu zeigen, dass $\vec{y}$ eine zulässige Lösung von $Y_\rel$ bildet:
|
||||
Betrachte die $i$. Nebenbedingung und die zugehörige Gruppe $S_i = \{u_{j_1},\dots,u_{j_k}\}$, wobei die Objekte in o.B.d.A. genau dieser Reihenfolge durch den Algorithmus überdeckt worden sein sollen.
|
||||
Es gilt $k \le G_S$.
|
||||
Nun wird die Runde betrachtet, in der $u_{j_l}$ überdeckt wurde.
|
||||
Wäre $S_i$ in dieser Runde gewählt worden, wären neben $u_{j_1}$ noch $k - l$ weitere Objekte unüberdeckt.
|
||||
Die tatsächlich gewählte Gruppe trifft also noch mindestens $k - l + 1$ Objekte inklusive $u_{j_l}$.
|
||||
Damit gilt $p[u_{j_l}] \le \frac{1}{k - l + 1}$ und
|
||||
\begin{equation*}
|
||||
y_{j_l} \le \frac{1}{\mathcal{H}(G_S)}\cdot \frac{1}{k - l + 1}
|
||||
\end{equation*}
|
||||
Folglich ist die $i$. Nebenbedingung des Duals erfüllt mit
|
||||
\begin{equation*}
|
||||
\sum_{l=1}^{k} y_{j_l} \le \frac{1}{\mathcal{H}(G_S)} \cdot \sum_{l=1}^{k} \frac{1}{k - l + 1} = \frac{\mathcal{H}(k)}{\mathcal{H}(G_S)} \le 1
|
||||
\end{equation*}
|
||||
|
||||
Für die ausgegebene Überdeckung gilt
|
||||
\begin{equation*}
|
||||
\primaldualsctwo(S) = \sum_{i=1}^{m} x_i = \sum_{j=1}^{n}p[u_j] = \mathcal{H}(G_S) \cdot \sum_{j=1}^{n} y_j \le \mathcal{H}(G_S) \cdot \opt(S)
|
||||
\end{equation*}
|
||||
\end{proof}
|
||||
|
||||
Mit $G_S \le n$ folgt unmittelbar, die relative Gütegarantie von $\ln n + 1$ von \primaldualsctwo{}.
|
||||
\end{document}
|
Loading…
Reference in New Issue
Block a user