150 lines
5.5 KiB
TeX
150 lines
5.5 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 11}
|
|
\author{Marek Lenczewski \\ Matrikelnummer: 1025252}
|
|
\date{29.\ Juni 2026}
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\section*{Hausaufgabe 11.1}
|
|
|
|
\subsection*{Teil 1: $\Delta$-Cover ist in NP}
|
|
|
|
Eingabe: Graph $G = (V, E)$, Zahl $k$ und Zertifikat $C_\Delta \subseteq V$. \\
|
|
|
|
Der Verifizierer arbeitet wie folgt:
|
|
|
|
\begin{itemize}
|
|
\item Prüfe ob $|C_\Delta| \le k$, lehne ab falls $|C_\Delta| > k$.
|
|
\item Prüfe für jedes Knotentripel $\{a, b, c\} \subseteq V$, ob es ein
|
|
Dreieck bildet (also ob $\{a,b\}, \{b,c\}, \{a,c\} \in E$).
|
|
\item Lehne ab, falls ein solches Dreieck kein $a$, $b$ oder $c$ in
|
|
$C_\Delta$ hat.
|
|
\item Sonst akzeptiere.
|
|
\end{itemize}
|
|
|
|
Existiert eine Dreiecksüberdeckung $C_\Delta$ mit $|C_\Delta| \le k$, dann gibt
|
|
es ein Zertifikat dafür. Dieses wird vom Verifizierer akzeptiert und sonst
|
|
abgelehnt. \\
|
|
|
|
Die Größenprüfung läuft in $O(|V|)$ und das Prüfen aller Tripel in $O(|V|^3)$,
|
|
somit in poly. Zeit. Also gilt $\Delta\text{-}COVER \in NP$.
|
|
|
|
\subsection*{Teil 2: $\Delta$-Cover ist NP-schwer}
|
|
|
|
Zeige, dass $\Delta\text{-}COVER$ NP-schwer ist durch die Reduktion: \\
|
|
$VERTEXCOVER \le \Delta\text{-}COVER$. \\
|
|
$VERTEXCOVER$ ist bereits als NP-vollständig bekannt. \\
|
|
|
|
\textbf{Konstruktion}: Sei $G = (V, E)$ und $k$ eine Instanz von $VERTEXCOVER$. \\
|
|
Wir konstruieren daraus eine $\Delta\text{-}COVER$-Instanz $G' = (V', E')$ durch:
|
|
\begin{itemize}
|
|
\item Für jede Kante $e = \{u, v\} \in E$ füge einen neuen Knoten $w_e$ hinzu.
|
|
\item $V' = V \cup \{ w_e \mid e \in E \}$
|
|
\item $E' = E \cup \{ \{u, w_e\}, \{v, w_e\} \mid e = \{u,v\} \in E \}$
|
|
\item $k' = k$
|
|
\end{itemize}
|
|
So wird aus jeder Kante $e = \{u, v\}$ ein Dreieck $\{u, v, w_e\}$. \\
|
|
|
|
\textbf{Beweis VertexCover nach $\Delta$-Cover}:
|
|
|
|
\begin{itemize}
|
|
\item Sei $C$ ein VertexCover von $G$ mit $|C| \le k$.
|
|
\item Zu zeigen sei, dass $C$ auch eine $\Delta$-Cover für $G'$ mit
|
|
$|C| \le k'$ ist.
|
|
\item Jedes Dreieck in $G'$ hat die Form $\{u, v, w_e\}$ für eine Kante
|
|
$e = \{u, v\} \in E$.
|
|
\item Da $C$ ein VertexCover ist, gilt $u \in C$ oder $v \in C$.
|
|
\item Somit hat jedes Dreieck mindestens einen Knoten in $C$.
|
|
\item Also ist $C$ eine $\Delta$-Cover für $G'$ mit $|C| \le k'$.
|
|
\end{itemize}
|
|
|
|
\textbf{Beweis $\Delta$-Cover nach VertexCover}:
|
|
|
|
\begin{itemize}
|
|
\item Sei $C_\Delta$ eine $\Delta$-Cover für $G'$ mit $|C_\Delta| \le k'$.
|
|
\item Jede Kante $e = \{u, v\} \in E$ bildet durch $\{u, v, w_e\}$ ein Dreieck
|
|
in $G'$.
|
|
\item Also gilt $u, v$ oder $w_e \in C_\Delta$ für alle Kanten $e \in E$.
|
|
\item Falls $w_e \in C_\Delta$, dann kann man $w_e$ durch $u$ ersetzen, ohne
|
|
die Eigenschaft von $\Delta$-Cover zu verletzen.
|
|
\item Denn $w_e$ liegt in genau einem Dreieck $\{u, v, w_e\}$, das auch durch
|
|
$u$ gedeckt wird.
|
|
\item So entsteht eine Menge $C$ mit $|C| \le |C_\Delta| \le k$, die nur noch
|
|
Knoten aus $V$ enthält.
|
|
\item Für jede Kante $e = \{u, v\} \in E$ gilt nun $u \in C$ oder $v \in C$.
|
|
\item Also ist $C$ ein VertexCover für $G$ mit $|C| \le k$.
|
|
\end{itemize}
|
|
|
|
\textbf{Laufzeit}: Pro Kante werden ein Knoten und zwei Kanten hinzugefügt
|
|
$O(|E|)$, also bleibt die Transformation polynomiell. \\
|
|
|
|
|
|
Da $\Delta\text{-}COVER \in NP$ und NP-schwer ist, folgt dass
|
|
$\Delta\text{-}COVER$ NP-vollständig ist. \hfill $\square$
|
|
|
|
\newpage
|
|
|
|
\section*{Hausaufgabe 11.2}
|
|
|
|
\subsection*{$HALT_{TM}$ ist NP-schwer}
|
|
|
|
Zeige, dass $HALT_{TM}$ NP-schwer ist durch die Reduktion: \\
|
|
$SAT \le HALT_{TM}$. \\
|
|
$SAT$ ist bereits als NP-vollständig bekannt, also insbesondere NP-schwer. \\
|
|
|
|
\textbf{Konstruktion}: Sei $\varphi$ eine $SAT$-Instanz mit den Variablen
|
|
$x_1, \dots, x_n$. \\
|
|
Wir konstruieren daraus eine $HALT_{TM}$-Instanz $\langle M, w \rangle$ durch:
|
|
\begin{itemize}
|
|
\item $w = \langle \varphi \rangle$, also die Kodierung der Formel $\varphi$.
|
|
\item $M$ ist eine feste DTM , die auf Eingabe
|
|
$\langle \varphi \rangle$ wie folgt arbeitet:
|
|
\begin{enumerate}
|
|
\item Lese $\varphi$ und probiere nacheinander alle $2^n$ Belegungen
|
|
$\beta$ der Variablen $x_1, \dots, x_n$.
|
|
\item Falls eine Belegung $\beta$ die Formel $\varphi$ erfüllt, halte.
|
|
\item Falls alle $2^n$ Belegungen geprüft wurden und keine $\varphi$
|
|
erfüllt, gehe in eine Endlosschleife.
|
|
\end{enumerate}
|
|
\end{itemize}
|
|
Die Abbildung $f(\varphi) = \langle M, w \rangle$ kodiert nur $\varphi$; die
|
|
Maschine $M$ ist konstant. Somit ist $f$ in poly. Zeit berechenbar. \\
|
|
|
|
\textbf{Beweis SAT nach $HALT_{TM}$}:
|
|
|
|
\begin{itemize}
|
|
\item Sei $\varphi \in SAT$.
|
|
\item Dann existiert eine erfüllende Belegung $\beta$.
|
|
\item $M$ probiert alle Belegungen und findet $\beta$, also hält $M$ auf $w$.
|
|
\item Damit gilt $\langle M, w \rangle \in HALT_{TM}$.
|
|
\end{itemize}
|
|
|
|
\textbf{Beweis $HALT_{TM}$ nach SAT}:
|
|
|
|
\begin{itemize}
|
|
\item Sei $\langle M, w \rangle \in HALT_{TM}$, also hält $M$ auf $w$.
|
|
\item $M$ hält nur, wenn es eine erfüllende Belegung $\beta$ findet.
|
|
\item Denn ohne erfüllende Belegung geht $M$ in die Endlosschleife.
|
|
\item Also existiert eine erfüllende Belegung für $\varphi$.
|
|
\item Damit gilt $\varphi \in SAT$.
|
|
\end{itemize}
|
|
|
|
\textbf{Laufzeit}: Es wird nur $\varphi$ kodiert und die feste Maschine $M$
|
|
ausgegeben $O(|\varphi|)$, also bleibt die Transformation polynomiell. \\
|
|
|
|
|
|
Da $SAT$ NP-schwer ist und $SAT \le HALT_{TM}$ gilt, folgt dass $HALT_{TM}$
|
|
NP-schwer ist. \hfill $\square$
|
|
|
|
\end{document}
|