RandRoundingSC[r]
This commit is contained in:
parent
22813a82eb
commit
2237bdd266
Binary file not shown.
@ -12,10 +12,8 @@
|
|||||||
\usepackage[load=named]{siunitx}
|
\usepackage[load=named]{siunitx}
|
||||||
\usepackage{csquotes}
|
\usepackage{csquotes}
|
||||||
\usepackage[hidelinks]{hyperref}
|
\usepackage[hidelinks]{hyperref}
|
||||||
%\usepackage{listings}
|
|
||||||
\usepackage{algorithmicx}
|
\usepackage{algorithmicx}
|
||||||
\usepackage{algpseudocode}
|
\usepackage{algpseudocode}
|
||||||
%\usepackage{pgfplots}
|
|
||||||
\usepackage{tikz}
|
\usepackage{tikz}
|
||||||
%\usetikzlibrary{positioning}
|
%\usetikzlibrary{positioning}
|
||||||
%\usetikzlibrary{arrows.meta}
|
%\usetikzlibrary{arrows.meta}
|
||||||
@ -25,6 +23,7 @@
|
|||||||
%\usetikzlibrary{fit}
|
%\usetikzlibrary{fit}
|
||||||
%\usepackage{datetime}
|
%\usepackage{datetime}
|
||||||
%\usepackage{xcolor}
|
%\usepackage{xcolor}
|
||||||
|
\usepackage{lmodern}
|
||||||
|
|
||||||
% Formatierung
|
% Formatierung
|
||||||
\newcommand*{\algo}[1]{\textsc{#1}}
|
\newcommand*{\algo}[1]{\textsc{#1}}
|
||||||
@ -87,6 +86,7 @@
|
|||||||
\newcommand{\setcover}{\problem{SetCover}}
|
\newcommand{\setcover}{\problem{SetCover}}
|
||||||
\newcommand{\cov}{\mathrm{cov}}
|
\newcommand{\cov}{\mathrm{cov}}
|
||||||
\newcommand{\detroundsc}{\algo{DetRoundSC}}
|
\newcommand{\detroundsc}{\algo{DetRoundSC}}
|
||||||
|
\newcommand{\randroundingscr}{\algo{RandRoundingSC}[r]}
|
||||||
|
|
||||||
% Beweisumgebungen
|
% Beweisumgebungen
|
||||||
\newtheorem*{satz}{Satz}
|
\newtheorem*{satz}{Satz}
|
||||||
@ -452,7 +452,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
|
|||||||
\ForAll{$u_i \in V$}
|
\ForAll{$u_i \in V$}
|
||||||
\State $c_\vertices(u_i) = \infty$
|
\State $c_\vertices(u_i) = \infty$
|
||||||
\EndFor
|
\EndFor
|
||||||
\ForAll{$i \in [1,\dots, \abs{V}]$}
|
\ForAll{$i \in \{1,\dots, \abs{V}\}$}
|
||||||
\State $c_\vertices(u_i) = \min\{\naturals\setminus\{c_\vertices(\Gamma(u_i))\}\}$
|
\State $c_\vertices(u_i) = \min\{\naturals\setminus\{c_\vertices(\Gamma(u_i))\}\}$
|
||||||
\EndFor
|
\EndFor
|
||||||
\State\Return $c_\vertices$
|
\State\Return $c_\vertices$
|
||||||
@ -517,7 +517,7 @@ Sei $\Pi$ ein Optimierungsproblem und $A$ ein Approximationsalgorithmus für $\P
|
|||||||
TODO: Übung
|
TODO: Übung
|
||||||
|
|
||||||
|
|
||||||
\section{Christofides' Algorithmus \algo{CH} für das metrische \tsp $\deltatsp$}
|
\section{Christofides' Algorithmus \algo{CH} für $\deltatsp$}
|
||||||
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
|
Ein Matching $M$ eines kantengewichteten Graphen $G$ ist ein Teilgraph von $G$ mit $\Delta(G) \le 1$. Ist $G$ ein vollständiger Graph mit $\abs{V}$ gerade, dann gibt es perfekte Matchings. In einem perfekten Matching haben alle Knoten genau den Grad 1. Ein perfektes Matching mit kleinstmöglichem Gewicht wird als leichtestes Matching bezeichnet. Ein solches leichtestes Matching kann in $\bigO(n^{2.5}\cdot (\log n)^4)$ berechnet werden.
|
||||||
|
|
||||||
Als Multi-Graph wird ein Graph bezeichnet, der um mehrere Kanten zwischen den gleichen Knoten erweitert wurde.
|
Als Multi-Graph wird ein Graph bezeichnet, der um mehrere Kanten zwischen den gleichen Knoten erweitert wurde.
|
||||||
@ -591,7 +591,7 @@ Der Algorithmus \dynrucksack{} setzt diese durch dynamische Programmierung um:
|
|||||||
\State $\alpha = 0$
|
\State $\alpha = 0$
|
||||||
\Repeat
|
\Repeat
|
||||||
\State $\alpha = \alpha + 1$
|
\State $\alpha = \alpha + 1$
|
||||||
\For{$j = 1$ to $n$}
|
\For{$i \in \{1,\dots,n\}$}
|
||||||
\State $F_j(\alpha) = \min\{F_{j-1}(\alpha - p_j) + \vol(j), F_{j-1}(\alpha)\}$
|
\State $F_j(\alpha) = \min\{F_{j-1}(\alpha - p_j) + \vol(j), F_{j-1}(\alpha)\}$
|
||||||
\EndFor
|
\EndFor
|
||||||
\Until{$B < F_n(\alpha)$}
|
\Until{$B < F_n(\alpha)$}
|
||||||
@ -658,7 +658,7 @@ Der Algorithmus \fpasrucksack{} verwendet dazu \algo{AR\textsubscript{$k$}} und
|
|||||||
|
|
||||||
Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, in dem eine Belegung für jede Variable stochastisch unabhängig durchgeführt wird:
|
Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus, in dem eine Belegung für jede Variable stochastisch unabhängig durchgeführt wird:
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\For{$i = 1\dots n$}
|
\For{$i \in \{1,\dots,n\}$}
|
||||||
\State $x_i = \begin{cases*}
|
\State $x_i = \begin{cases*}
|
||||||
\true{} & mit Wahrscheinlichkeit $\frac{1}{2}$\\
|
\true{} & mit Wahrscheinlichkeit $\frac{1}{2}$\\
|
||||||
\false{} & mit Wahrscheinlichkeit $\frac{1}{2}$
|
\false{} & mit Wahrscheinlichkeit $\frac{1}{2}$
|
||||||
@ -740,7 +740,7 @@ Im Allgemeinen ist die rationale Lösung $\sigma_\rel$ von $B_\rel$ also keine z
|
|||||||
Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \false{} oder \true{}) gerundet müssen.
|
Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \false{} oder \true{}) gerundet müssen.
|
||||||
Eine Möglichkeit hierzu stellt der durch die stochastische Funktion $\phi: \left[0, 1\right] \mapsto \left[0, 1\right]$ parametrisierte Algorithmus $\algo{RandomizedRounding}[\pi]$ dar:
|
Eine Möglichkeit hierzu stellt der durch die stochastische Funktion $\phi: \left[0, 1\right] \mapsto \left[0, 1\right]$ parametrisierte Algorithmus $\algo{RandomizedRounding}[\pi]$ dar:
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\For{$i = 1\dots n$}
|
\For{$i \in \{1,\dots,n\}$}
|
||||||
\State $x_i = \begin{cases*}
|
\State $x_i = \begin{cases*}
|
||||||
\true{} & mit Wahrscheinlichkeit $\pi(\hat{x}_i)$\\
|
\true{} & mit Wahrscheinlichkeit $\pi(\hat{x}_i)$\\
|
||||||
\false{} & mit Wahrscheinlichkeit $1 - \pi(\hat{x}_i)$\\
|
\false{} & mit Wahrscheinlichkeit $1 - \pi(\hat{x}_i)$\\
|
||||||
@ -842,7 +842,7 @@ Man macht sich hierbei unter anderem die Eigenschaft des randomisierten Algorith
|
|||||||
|
|
||||||
Der Algorithmus \algo{Derand\_$A$} benutzt den Erwartungswert für Algorithmus $A$ um nach und nach alle Variablen $x_i$ zu belegen. Für jede Variable wird einmal \true{} und \false{} eingesetzt, dann mit der resultierenden Formel mit höherem Erwartungswert fortgefahren:
|
Der Algorithmus \algo{Derand\_$A$} benutzt den Erwartungswert für Algorithmus $A$ um nach und nach alle Variablen $x_i$ zu belegen. Für jede Variable wird einmal \true{} und \false{} eingesetzt, dann mit der resultierenden Formel mit höherem Erwartungswert fortgefahren:
|
||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\For{$i = 1\dots n(I)$}
|
\For{$i \in \{1,\dots,n(I)\}$}
|
||||||
\State $W_\false{} = E\left[A(I)\mid x_1,\dots,x_{i-1}, x_i = \false{}\right]$
|
\State $W_\false{} = E\left[A(I)\mid x_1,\dots,x_{i-1}, x_i = \false{}\right]$
|
||||||
\State $W_\true{} = E\left[A(I)\mid x_1,\dots,x_{i-1}, x_i = \true{}\right]$
|
\State $W_\true{} = E\left[A(I)\mid x_1,\dots,x_{i-1}, x_i = \true{}\right]$
|
||||||
\If{$W_\false{} < W_\true{}$}
|
\If{$W_\false{} < W_\true{}$}
|
||||||
@ -914,7 +914,7 @@ Damit lautet das ILP $X$ für \setcover:
|
|||||||
\begin{algorithmic}[1]
|
\begin{algorithmic}[1]
|
||||||
\State $(x_1, \dots, x_m) = $ löse $X_\rel$
|
\State $(x_1, \dots, x_m) = $ löse $X_\rel$
|
||||||
\State $S_\cov = \emptyset$
|
\State $S_\cov = \emptyset$
|
||||||
\For{$I = 1\dots m$}
|
\For{$i \in \{1,\dots,m\}$}
|
||||||
\If{$x_i \ge \frac{1}{\Delta_S}$}
|
\If{$x_i \ge \frac{1}{\Delta_S}$}
|
||||||
\State $S_\cov = S_\cov \cup \{S_i\}$
|
\State $S_\cov = S_\cov \cup \{S_i\}$
|
||||||
\EndIf
|
\EndIf
|
||||||
@ -939,4 +939,41 @@ Damit lautet das ILP $X$ für \setcover:
|
|||||||
\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{equation*}
|
||||||
\end{proof}
|
\end{proof}
|
||||||
|
|
||||||
|
\subsection{Unzuverlässiges Randomized Rounding mit $\randroundingscr$}
|
||||||
|
\begin{algorithmic}[1]
|
||||||
|
\State $(x_1, \dots, x_m) =$ löse $X_\rel$
|
||||||
|
\State $\chi = \emptyset$
|
||||||
|
\For{$i \in \{1,\dots,m\}$}
|
||||||
|
\State mit Wahrscheinlichkeit $1 - e^{-r \cdot x_i}$: $\chi = \chi \cup \{S_i\}$
|
||||||
|
\EndFor
|
||||||
|
\State \Return $\chi$
|
||||||
|
\end{algorithmic}
|
||||||
|
\randroundingscr{} ist ein sogenannter Monte-Carlo-Algorithmus, weil er auch nicht zulässige Lösungen zurückliefern kann.
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Für eine Eingabe $S$ von \setcover{} sei $\chi$ die Ausgabe von $\randroundingscr$. Dann gelten
|
||||||
|
\begin{enumerate}
|
||||||
|
\item $P\left[\chi\,\text{ist eine Überdeckung}\right] \ge 1 - n \cdot e^{-r}$
|
||||||
|
\item $E\left[\abs{\chi}\right] \le r \cdot \opt(S)$
|
||||||
|
\end{enumerate}
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Sei $u \in V$, dann gilt:
|
||||||
|
\begin{align*}
|
||||||
|
P\left[u \in V(\chi)\right] &= P\left[\forall i\,\text{mit}\, u \in S_i: S_i \notin \chi\right]\\
|
||||||
|
&= \Pi_{i: u\in S_i} e^{-r \cdot x_i} = \left(\Pi_{i: u\in S_i} e^{-x_i}\right)^r = \left(e^{- \sum_{i: u \in S_i} x_i}\right)^r\\
|
||||||
|
&\le e^{-r}
|
||||||
|
\end{align*}
|
||||||
|
Die Wahrscheinlichkeit, dass es ein nicht überdecktes Objekt gibt, ist folglich
|
||||||
|
\begin{equation*}
|
||||||
|
P\left[\exists U \in V: u \notin V(\chi)\right] \le n \cdot e^{-r}
|
||||||
|
\end{equation*}
|
||||||
|
\item Für $\abs{\chi}$ folgt
|
||||||
|
\begin{equation*}
|
||||||
|
E\left[\abs{\chi}\right] = \sum_{i=1}^{m} P\left[S_i \in \chi\right] = \sum_{i=1}^{m} \left(1 - e^{-r\cdot x_i}\right) \le r\cdot \sum_{i=1}^{m} x_i = r\cdot \opt(X_\rel) \le r \cdot\opt(S)
|
||||||
|
\end{equation*}
|
||||||
|
\end{enumerate}
|
||||||
|
\end{proof}
|
||||||
\end{document}
|
\end{document}
|
||||||
|
Loading…
Reference in New Issue
Block a user