diff --git a/zusammenfassung.pdf b/zusammenfassung.pdf index 087def4..731861d 100644 Binary files a/zusammenfassung.pdf and b/zusammenfassung.pdf differ diff --git a/zusammenfassung.tex b/zusammenfassung.tex index 31901b9..2a4a514 100644 --- a/zusammenfassung.tex +++ b/zusammenfassung.tex @@ -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} \ No newline at end of file