blatt 5 und aufgabe 1
This commit is contained in:
parent
19aaed7d8f
commit
8e745b3aed
10 changed files with 321 additions and 0 deletions
54
übung_5/aufgabe_1.tex
Normal file
54
übung_5/aufgabe_1.tex
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
\section{Paarungen (Matchings) in Bäumen}
|
||||
\begin{tasks}
|
||||
\item
|
||||
\label{1a}
|
||||
Ein Baum ist ein kreisfreier, zusammenhängender Graph. Ein Baum besitzt ein
|
||||
perfektes Matching genau dann, wenn die Anzahl der Knoten gerade ist und
|
||||
jedes Blatt keine Geschwisterknoten hat.
|
||||
|
||||
Die Anzahl der Knoten muss gerade sein, da in einem perfekten Match\-ing jeder
|
||||
Knoten mit einem anderen gematcht wird.
|
||||
|
||||
Jedes Blatt muss Einzelblatt sein, da der Elternknoten nur mit einem Blatt
|
||||
gematcht werden kann.
|
||||
|
||||
Also ist ein perfektes Matching im Baum eindeutig, da jedes Blatt mit seinem
|
||||
Elternknoten gematcht werden muss. Die Kante ist sicher im Matching enthalten
|
||||
und kann aus dem Graphen entfernt werden. So entsteht ein neues Blatt, für das
|
||||
die selbe Regel gilt.
|
||||
\points{3}
|
||||
\item
|
||||
Der \autoref{alg:treematching} berechnet ein größtes Matching.
|
||||
|
||||
Der Algorithmus ist korrekt, da der Baum $T$ entweder eine gerade Anzahl an
|
||||
Knoten hat, und somit ein perfektes Matching berechnet (Siehe \autoref{1a}) oder genau einen Knoten
|
||||
zu wenig hat und somit das größte Matching um eins kleiner ist, als das perfekte
|
||||
Matching des nächst größeren Baums.
|
||||
|
||||
Die Laufzeit liegt in $\Oh(E)$, da jede Kante maximal einmal zum Matching hinzugefügt
|
||||
und dann aus dem Baum entfernt wird.
|
||||
\begin{algorithm}
|
||||
\centering
|
||||
\caption{Größtes Matching in Bäumen}
|
||||
\label{alg:treematching}
|
||||
\begin{algorithmic}
|
||||
\alg{MatchaTee}{$T = \tup{V, E}$} \+ \\
|
||||
\com{Wurzeln} \\
|
||||
$r \gets V[1]$ \\
|
||||
\com{Wenn Knoten Blatt ist, dann die Kante zum Elternknoten zurückgeben.} \\
|
||||
if $deg(r) = 1$ then \+ \\
|
||||
\com{Die Kante aus dem Baum entfernen.} \\
|
||||
$E \gets E \setminus \set{\set{r, Adj[r]}}$ \\
|
||||
$V \gets V \setminus \set{r}$ \\
|
||||
return $\set{\set{r, Adj[r]}}$ \- \\
|
||||
\com{Rekursiv für die Kinder aufrufen} \\
|
||||
$m \gets \emptyset$ \\
|
||||
foreach $v \in Adj[r]$ do \+ \\
|
||||
$m \gets m \cup \text{\alg{MatchaTee}{T}}$ \- \\
|
||||
return $m$
|
||||
\end{algorithmic}
|
||||
\end{algorithm}
|
||||
\points{5}
|
||||
\item
|
||||
\points{5}
|
||||
\end{tasks}
|
||||
Loading…
Add table
Add a link
Reference in a new issue