übungsblatt 7
This commit is contained in:
parent
d9745a9740
commit
5e5ed80c42
9 changed files with 489 additions and 0 deletions
72
übung_7/aufgabe_3.tex
Normal file
72
übung_7/aufgabe_3.tex
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
\section{Matchings in allgemeinen Graphen}
|
||||
\begin{tasks}
|
||||
\item
|
||||
|
||||
\begin{pseudocode}
|
||||
Matchings($G = \tup(V, E)$)
|
||||
$M = \emptyset$
|
||||
$visited =$ |Array von $False$ der Größe| $|V|$ // Markiert gematchte Knoten
|
||||
|
||||
for $e$ in $E$ do
|
||||
if $\neg visited[u] \wedge \neg visited[v]$ then
|
||||
$M = M \cup \{e\}$
|
||||
$visited[u] = True$
|
||||
$visited[v] = True$
|
||||
return $M$
|
||||
\end{pseudocode}
|
||||
|
||||
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.
|
||||
|
||||
\textbf{Laufzeit:}
|
||||
|
||||
Initialisierung des Arrays: $\Oh(V)$
|
||||
|
||||
Schleife: Jede Kante wird genau einmal betrachtet ($\Oh(V)$) und die Überprüfung und Markierung passieren in $\Oh(1)$. Also insgesamt $\Oh(E)$
|
||||
|
||||
Das ergibt eine Gesamtlaufzeit von $\Oh(V+E)$
|
||||
\points{3}
|
||||
\item
|
||||
\points{2}
|
||||
|
||||
\item
|
||||
Sei $M$ das vom Algorithmus berechnete maximale Matching und $M^*$ das optimale maximale Matching.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
\]
|
||||
$\delta(v)$ ist die Menge aller Kanten welche an $v$ anliegen
|
||||
\item Nicht-Erweiterbarkeit: Für jede Kante $\{u,v\}$ muss die Summe der Matching-Kanten an $u$ und $v$ mindestens 1 sein
|
||||
\[
|
||||
\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}
|
||||
Loading…
Add table
Add a link
Reference in a new issue