98 lines
3.4 KiB
TeX
98 lines
3.4 KiB
TeX
\documentclass[12pt]{article}
|
|
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage[T1]{fontenc}
|
|
\usepackage[ngerman,provide=*]{babel}
|
|
\usepackage{amsmath}
|
|
\usepackage{amssymb}
|
|
\usepackage[a4paper,margin=2.5cm]{geometry}
|
|
|
|
\title{Hausaufgabe 12}
|
|
\author{Marek Lenczewski \\ Matrikelnummer: 1025252}
|
|
\date{6.\ Juli 2026}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\section*{Hausaufgabe 12.1}
|
|
|
|
\subsection*{Teil (a): Der Algorithmus hat Güte 2}
|
|
|
|
Zu zeigen ist, dass der Algorithmus die Güte 2 hat, also die Lösung vom
|
|
Algorithmus mindestens halb so gut ist wie die optimale Lösung. Also
|
|
$\nu(A(\varphi)) \ge \frac{1}{2}\nu(OPT(\varphi))$ für alle Eingaben $\varphi$. \\
|
|
|
|
Sei $\varphi$ eine beliebige 3-SAT-Formel mit $m$ Klauseln
|
|
$C_1, C_2, \dots, C_m$, wobei jede Klausel genau 3 Literale enthält. \\
|
|
|
|
Betrachte die beiden Belegungen $\beta_0$ (alle Variablen false) und $\beta_1$
|
|
(alle Variablen true):
|
|
\begin{itemize}
|
|
\item Unter $\beta_0$ ist jedes negative Literal wahr.
|
|
\item Unter $\beta_1$ ist jedes positive Literal wahr.
|
|
\end{itemize}
|
|
Jedes Literal ist positiv oder negativ. Jede Klausel $C_i$ enthält mindestens
|
|
ein Literal. Also wird jede Klausel unter $\beta_0$ oder unter $\beta_1$ (oder
|
|
unter beiden) erfüllt. \\
|
|
|
|
Sei $\nu_0 = \nu(\beta_0)$ die Anzahl der von $\beta_0$ erfüllten Klauseln und
|
|
$\nu_1 = \nu(\beta_1)$ die Anzahl der von $\beta_1$ erfüllten Klauseln. Da jede
|
|
Klausel zu $\nu_0$ oder $\nu_1$ zählt, gilt
|
|
\[
|
|
\nu_0 + \nu_1 \ge m.
|
|
\]
|
|
|
|
Der Algorithmus wählt die Belegung mit den meisten erfüllten Klauseln, also
|
|
\[
|
|
\nu(A(\varphi)) = \max\{\nu_0, \nu_1\} \ge \frac{\nu_0 + \nu_1}{2}
|
|
\ge \frac{m}{2}.
|
|
\]
|
|
|
|
Da die optimale Lösung höchstens alle $m$ Klauseln erfüllen kann, gilt
|
|
$\nu(OPT(\varphi)) \le m$. Daraus folgt
|
|
\[
|
|
\nu(A(\varphi)) \ge \frac{m}{2} \ge \frac{\nu(OPT(\varphi))}{2}.
|
|
\]
|
|
|
|
Somit hat der Algorithmus eine Güte von 2. \hfill $\square$
|
|
|
|
\subsection*{Teil (b): Formel mit genau der Hälfte}
|
|
|
|
Der Algorithmus erfüllt genau die Hälfte der maximal erfüllbaren Klauseln, wenn
|
|
$\beta_0$ und $\beta_1$ jeweils nur eine Klausel erfüllen, das Optimum aber
|
|
beide Klauseln erfüllt. \\
|
|
|
|
\textbf{Formel:}
|
|
$\varphi = (x_1 \vee x_2 \vee x_3) \wedge (\neg x_1 \vee \neg x_2 \vee \neg x_3)$
|
|
|
|
\textbf{Unter $\beta_0$ (alle false):}
|
|
\begin{itemize}
|
|
\item $C_1 = (x_1 \vee x_2 \vee x_3) = (\text{false} \vee \text{false} \vee \text{false}) = \text{false}$
|
|
\item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\text{true} \vee \text{true} \vee \text{true}) = \text{true}$
|
|
\item $\nu(\beta_0) = 1$
|
|
\end{itemize}
|
|
|
|
\textbf{Unter $\beta_1$ (alle true):}
|
|
\begin{itemize}
|
|
\item $C_1 = (x_1 \vee x_2 \vee x_3) = (\text{true} \vee \text{true} \vee \text{true}) = \text{true}$
|
|
\item $C_2 = (\neg x_1 \vee \neg x_2 \vee \neg x_3) = (\text{false} \vee \text{false} \vee \text{false}) = \text{false}$
|
|
\item $\nu(\beta_1) = 1$
|
|
\end{itemize}
|
|
|
|
Der Algorithmus wählt
|
|
$\nu(A(\varphi)) = \max\{\nu(\beta_0), \nu(\beta_1)\} = \max\{1, 1\} = 1$. \\
|
|
|
|
Eine optimale Lösung wäre zum Beispiel $x_1 = \text{true}, x_2 = \text{false},
|
|
x_3 = \text{false}$:
|
|
\begin{itemize}
|
|
\item $C_1 = (\text{true} \vee \text{false} \vee \text{false}) = \text{true}$
|
|
\item $C_2 = (\text{false} \vee \text{true} \vee \text{true}) = \text{true}$
|
|
\end{itemize}
|
|
|
|
Daraus ergibt sich $\nu(OPT(\varphi)) = 2$, also
|
|
$\nu(A(\varphi)) = 1 = \frac{\nu(OPT(\varphi))}{2}$. Der Algorithmus erfüllt
|
|
genau die Hälfte der maximal erfüllbaren Klauseln. \hfill $\square$
|
|
|
|
\end{document}
|