diff --git a/zusammenfassung.pdf b/zusammenfassung.pdf index 77cce59..009278a 100644 Binary files a/zusammenfassung.pdf and b/zusammenfassung.pdf differ diff --git a/zusammenfassung.tex b/zusammenfassung.tex index 5aee456..6349216 100644 --- a/zusammenfassung.tex +++ b/zusammenfassung.tex @@ -582,4 +582,78 @@ Der Algorithmus \algo{FPASRucksack} verwendet dazu \algo{AR\textsubscript{$k$}} \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)$. \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}