Algorithmus A mit probabilistischer Methode
This commit is contained in:
parent
70b26c4291
commit
740223ec7e
Binary file not shown.
@ -582,4 +582,78 @@ Der Algorithmus \algo{FPASRucksack} verwendet dazu \algo{AR\textsubscript{$k$}}
|
|||||||
\begin{satz}
|
\begin{satz}
|
||||||
\algo{FPASRucksack} ist ein FPAS für \problem{Rucksack} mit einer Laufzeit von $\mathcal{O}\left(n \cdot \log \frac{1}{\varepsilon} + \frac{1}{\varepsilon^4}\right)$.
|
\algo{FPASRucksack} ist ein FPAS für \problem{Rucksack} mit einer Laufzeit von $\mathcal{O}\left(n \cdot \log \frac{1}{\varepsilon} + \frac{1}{\varepsilon^4}\right)$.
|
||||||
\end{satz}
|
\end{satz}
|
||||||
|
|
||||||
|
\section{Randomisierte Approximationsalgorithmen}
|
||||||
|
\subsection{Die probabilistische Methode mit Algorithmus $A$}
|
||||||
|
\begin{satz}
|
||||||
|
Sei $\Phi$ eine boolesche $(n,m)$-Formel in KNF, dann gilt
|
||||||
|
\begin{equation*}
|
||||||
|
\max\{\mathrm{wahr}\left(\textsc{False}, \dots, \textsc{False}, \Phi\right), \mathrm{wahr}\left(\textsc{True}, \dots, \textsc{True}, \Phi\right)\} \ge \frac{1}{2}\cdot m
|
||||||
|
\end{equation*}
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
TODO
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
|
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}
|
||||||
|
\For{$i = 1\dots n$}
|
||||||
|
\State $x_i = \begin{cases*}
|
||||||
|
\textsc{True} & mit Wahrscheinlichkeit $\frac{1}{2}$\\
|
||||||
|
\textsc{False} & mit Wahrscheinlichkeit $\frac{1}{2}$
|
||||||
|
\end{cases*}$
|
||||||
|
\EndFor
|
||||||
|
\State \Return $b_A = (x_1, \dots, x_n)$
|
||||||
|
\end{algorithmic}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Sei $k_j$ die Anzahl der Literale in $C_j$. Es gilt
|
||||||
|
\begin{equation*}
|
||||||
|
P\left[C_j\,\text{wird durch den Algorithmus $A$ erfüllt}\right] = 1 - \frac{1}{2^{k_j}}
|
||||||
|
\end{equation*}
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
Beweis über Gegenwahrscheinlichkeit, dass alle Literale nicht erfüllt sind (stochastische Unabhängigkeit).
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Für jede boolesche $(n, m)$-Formel $\Phi$ in KNF, in der jede Klausel mindestens $k$ Literale hat, gilt:
|
||||||
|
\begin{equation*}
|
||||||
|
E\left[A(\Phi)\right] \ge \left(1 - \frac{1}{2^k}\right) \cdot m
|
||||||
|
\end{equation*}
|
||||||
|
Des Weiteren existiert eine Belegung $b$ mit $\mathrm{wahr}(b, \Phi) \ge \left(1 - \frac{1}{2^k}\right) \cdot m$.
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
Für jede Klausel $C_j$ wird eine Indikator-Variable $Z_j$ mit
|
||||||
|
\begin{equation*}
|
||||||
|
Z_j = \begin{cases*}
|
||||||
|
1 & falls $b_A(C_j) = $\textsc{True}\\
|
||||||
|
0 & sonst
|
||||||
|
\end{cases*}
|
||||||
|
\end{equation*}
|
||||||
|
eingeführt. Da ihr Erwartungswert gleich der Wahrscheinlichkeit, dass sie 1 annimmt, ist, folgt
|
||||||
|
\begin{equation*}
|
||||||
|
E\left[A(\Phi)\right] = E\left[\mathrm{wahr}(b_A, \Phi)\right] = E\left[\sum_{j=1}^{m} Z_j\right] = \sum_{j=1}^{m} \left(1 - \frac{1}{2^{k_j}}\right) \ge \left(1 - \frac{1}{2^k}\right) \cdot m
|
||||||
|
\end{equation*}
|
||||||
|
Die Existenz einer solchen Belegung folgt aus einem klassischen Durchschnittsargument.
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Sei $2^k > m$, dann ist jede boolesche $(n,m)$-Formel $\Phi$ in KNF, in der jede Klausel mindestens $k$ Literale hat, erfüllbar.
|
||||||
|
\end{satz}
|
||||||
|
\begin{proof}
|
||||||
|
Eingesetzt in die vorherige Aussage, erhält man dann $\left(1 - \frac{1}{2^k}\right) \cdot m = m - \overbrace{\frac{m}{2^k}}^{< 1}$. Aus einem Durchschnittsargument folgt auch hier, dass es eine Belegung $b$ mit $m - 1 < \mathrm{wahr}(b, \Phi) \le m$ geben muss, wegen der Ganzzahligkeit von $\mathrm{wahr}$ werden also alle $m$ Klauseln erfüllt.
|
||||||
|
\end{proof}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Algorithmus $A$ hat für jede $(n, m)$-Formel $\Phi$ in KNF, in der jede Klausel mindestens $k$ Literale hat, eine erwartete relative Güte von
|
||||||
|
\begin{equation*}
|
||||||
|
E\left[\rho_A(\Phi)\right] = \frac{\opt(\Phi)}{E\left[A(\Phi)\right]} \le \frac{m}{\left(1 - \frac{1}{2^k}\right)\cdot m} = \frac{1}{1 - \frac{1}{2^k}}
|
||||||
|
\end{equation*}
|
||||||
|
. Die Laufzeit des Algorithmus ist $\mathcal{O}(n)$. Wenn die kürzeste Klausel mindestens 2 Literale hat, hat $A$ die erwartete relative Güte $\frac{4}{3}$.
|
||||||
|
\end{satz}
|
||||||
|
|
||||||
|
\begin{satz}
|
||||||
|
Algorithmus $A$ garantiert für jede boolesche $(n,m)$-Formel $\Phi$ in KNF sogar eine erwartete relative Güte von $\frac{3}{2}$.
|
||||||
|
\end{satz}
|
||||||
\end{document}
|
\end{document}
|
||||||
|
Loading…
Reference in New Issue
Block a user