DetRoundSC für SetCover

This commit is contained in:
Marco Ammon 2020-10-15 16:29:30 +02:00
parent 56b2303a68
commit 22813a82eb
2 changed files with 31 additions and 0 deletions

Binary file not shown.

View File

@ -86,6 +86,7 @@
% Set-Cover % Set-Cover
\newcommand{\setcover}{\problem{SetCover}} \newcommand{\setcover}{\problem{SetCover}}
\newcommand{\cov}{\mathrm{cov}} \newcommand{\cov}{\mathrm{cov}}
\newcommand{\detroundsc}{\algo{DetRoundSC}}
% Beweisumgebungen % Beweisumgebungen
\newtheorem*{satz}{Satz} \newtheorem*{satz}{Satz}
@ -908,4 +909,34 @@ Damit lautet das ILP $X$ für \setcover:
\gamma \ge \frac{1}{2}\cdot \log n \gamma \ge \frac{1}{2}\cdot \log n
\end{equation*} \end{equation*}
\end{satz} \end{satz}
\subsection{Deterministisches Runden mit \detroundsc}
\begin{algorithmic}[1]
\State $(x_1, \dots, x_m) = $ löse $X_\rel$
\State $S_\cov = \emptyset$
\For{$I = 1\dots m$}
\If{$x_i \ge \frac{1}{\Delta_S}$}
\State $S_\cov = S_\cov \cup \{S_i\}$
\EndIf
\EndFor
\State \Return $S_\cov$
\end{algorithmic}
\begin{satz}
\detroundsc{} berechnet für eine Instanz $S$ von \setcover{} in Zeit $\bigO(m + L(nm, m))$ eine Überdeckung.
Ferner gilt $\detroundsc(S) \le \Delta_S \cdot \opt(S)$.
\end{satz}
\begin{proof}
Zu einem beliebigen Objekt $u\in V$ gehört die Nebenbedingung $\sum_{i: u \in S_i} x_i \ge 1$ mit $\degree_S(u)$ Summanden.
Mit einem Durchschnittsargument kann jetzt also gefolgert werden, dass für einen der Summanden $x_i$ gilt:
\begin{equation*}
x_i \ge \frac{1}{\degree_S(u)} \ge \frac{1}{\Delta_S}
\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
\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)
\end{equation*}
\end{proof}
\end{document} \end{document}