diff --git a/übung_7/agt_übung_7.pdf b/übung_7/agt_übung_7.pdf new file mode 100644 index 0000000..3eb87ce Binary files /dev/null and b/übung_7/agt_übung_7.pdf differ diff --git a/übung_7/agt_übung_6.tex b/übung_7/agt_übung_7.tex similarity index 81% rename from übung_7/agt_übung_6.tex rename to übung_7/agt_übung_7.tex index 9eff193..5516d28 100644 --- a/übung_7/agt_übung_6.tex +++ b/übung_7/agt_übung_7.tex @@ -1,7 +1,7 @@ \documentclass[parskip=half]{ngexrcs} \usepackage{hyperref} \usepackage{subcaption} -\setkeys{Gin}{pagebox=artbox, width=0.2\textwidth} +\setkeys{Gin}{pagebox=artbox, width=0.8\textwidth} \subject{Algorithmische Graphentheorie} \title{6. Übungsblatt} @@ -9,7 +9,7 @@ \begin{document} \maketitle -\points[2em]{25} +\points[2em]{20} \input{aufgabe_1.tex} \input{aufgabe_2.tex} diff --git a/übung_7/aufgabe_1.tex b/übung_7/aufgabe_1.tex index eca2512..34222fe 100644 --- a/übung_7/aufgabe_1.tex +++ b/übung_7/aufgabe_1.tex @@ -1,58 +1,32 @@ -\section{LP-Runden} -\begin{tasks} - \item - Wir suchen in $U$ nach dem Knoten $v$ mit dem kleinsten $x_v$, unser $\epsilon$, - und setzen alle Knoten $u \in U$ auf $x_u - \epsilon$ und alle Knoten $w \in W$ - auf $\min(x_w~+~\epsilon, 1)$. +\newcommand{\indeg}{\mathrm{indeg}} +\newcommand{\outdeg}{\mathrm{outdeg}} - Das macht unsere Beschränkung $x_u + x_w \geq 1$ nicht kaputt, da ein Nachbar $w$ - von einem Knoten $u \in U$ mindestens den Wert $\frac{1}{2} + \epsilon$ hat, - also $1$ ist oder in $W$ liegt. +\section{Wurzelspannbäume und ungerichtete Bäume} +\begin{quote} + Sei $G = \tup{V, E}$ ein gerichteter Graph und $s$ ein ausgezeichneter Knoten. Zeigen Sie: - Somit hat sich $\abs{U} + \abs{W}$ um mindestens $1$ verkleinert, da - $x_v$ nun $0$ ist und somit nicht in $U \cup W$ liegt und zu $W$ keine - weiteren Knoten dazukommen können. + Der gerichtete Graph $G$ ist ein $s$-Wurzelspannbaum $\iff$ Der $G$ zugrunde + liegende ungerichtete Graph $G'$ ist ein Baum, für jedes + $v \in V \setminus \set{s} : \indeg(v) = 1$ und $\indeg(s) = 0$. +\end{quote} - Die Veränderungen der Variablen läuft in $\Oh(V)$, da im schlimmsten Fall - alle Knoten entweder in $U$ oder in $W$ liegen. +\begin{itemize} + \item[$\implies$] + Wenn der Graph $G$ ein $s$-Wurzelspannbaum ist, dann erfüllt er die + Eigenschaften eines $s$-Wurzelbaums, also $G$ azyklisch, $v \in V \setminus \set{s} : \indeg(v) = 1$ und $\indeg(s) = 0$. Der zugrunde liegende + ungerichtete Graph $G'$ muss also auch azyklisch, also ein Baum, sein. + \item[$\seilpmi$] + Fall 1: $G'$ ist kein Baum. + + Dann existiert in $G$ entweder ein gerichteter Kreis, was die erste $s$-\-Wurzel\-baum-\-Eigenschaft verletzt, oder ein Knoten $u$ + hat $indeg(u) > 1$. + + Fall 2: Es existiert ein Knoten $v \in V \setminus \set{s}$ mit $\indeg(v) > 1$. + + Das verletzt die zweite $s$-Wurzelbaum-Eigenschaft. Also kann $G$ kein $s$-\-Wurzel\-spann\-baum sein. + + Fall 3: Der Knoten $s$ hat $\indeg(s) > 0$. + + Das verletzt die dritte $s$-Wurzelbaum-Eigenschaft. Also kann $G$ kein $s$-\-Wurzel\-spann\-baum sein. \points{4} - \item - \label{1b} - Wir teilen die Knoten $v \in V$ in drei Mengen ein. - \begin{align*} - A = &\set{v \mid x_v \leq \frac{1}{2}-\epsilon} \\ - B = &\set{v \mid v \notin A \cup C} \\ - C = &\set{v \mid x_v \geq \frac{1}{2}+\epsilon} - \end{align*} - Für alle $v \in A$ setzen wir $x_v = 0$, für alle $v \in B$ setzen wir - $x_v = \frac{1}{2}$ und für alle $v \in C$ setzen wir $x_v = 1$. - Als $\epsilon$ wählen wir das das kleinste $x_v$. - - Das dürfen wir, da wir damit die LP-Beschränkungen aufrechterhalten. - \begin{enumerate} - \item Für alle Variablen $x_v$ gilt $0 \leq x_v \leq 1$. - \item Für alle Paare $v, u$ gilt $x_v + x_u \geq 1$, da - - Fall 1: O.B.d.A gilt: Wenn $x_v \leq \frac{1}{2} - \epsilon$, dann muss $x_u \geq \frac{1}{2} + \epsilon$, wird $x_v = 0$ und $x_u = 1$. - - Fall 2: Wenn $x_v$ oder $x_u \geq \frac{1}{2} + \epsilon$, werden - $x_v$ oder $x_u = 1$. - - Fall 3: Wenn $x_v, x_u \notin A \cup C$, werden $x_v = x_u = \frac{1}{2}$. - \end{enumerate} - Die Laufzeit beläuft sich auf $\Oh(V)$ da sich das $\min_{v \in V} x_v$ in - $\Oh(V)$ Zeit finden und sich jeder Knoten in $\Oh(V)$ in eine - der drei Mengen einteilen lassen kann. - \points{3} - \item - Wir nehmen als Basis den Algorithmus aus \autoref{1b}. Um nun eine - eindeutige 2-Approximation für die Knotenüberdeckung zu bekommen, - runden wir alle $x_v = \frac{1}{2}$ auf $1$ auf. - - Dadurch erhalten wir eine Lösung die maximal doppelt so viele Knoten - enthält, wie eine optimale Lösung, da für ein Knotenpaar $v, u$ für das - $x_v = x_u = \frac{1}{2}$ mindestens ein Knoten in der Knotenüberdeckung - enthalten sein muss. Wenn wir beide Knoten nehmen, haben wir doppelt so - viele. - \points{2} -\end{tasks} +\end{itemize} diff --git a/übung_7/ngutils.sty b/übung_7/ngutils.sty index 69cc21c..0bd7231 100644 --- a/übung_7/ngutils.sty +++ b/übung_7/ngutils.sty @@ -28,7 +28,7 @@ } {} -\newcommand{\seilpmi}{\Longleftarrow} +\newcommand{\seilpmi}{\mathrel{\Longleftarrow}} \newcommand{\NN}{\mathbb{N}} \newcommand{\ZZ}{\mathbb{Z}}