Algorithmus B und Randomized Rounding
This commit is contained in:
parent
740223ec7e
commit
fea7865c92
Binary file not shown.
@ -656,4 +656,83 @@ Der folgende Algorithmus $A$ nutzt die sogenannte probabilistische Methode aus,
|
||||
\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}
|
||||
|
||||
\subsection{Arithmetisierung und Randomized Rounding mit Algorithmus $B$}
|
||||
\problem{Max-SAT} kann auch als Lineares Programm (LP) ausgedrückt werden.
|
||||
Es bezeichnen im Folgenden $S_j^{\oplus}$ die Menge der Variablen, die in $C_j$ nicht negiert vorkommen, und $S_j^{\ominus}$ die Menge der Variablen, die in $C_j$ negiert vorkommen.
|
||||
Für jede boolesche Variable $x_i$ wird eine 0-1-Variable $\hat{x}_i$ eingeführt; für jede Klausel $C_j$ eine 0-1-Variable $\hat{Z}_j$.
|
||||
Es ergibt sich also das folgende ganzahlige lineare Programm (ILP) $B$ für \problem{Max-SAT}:
|
||||
\begin{align*}
|
||||
\text{maximiere} &\quad\sum_{j=1}^{m} \hat{Z}_j\\
|
||||
\text{gemäß} &\quad\sum_{x_i \in S_j^{\oplus}} \hat{x}_i + \sum_{x_i \in S_j^{\ominus}} \left(1 - \hat{x}_i\right) \ge \hat{Z}_j &\forall j\\
|
||||
&\quad\hat{x}_i \in \{0, 1\} &\forall i\\
|
||||
&\quad\hat{Z}_j \in \{0, 1\} &\forall j
|
||||
\end{align*}
|
||||
Relaxiert man die Bedingungen, dass $\hat{x}_i, \hat{Z}_j \in \{0, 1\}$ gelten muss, und stellt fordert stattdessen $\forall i, j: 0\le \hat{x}_i, \hat{Z}_j \le 1$, kann das resultierende LP $B_\mathrm{rel}$ in Polynomzeit gelöst werden. Das LP selbst hat ebenfalls eine polynomiell beschränkte Anzahl an Bedingungen, sodass die Gesammtlaufzeit auch polynomiell beschränkt ist.
|
||||
|
||||
Durch die Relaxierung entsteht die folgende Beziehung (exemplarisch für ein Maximierungsproblem), die als Superoptimalität bezeichnet wird:
|
||||
\begin{equation*}
|
||||
\opt(B_\mathrm{rel}) \ge \opt(B) = \opt(\Phi)
|
||||
\end{equation*}
|
||||
|
||||
Im Allgemeinen ist die rationale Lösung $\sigma_\mathrm{rel}$ von $B_\mathrm{rel}$ also keine zulässige Lösung für $B$.
|
||||
Hierzu müssen die $\hat{x}_i$ auf 0 oder 1 (bzw. die $x$ auf \textsc{False} oder \textsc{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:
|
||||
\begin{algorithmic}[]
|
||||
\For{$i = 1\dots n$}
|
||||
\State $x_i = \begin{cases*}
|
||||
\textsc{True} & mit Wahrscheinlichkeit $\pi(\hat{x}_i)$\\
|
||||
\textsc{False} & mit Wahrscheinlichkeit $1 - \pi(\hat{x}_i)$\\
|
||||
\end{cases*}$
|
||||
\EndFor
|
||||
\State \Return $b_B = (x_1,\dots,x_n)$
|
||||
\end{algorithmic}
|
||||
|
||||
Damit kann dann der Algorithmus $B$ gebildet werden, der \problem{Max-SAT} approximiert:
|
||||
\begin{algorithmic}[]
|
||||
\State konstruiere das LP $B_\mathrm{rel}$ zur Eingabe $\Phi$
|
||||
\State ermittle die rationale Lösung $b_\mathrm{rel}$ von $B_\mathrm{rel}$
|
||||
\State \Return \Call{$\algo{RandomizedRounding}[\pi(x) = x]$}{$b_\mathrm{rel}$}
|
||||
\end{algorithmic}
|
||||
|
||||
\begin{satz}
|
||||
Sei $k_j$ die Anzahl der Literale in $C_j$, dann gilt:
|
||||
\begin{equation*}
|
||||
P\left[C_j\,\text{wird durch den Algorithmus $B$ erfüllt}\right] \ge \left(1 - \left(1 - \frac{1}{k_j}\right)^{k_j}\right)\cdot \hat{Z}_j
|
||||
\end{equation*}
|
||||
\end{satz}
|
||||
\begin{proof}
|
||||
Erneut wird über die Gegenwahrscheinlichkeit argumentiert:
|
||||
\begin{equation*}
|
||||
P\left[C_j\,\text{wird durch den Algorithmus $B$ nicht erfüllt}\right] = \left[\Pi_{x_i\in S_j^{\oplus}} \left(1 - \hat{x}_i\right)\right] \cdot \left[\Pi_{x_i\in S_j^{\ominus}} \hat{x}_i\right]
|
||||
\end{equation*}
|
||||
Es folgt
|
||||
\begin{align*}
|
||||
P&\left[C_j\,\text{wird durch den Algorithmus $B$ erfüllt}\right] = 1- \left[\Pi_{x_i\in S_j^{\oplus}} \left(1 - \hat{x}_i\right)\right] \cdot \left[\Pi_{x_i\in S_j^{\ominus}} \hat{x}_i\right]\\
|
||||
&\ge 1 - \left(\frac{\sum_{x_i \in S_j^{\oplus}}\left(1 - \hat{x}_i\right) + \sum_{x_i \in S_j^{\ominus}}\hat{x}_i}{k_j}\right)^{k_j}\\
|
||||
&= 1 - \left(\frac{\abs{S_j^{\oplus}} - \sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \abs{S_j^{\ominus}} - \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)}{k_j}\right)^{k_j}\\
|
||||
&= 1 - \left(\frac{k_j - \left(\sum_{x_i \in S_j^{\oplus}}\hat{x}_i + \sum_{x_i \in S_j^{\ominus}}\left(1 -\hat{x}_i\right)\right)}{k_j}\right)^{k_j}\\
|
||||
&\overset{\text{NB von $B$}}{\ge} 1 - \left(1 - \frac{\hat{Z}_j}{k_j}\right)^{k_j} \overset{\text{Konkavität}}{\ge} \left(1 - \left(1 - \frac{1}{k_j}\right)^{k_j}\right)\cdot \hat{Z}_j
|
||||
\end{align*}
|
||||
\end{proof}
|
||||
|
||||
\begin{satz}
|
||||
Für jede boolesche Formel $\Phi$ in KNF, in der jede Klausel höchstens $k$ Literale hat, gilt
|
||||
\begin{equation*}
|
||||
E\left[B(\Phi)\right] \ge \left(1 - \left(1 - \frac{1}{k}\right)^{k}\right)\cdot\opt(\Phi)
|
||||
\end{equation*}
|
||||
\end{satz}
|
||||
\begin{satz}
|
||||
Mit der bekannten Abschätzung $1 - \left(1 - \frac{1}{k}\right)^k \ge 1 -\frac{1}{e}$ für alle $k \in \mathbb{N}$
|
||||
beträgt die erwartete Anzahl an erfüllten Klauseln von Algorithmus $B$ bei einer Eingabe $\Phi$ in KNF mindestens $\left(1 - \frac{1}{e}\right)\cdot\opt(\Phi) \approx 0.632\cdot\opt(\Phi)$.
|
||||
|
||||
Algorithmus $B$ hat also eine erwartete relative Güte von
|
||||
\begin{equation*}
|
||||
E\left[\rho_B(\Phi)\right] \le \frac{1}{1 - \frac{1}{e}} \approx 1.582
|
||||
\end{equation*}
|
||||
\end{satz}
|
||||
|
||||
\begin{satz}
|
||||
Mit $\pi(x) = \frac{1}{2}\cdot x + \frac{1}{4}$ oder $1 - \frac{1}{4^x} \le \pi(x) \le 4^{x-1}$ kann Algorithmus $B$ sogar eine erwartete relative Güte von $\frac{4}{3}$ erreichen.
|
||||
\end{satz}
|
||||
\end{document}
|
||||
|
Loading…
Reference in New Issue
Block a user