Files
aak/hausaufgaben/meine_loeasung/hausaufgabe_12_loesung.tex
2026-07-20 22:34:19 +02:00

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}