Aufgabe 3
This commit is contained in:
parent
c14630e535
commit
5db260ed19
4 changed files with 62 additions and 66 deletions
Binary file not shown.
|
|
@ -2,13 +2,14 @@
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
Sei $G = (V, E)$ ein gerichteter Graph und $s \in V$ ein ausgezeichneter Knoten.
|
Sei $G = (V, E)$ ein gerichteter Graph und $s \in V$ ein ausgezeichneter Knoten.
|
||||||
|
|
||||||
Ein Knoten $w$ ist von einem Knoten $v$ erreichbar, wenn es einen $v–w$-Weg gibt. Die Erreichbarkeitsmenge $E(v)$ eines Knotens $v$ ist die Menge aller Knoten, die von $v$ erreichbar
|
Ein Knoten $w$ ist von einem Knoten $v$ erreichbar, wenn es einen $v–w$-Weg (\autoref{fig:1}) gibt. Die Erreichbarkeitsmenge $E(v)$ eines Knotens $v$ ist die Menge aller Knoten, die von $v$ erreichbar
|
||||||
sind. Insbesondere ist $v \in E(v)$.
|
sind. Insbesondere ist $v \in E(v)$.
|
||||||
\end{quote}
|
\end{quote}
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[width=0.5\textwidth]{vw.jpg}
|
\includegraphics[width=0.5\textwidth]{vw.jpg}
|
||||||
\caption{Volkswagen für den Raupengott!}
|
\caption{Volkswagen für den Raupengott!}
|
||||||
|
\label{fig:1}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
\begin{tasks}
|
\begin{tasks}
|
||||||
\item
|
\item
|
||||||
|
|
@ -26,7 +27,8 @@ sind. Insbesondere ist $v \in E(v)$.
|
||||||
und $\indeg(s) = 0$ gilt.
|
und $\indeg(s) = 0$ gilt.
|
||||||
|
|
||||||
Da jeder Knoten erreicht werden kann und der induzierte Graph die
|
Da jeder Knoten erreicht werden kann und der induzierte Graph die
|
||||||
$s$-Wurzelbaum-Eigenschaften erfüllt, besitzt $G$ einen $s$-Wurzelspannbaum.
|
$s$-Wurzelbaum-Eigenschaften erfüllt, muss $G$ einen $s$-Wurzelspannbaum
|
||||||
|
besitzen.
|
||||||
\points{3}
|
\points{3}
|
||||||
\item
|
\item
|
||||||
\begin{quote}
|
\begin{quote}
|
||||||
|
|
@ -36,9 +38,9 @@ und $\indeg(s) = 0$ gilt.
|
||||||
|
|
||||||
Siehe \autoref{fig:2a}.
|
Siehe \autoref{fig:2a}.
|
||||||
\points{2}
|
\points{2}
|
||||||
\begin{figure}
|
\begin{figure}[h]
|
||||||
\centering
|
\centering
|
||||||
\includegraphics[page=1, width=0.2\textwidth]{figures.pdf}
|
\includegraphics[page=1, width=0.27\textwidth]{figures.pdf}
|
||||||
\caption{Gegenbeispiel mit zwei möglichen Wurzelspannbäumen.}
|
\caption{Gegenbeispiel mit zwei möglichen Wurzelspannbäumen.}
|
||||||
\label{fig:2a}
|
\label{fig:2a}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
|
||||||
|
|
@ -1,72 +1,66 @@
|
||||||
\section{Matchings in allgemeinen Graphen}
|
\section{Wurzelspannbäume in azyklischen Graphen}
|
||||||
\begin{tasks}
|
\begin{tasks}
|
||||||
\item
|
\item
|
||||||
|
Siehe \autoref{fig:3a}.
|
||||||
\begin{pseudocode}
|
\points{2}
|
||||||
Matchings($G = \tup(V, E)$)
|
\begin{figure}
|
||||||
$M = \emptyset$
|
\centering
|
||||||
$visited =$ |Array von $False$ der Größe| $|V|$ // Markiert gematchte Knoten
|
\begin{subfigure}{0.3\linewidth}
|
||||||
|
\centering
|
||||||
for $e$ in $E$ do
|
\includegraphics[page=2, width = 0.5\textwidth]{figures.pdf}
|
||||||
if $\neg visited[u] \wedge \neg visited[v]$ then
|
\end{subfigure}
|
||||||
$M = M \cup \{e\}$
|
\begin{subfigure}{0.3\linewidth}
|
||||||
$visited[u] = True$
|
\centering
|
||||||
$visited[v] = True$
|
\includegraphics[page=3, width = 0.5\textwidth]{figures.pdf}
|
||||||
return $M$
|
\end{subfigure}
|
||||||
\end{pseudocode}
|
\begin{subfigure}{0.3\linewidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[page=4, width = 0.5\textwidth]{figures.pdf}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Gegenbeispiel: Jarnik-Prim in orange und Optimale Lösung in blau.}
|
||||||
|
\label{fig:3a}
|
||||||
|
\end{figure}
|
||||||
|
\item
|
||||||
|
Siehe \autoref{fig:3b}.
|
||||||
|
\points{2}
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\begin{subfigure}{0.3\linewidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[page=5, width = 0.5\textwidth]{figures.pdf}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.3\linewidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[page=6, width = 0.5\textwidth]{figures.pdf}
|
||||||
|
\end{subfigure}
|
||||||
|
\begin{subfigure}{0.3\linewidth}
|
||||||
|
\centering
|
||||||
|
\includegraphics[page=7, width = 0.5\textwidth]{figures.pdf}
|
||||||
|
\end{subfigure}
|
||||||
|
\caption{Gegenbeispiel: Kruskal in orange und Optimale Lösung in blau.}
|
||||||
|
\label{fig:3b}
|
||||||
|
\end{figure}
|
||||||
|
\item
|
||||||
|
\alg*{DagMst} nimmt für jeden Knoten $v \in V \setminus \set{s}$ die
|
||||||
|
Kante $\tup{u, v}$ mit minimalen Kosten in den $s$-Wurzelspannbaum.
|
||||||
|
|
||||||
Angenommen $M$ wäre erweiterbar (d.h. es gibt eine Kante $\{u,v\}$ mit $u,v \notin V(M)$). Dann wurden sowohl $u$ als auch $v$ während des Algorithmus beim Durchlaufen der Kante $\{u,v\}$ als frei angesehen und wäre somit der Menge $M$ hinzugefügt worden. Das ist eine Widerspruch.
|
Dadurch, dass genau eine Kante $\tup{u, v}$ für jeden Knoten $v$ ausgewählt
|
||||||
|
wird, hat jeder Knoten $\indeg(v) = 1$ und $\indeg(s) = 0$.
|
||||||
|
|
||||||
\textbf{Laufzeit:}
|
Insbesondere ist auch jede Kante
|
||||||
|
eine ausgehende Kante eines anderen Knotens, und weil genau $n-1$ Kanten ausgewählt werden, muss der Graph $T$ zusammenhängend sein.
|
||||||
Initialisierung des Arrays: $\Oh(V)$
|
|
||||||
|
Da $G$ azyklisch ist, muss auch $T$ azyklisch sein. Also berechnet \alg*{DagMst} einen $s$-Wurzelspannbaum.
|
||||||
Schleife: Jede Kante wird genau einmal betrachtet ($\Oh(V)$) und die Überprüfung und Markierung passieren in $\Oh(1)$. Also insgesamt $\Oh(E)$
|
\points{3}
|
||||||
|
|
||||||
Das ergibt eine Gesamtlaufzeit von $\Oh(V+E)$
|
|
||||||
\points{3}
|
|
||||||
\item
|
|
||||||
\points{2}
|
|
||||||
|
|
||||||
\item
|
\item
|
||||||
Sei $M$ das vom Algorithmus berechnete maximale Matching und $M^*$ das optimale maximale Matching.
|
Sei $T$ ein Wurzelspannbaum der von \alg*{DagMst} berechnet wurde.
|
||||||
|
|
||||||
Für jede Kante $e^*=\{u,v\}\in M^*$ gilt: mindestens einer der beiden Knoten $u$ oder $v$ muss über eine Kante aus $M$ abgedeckt werden, sonst wäre der $M$ nicht nicht-erweiterbar.
|
Angenommen es gibt einen Wurzelspannbaum $T'$ der kleiner als $T$ ist,
|
||||||
|
dann muss es einen Knoten $v$ geben mit Eingangskantenkosten
|
||||||
Eine Kante aus $M$ hat genau zwei Endknoten und kann daher höchstens zwei verschiedene Kanten aus $M^*$ ,,blockieren``. Da alle Kanten in $M^*$ disjunkt sind kann man daraus folgern:
|
|
||||||
\[
|
|
||||||
\abs{M^*} \leq 2\cdot \abs{M} \implies \abs{M} \geq \frac{1}{2} \abs{M^*}
|
|
||||||
\]
|
|
||||||
Somit ist der Algorithmus aus der Teilaufgabe a) eine 1/2 Approximation für ein optimales Matching.
|
|
||||||
|
|
||||||
\points{3}
|
|
||||||
\item
|
|
||||||
|
|
||||||
Zielfunktion:
|
|
||||||
\[
|
|
||||||
\arg\min \sum_{e\in E} x_e \geq 1
|
|
||||||
\]
|
|
||||||
Entscheidungsvariablen: für jede Kante $e\in E$:
|
|
||||||
\[
|
|
||||||
x_e\in\{0,1\}\quad \forall e\in E
|
|
||||||
\]
|
|
||||||
Die Variable nimmt den Wert 1 an, wenn die Kante im Matching M ist und 0 falls sie das nicht ist.
|
|
||||||
|
|
||||||
Nebenbedingungen:
|
|
||||||
\begin{enumerate}
|
|
||||||
\item
|
|
||||||
Matching: Jeder Knoten darf von maximal einer Matching-Kante berührt werden
|
|
||||||
\[
|
\[
|
||||||
\forall v\in V \colon \sum_{e\in \delta(v)}x_e\leq1
|
c(\tup{u', v}) < c(\tup{u, v})
|
||||||
\]
|
\]
|
||||||
$\delta(v)$ ist die Menge aller Kanten welche an $v$ anliegen
|
Das ist ein Widerspruch, da \alg*{DagMst} immer die minimale Kante $\tup{u, v}$ nimmt.
|
||||||
\item Nicht-Erweiterbarkeit: Für jede Kante $\{u,v\}$ muss die Summe der Matching-Kanten an $u$ und $v$ mindestens 1 sein
|
\points{2}
|
||||||
\[
|
|
||||||
\forall \{u,v\} \in E \colon \sum_{e \in \delta(u)} x_e + \sum_{e' \in \delta(v)} x_e' \geq 1
|
|
||||||
\]
|
|
||||||
$\delta(v)$ ist die Menge aller Kanten welche an $v$ anliegen. Äquivalent für $\delta(u)$.
|
|
||||||
\end{enumerate}
|
|
||||||
\points{3}
|
|
||||||
\item
|
|
||||||
\points{2}
|
|
||||||
\end{tasks}
|
\end{tasks}
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue