aufgabe 2

This commit is contained in:
Never Gude 2026-05-30 23:59:28 +02:00
parent 6475d1b263
commit 7e1f3b4d0f
7 changed files with 986 additions and 123 deletions

BIN
übung_6/agt_übung_6.pdf Normal file

Binary file not shown.

View file

@ -1,5 +1,6 @@
\documentclass[parskip=half]{ngexrcs} \documentclass[parskip=half]{ngexrcs}
\usepackage{hyperref} \usepackage{hyperref}
\usepackage{subcaption}
\setkeys{Gin}{pagebox=artbox, width=0.2\textwidth} \setkeys{Gin}{pagebox=artbox, width=0.2\textwidth}
\subject{Algorithmische Graphentheorie} \subject{Algorithmische Graphentheorie}

View file

@ -1,82 +1,6 @@
\newcommand{\OPT}{\mathrm{OPT}} \section{LP-Runden}
\section{Paarungen (Matchings) in Bäumen}
\begin{tasks} \begin{tasks}
\item \item
\label{1a} \item
Ein Baum ist ein kreisfreier, zusammenhängender Graph. Ein Baum besitzt ein \item
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. Diese Kante $uv$ ist sicher im Matching enthalten und alle zu $u$ oder $v$ inzidenten Kanten können aus dem Baum gelöscht 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 ein perfektes Matching
enthält und somit ein perfektes Matching berechnet (Siehe \autoref{1a}),
oder I dont fucking know.
Die Laufzeit für \algt{Initialize} liegt in $\Oh(V)$, da sich der Baum in linearer Zeit augmentieren lässt und es $\abs{V} - 1$ viele Kanten gibt.
Die Laufzeit für \algt{MatchaTeeRec} liegt in $\Oh(V)$. Der Algorithmus wird genau
einmal für jeden Knoten aufgerufen. Wenn eine Kante zum
Match\-ing hinzugefügt wird, werden die Knoten und Kanten aus dem Baum gelöscht
die nicht mehr zum Matching hinzugefügt werden können und somit
nicht mehr bearbeitet werden.
Also liegt auch \algt{MatchaTee} in $\Oh(V)$.
\begin{algorithm}
\centering
\caption{Größtes Matching in Bäumen}
\label{alg:treematching}
\begin{algorithmic}
\alg{MatchaTee}{$T = \tup{V, E}$} \+ \\
\com{Den ungerichten Baum zu einem gerichteten Baum mit $parent$ und} \\
\com{$children$ pro Knoten und einer Wurzel $root$ augmentieren.} \\
\alg{Initialize}{$T$} \\
return \alg{MatchaTeeRec}{$T$, $T.root$} \- \\
\\
\alg{MatchaTeeRec}{$T$, $r$} \+ \\
\com{Rekursiv für die Kinder aufrufen} \\
$m \gets \emptyset$ \\
foreach $v \in r.children$ do \+ \\
$m \gets m \cup \text{\alg{MatchaTeeRec}{T, v}}$ \- \\
\com{Wenn Knoten Blatt ist, dann die Kante zum Elternknoten hinzufügen.} \\
if $r \neq nil$ and $deg(r) = 1$ then \+ \\
\com{Die Knoten und inzidente Kanten aus dem Baum entfernen.} \\
$T \gets T \setminus \set{r.parent, r.parent.children}$ \\
$m \gets m \cup \set{\set{r, r.parent}}$ \- \\
return $m$
\end{algorithmic}
\end{algorithm}
\points{5}
\item
Wenn eine Kante $rv$ zu einem Matching hinzugefügt wird, kann keine zu $v$
inzidente Kante hinzugefügt werden. Das müssen wir auch bei unserem dynamischen
Programm beachten.
\[
\OPT(r) = \max_{v \in r.children}
\begin{cases}
rv + \sum_{i \in v.children} \OPT(i) + \sum_{j \in r.children \setminus v} \OPT(j) \\
\sum_{k \in r.children} \OPT(k)
\end{cases}
\]
Der Algorithmus hält sich an die Eigenschaften eines Matchings, also ist
er korrekt.
Der Algorithmus probiert alle Kindknoten von $r$ aus. Geht man mit $r$ im Baum von
unten nach oben sind das also höchstens so viele Iterationen wie, Knoten im Baum
existieren (ohne die Blätter). Also läuft das Dynamische Programm in $\Oh(V)$.
\points{5}
\end{tasks} \end{tasks}

View file

@ -1,24 +1,75 @@
\section{Hamiltonkreise} \section{Christofides Algorithmus}
\begin{tasks} \begin{tasks}
\item \item
Ein Kreis hat im allgemeinen mindestens die Länge 3. Da der Turniergraph mindestens Siehe \autoref{fig:christofides}.
3 Knoten enthält und stark zusammenhängend ist, liegt jeder Knoten auf einem Kreis \points{4}
mit Länge $\geq 3$.
\points{1}
\item
Gegeben ist ein Kreis $K$ mit Länge $\geq 3$.
Um $K$ zu verkleinern wählen wir uns drei aufeinanderfolgende Knoten $a, b, c$ aus.
Nach Definition gibt es für jedes Knotenpaar eine gerichtete Kante. Wir ersetzen
jetzt einen Weg der Länge 2 durch eine Kante die nach Annahme existieren muss. Das
machen wir solange, bis der Kreis die Länge 3 hat.
\points{2}
\item
\points{1}
\item
\points{1}
\item
\points{1}
\item \item
Siehe \autoref{fig:checkmate}. Diese Tour kann nicht von \algt{Christofides}
berechnet werden, denn egal mit welcher Kante in welche Richtung gestartet
wird, nimmt \algt{Cristofides} immer eine Kante in die Tour, die nicht in
\autoref{fig:checkmate} ist.
\begin{figure}
\centering
\includegraphics[page=10, width=0.5\textwidth]{figures.pdf}
\caption{Eine kleinere TSP-Tour, die von \algt{Cristofides} nicht berechnet werden kann.}
\label{fig:checkmate}
\end{figure}
\points{1} \points{1}
\end{tasks} \end{tasks}
\newpage
\KOMAoptions{mpinclude=false}
\recalctypearea
\begin{figure}
\centering
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=1, width=0.9\textwidth]{figures.pdf}
\caption{Der gewichtete, vollständige Graph $G$.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=2, width=0.9\textwidth]{figures.pdf}
\caption{Minimalen Spannbaum finden.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=3, width=0.9\textwidth]{figures.pdf}
\caption{Knoten $U$ mit ungeraden Graden finden.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=4, width=0.9\textwidth]{figures.pdf}
\caption{Minimales, perfektes Matching auf $G[U]$ finden.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=5, width=0.9\textwidth]{figures.pdf}
\caption{Eulertour konstruieren.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=6, width=0.9\textwidth]{figures.pdf}
\caption{Eulertour konstruieren.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=7, width=0.9\textwidth]{figures.pdf}
\caption{Eulertour konstruieren.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=8, width=0.9\textwidth]{figures.pdf}
\caption{Eulertour konstruieren.}
\end{subfigure}
\begin{subfigure}{.3\linewidth}
\centering
\includegraphics[page=9, width=0.9\textwidth]{figures.pdf}
\caption{Schon besuchte Knoten überspringen. TSP vollständig.}
\end{subfigure}
\caption{Cristofides' Algorithmus}
\label{fig:christofides}
\end{figure}
\KOMAoptions{mpinclude=true}
\recalctypearea

View file

@ -1,24 +1,8 @@
% vim: ft=tex \section{Matchings in allgemeinen Graphen}
\section{Perfekte Matchings in bipartiten Graphen} \begin{tasks}
\begin{quote} \item
Ein bipartiter Graph $G = \tup{A \cupdot B, E}$ mit $\abs{A} = \abs{B} = k$ \item
und jeder Knoten hat mindestens Grad $\frac{k}{2}$ $\iff$ $G$ enthält \item
perfektes Matching. \item
\end{quote} \item
\begin{itemize} \end{tasks}
\item[$\seilpmi$] Wenn $G$ ein perfektes Matching enthält, dann muss
$\abs{A} = \abs{B}$, sonst würden Knoten übrig bleiben.
Außerdem muss jeder Knoten mindestens Grad $1$ haben, da sonst Knoten
nicht gematcht werden könnten.
\item[$\implies$] Man kann jeden Knoten in $A$ einem
Knoten in $B$ zuordnen, da $\abs{A} = \abs{B}$.
Alle Knoten sind im Matching enthalten. Wenn wir eine Kante zum Matching
hinzufügen, verringert sich die Anzahl der offenen Knoten um $2$.
Insbesondere verringert sich auch der Grad von $\frac{k}{2} - 1$
Knoten um $1$ in $A$ und $B$. Da jeder Knoten mindestens Grad $\frac{k}{2}$ hat und jedes mal
ein offenes Knotenpaar entfernt wird.
$k$ mal eine Kante zum Matching hinzufügen. Also wird jeder Knoten gematcht.
\end{itemize}
\points{5}

Binary file not shown.

View file

@ -0,0 +1,903 @@
<?xml version="1.0"?>
<!DOCTYPE ipe SYSTEM "ipe.dtd">
<ipe version="70218" creator="Ipe 7.2.30">
<info created="D:20260417131308" modified="D:20260530224922" tex="luatex"/>
<ipestyle name="basic">
<symbol name="arrow/arc(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0 0 m
-1 0.333 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/farc(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0 0 m
-1 0.333 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ptarc(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0 0 m
-1 0.333 l
-0.8 0 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/fptarc(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0 0 m
-1 0.333 l
-0.8 0 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="mark/circle(sx)" transformations="translations">
<path fill="sym-stroke">
0.6 0 0 0.6 0 0 e
0.4 0 0 0.4 0 0 e
</path>
</symbol>
<symbol name="mark/disk(sx)" transformations="translations">
<path fill="sym-stroke">
0.6 0 0 0.6 0 0 e
</path>
</symbol>
<symbol name="mark/fdisk(sfx)" transformations="translations">
<group>
<path fill="sym-fill">
0.5 0 0 0.5 0 0 e
</path>
<path fill="sym-stroke" fillrule="eofill">
0.6 0 0 0.6 0 0 e
0.4 0 0 0.4 0 0 e
</path>
</group>
</symbol>
<symbol name="mark/box(sx)" transformations="translations">
<path fill="sym-stroke" fillrule="eofill">
-0.6 -0.6 m
0.6 -0.6 l
0.6 0.6 l
-0.6 0.6 l
h
-0.4 -0.4 m
0.4 -0.4 l
0.4 0.4 l
-0.4 0.4 l
h
</path>
</symbol>
<symbol name="mark/square(sx)" transformations="translations">
<path fill="sym-stroke">
-0.6 -0.6 m
0.6 -0.6 l
0.6 0.6 l
-0.6 0.6 l
h
</path>
</symbol>
<symbol name="mark/fsquare(sfx)" transformations="translations">
<group>
<path fill="sym-fill">
-0.5 -0.5 m
0.5 -0.5 l
0.5 0.5 l
-0.5 0.5 l
h
</path>
<path fill="sym-stroke" fillrule="eofill">
-0.6 -0.6 m
0.6 -0.6 l
0.6 0.6 l
-0.6 0.6 l
h
-0.4 -0.4 m
0.4 -0.4 l
0.4 0.4 l
-0.4 0.4 l
h
</path>
</group>
</symbol>
<symbol name="mark/cross(sx)" transformations="translations">
<group>
<path fill="sym-stroke">
-0.43 -0.57 m
0.57 0.43 l
0.43 0.57 l
-0.57 -0.43 l
h
</path>
<path fill="sym-stroke">
-0.43 0.57 m
0.57 -0.43 l
0.43 -0.57 l
-0.57 0.43 l
h
</path>
</group>
</symbol>
<symbol name="arrow/fnormal(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0 0 m
-1 0.333 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/pointed(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0 0 m
-1 0.333 l
-0.8 0 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/fpointed(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0 0 m
-1 0.333 l
-0.8 0 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/linear(spx)">
<path stroke="sym-stroke" pen="sym-pen">
-1 0.333 m
0 0 l
-1 -0.333 l
</path>
</symbol>
<symbol name="arrow/fdouble(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0 0 m
-1 0.333 l
-1 -0.333 l
h
-1 0 m
-2 0.333 l
-2 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/double(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0 0 m
-1 0.333 l
-1 -0.333 l
h
-1 0 m
-2 0.333 l
-2 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-normal(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0.5 0 m
-0.5 0.333 l
-0.5 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-fnormal(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0.5 0 m
-0.5 0.333 l
-0.5 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-pointed(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
0.5 0 m
-0.5 0.333 l
-0.3 0 l
-0.5 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-fpointed(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
0.5 0 m
-0.5 0.333 l
-0.3 0 l
-0.5 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-double(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
1 0 m
0 0.333 l
0 -0.333 l
h
0 0 m
-1 0.333 l
-1 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/mid-fdouble(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
1 0 m
0 0.333 l
0 -0.333 l
h
0 0 m
-1 0.333 l
-1 -0.333 l
h
</path>
</symbol>
<anglesize name="22.5 deg" value="22.5"/>
<anglesize name="36 deg" value="36"/>
<anglesize name="45 deg" value="45"/>
<anglesize name="60 deg" value="60"/>
<anglesize name="90 deg" value="90"/>
<arrowsize name="large" value="10"/>
<arrowsize name="small" value="5"/>
<arrowsize name="tiny" value="3"/>
<color name="blue" value="0 0 1"/>
<color name="brown" value="0.647 0.165 0.165"/>
<color name="darkblue" value="0 0 0.545"/>
<color name="darkcyan" value="0 0.545 0.545"/>
<color name="darkgray" value="0.663"/>
<color name="darkgreen" value="0 0.392 0"/>
<color name="darkmagenta" value="0.545 0 0.545"/>
<color name="darkorange" value="1 0.549 0"/>
<color name="darkred" value="0.545 0 0"/>
<color name="gold" value="1 0.843 0"/>
<color name="gray" value="0.745"/>
<color name="green" value="0 1 0"/>
<color name="lightblue" value="0.678 0.847 0.902"/>
<color name="lightcyan" value="0.878 1 1"/>
<color name="lightgray" value="0.827"/>
<color name="lightgreen" value="0.565 0.933 0.565"/>
<color name="lightyellow" value="1 1 0.878"/>
<color name="navy" value="0 0 0.502"/>
<color name="orange" value="1 0.647 0"/>
<color name="pink" value="1 0.753 0.796"/>
<color name="purple" value="0.627 0.125 0.941"/>
<color name="red" value="1 0 0"/>
<color name="seagreen" value="0.18 0.545 0.341"/>
<color name="turquoise" value="0.251 0.878 0.816"/>
<color name="violet" value="0.933 0.51 0.933"/>
<color name="yellow" value="1 1 0"/>
<dashstyle name="dash dot dotted" value="[4 2 1 2 1 2] 0"/>
<dashstyle name="dash dotted" value="[4 2 1 2] 0"/>
<dashstyle name="dashed" value="[4] 0"/>
<dashstyle name="dotted" value="[1 3] 0"/>
<gridsize name="10 pts (~3.5 mm)" value="10"/>
<gridsize name="14 pts (~5 mm)" value="14"/>
<gridsize name="16 pts (~6 mm)" value="16"/>
<gridsize name="20 pts (~7 mm)" value="20"/>
<gridsize name="28 pts (~10 mm)" value="28"/>
<gridsize name="32 pts (~12 mm)" value="32"/>
<gridsize name="4 pts" value="4"/>
<gridsize name="56 pts (~20 mm)" value="56"/>
<gridsize name="8 pts (~3 mm)" value="8"/>
<opacity name="10%" value="0.1"/>
<opacity name="30%" value="0.3"/>
<opacity name="50%" value="0.5"/>
<opacity name="75%" value="0.75"/>
<pen name="fat" value="1.2"/>
<pen name="heavier" value="0.8"/>
<pen name="ultrafat" value="2"/>
<symbolsize name="large" value="5"/>
<symbolsize name="small" value="2"/>
<symbolsize name="tiny" value="1.1"/>
<textsize name="Huge" value="\Huge"/>
<textsize name="LARGE" value="\LARGE"/>
<textsize name="Large" value="\Large"/>
<textsize name="footnote" value="\footnotesize"/>
<textsize name="huge" value="\huge"/>
<textsize name="large" value="\large"/>
<textsize name="script" value="\scriptsize"/>
<textsize name="small" value="\small"/>
<textsize name="tiny" value="\tiny"/>
<textstyle name="center" begin="\begin{center}" end="\end{center}"/>
<textstyle name="item" begin="\begin{itemize}\item{}" end="\end{itemize}"/>
<textstyle name="itemize" begin="\begin{itemize}" end="\end{itemize}"/>
<tiling name="falling" angle="-60" step="4" width="1"/>
<tiling name="rising" angle="30" step="4" width="1"/>
</ipestyle>
<ipestyle name="ngslides">
<symbol name="arrow/ng-fnormal(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-1.7 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ng-normal(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-1.7 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ng-pointed(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-0.8 0 l
-1.7 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ng-fpointed(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-0.8 0 l
-1.7 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ng-linear(spx)">
<path stroke="sym-stroke" pen="sym-pen">
-1.7 0.333 m
-0.7 0 l
-1.7 -0.333 l
</path>
</symbol>
<symbol name="arrow/ng-fdouble(spx)">
<path stroke="sym-stroke" fill="white" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-1.7 -0.333 l
h
-1.7 0 m
-2.7 0.333 l
-2.7 -0.333 l
h
</path>
</symbol>
<symbol name="arrow/ng-double(spx)">
<path stroke="sym-stroke" fill="sym-stroke" pen="sym-pen">
-0.7 0 m
-1.7 0.333 l
-1.7 -0.333 l
h
-1.7 0 m
-2.7 0.333 l
-2.7 -0.333 l
h
</path>
</symbol>
<symbol name="decoration/remark">
<path stroke="dark gray" fill="light yellow">
100 204 m
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
h
</path>
</symbol>
<symbol name="decoration/theorem">
<path stroke="dark blue" fill="light blue">
100 204 m
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
h
</path>
</symbol>
<symbol name="decoration/problem">
<path stroke="dark green" fill="light green">
100 204 m
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
h
</path>
</symbol>
<symbol name="decoration/definition">
<path stroke="dark gray" fill="light yellow">
96 96 m
304 96 l
304 204 l
96 204 l
h
</path>
</symbol>
<symbol name="decoration/algorithm">
<path stroke="dark gray" fill="light green" dash="dashed">
96 96 m
304 96 l
304 204 l
96 204 l
h
</path>
</symbol>
<symbol name="decoration/graph">
<path stroke="dark gray">
92 92 m
308 92 l
308 208 l
92 208 l
h
</path>
</symbol>
<symbol name="decoration/comic-bl">
<path stroke="dark gray" fill="light yellow">
100 96 m
110 96 s
110 92
106 88 s
116 92
118 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<symbol name="decoration/comic-bm">
<path stroke="dark gray" fill="light yellow">
100 96 m
186 96 s
186 92
182 88 s
192 92
194 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<symbol name="decoration/comic-br">
<path matrix="-1 0 0 1 400 0" stroke="dark gray" fill="light yellow">
100 96 m
110 96 s
110 92
106 88 s
116 92
118 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<symbol name="decoration/comic-tl">
<path matrix="1 0 0 -1 0 300" stroke="dark gray" fill="light yellow">
100 96 m
110 96 s
110 92
106 88 s
116 92
118 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<symbol name="decoration/comic-tm">
<path matrix="1 0 0 -1 0 300" stroke="dark gray" fill="light yellow">
100 96 m
186 96 s
186 92
182 88 s
192 92
194 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<symbol name="decoration/comic-tr">
<path matrix="-1 0 0 -1 400 300" stroke="dark gray" fill="light yellow">
100 96 m
110 96 s
110 92
106 88 s
116 92
118 96 s
300 96 l
4 0 0 4 300 100 304 100 a
304 200 l
4 0 0 4 300 200 300 204 a
100 204 l
4 0 0 4 100 200 96 200 a
96 100 l
4 0 0 4 100 100 100 96 a
h
</path>
</symbol>
<color name="dark blue" value="0.121 0.47 0.705"/>
<color name="dark brown" value="0.651 0.337 0.157"/>
<color name="dark cyan" value="0.106 0.62 0.467"/>
<color name="dark gray" value="0.5"/>
<color name="dark green" value="0.2 0.627 0.172"/>
<color name="dark orange" value="1 0.498 0"/>
<color name="dark pink" value="0.969 0.506 0.749"/>
<color name="dark purple" value="0.415 0.239 0.603"/>
<color name="dark red" value="0.89 0.102 0.109"/>
<color name="dark yellow" value="1 1 0.2"/>
<color name="light blue" value="0.651 0.807 0.89"/>
<color name="light brown" value="0.898 0.847 0.741"/>
<color name="light cyan" value="0.553 0.827 0.78"/>
<color name="light gray" value="0.8"/>
<color name="light green" value="0.698 0.874 0.541"/>
<color name="light orange" value="0.992 0.749 0.435"/>
<color name="light pink" value="0.992 0.855 0.925"/>
<color name="light purple" value="0.792 0.698 0.839"/>
<color name="light red" value="0.984 0.603 0.6"/>
<color name="light yellow" value="1 1 0.8"/>
<color name="pagenumber" value="0.5"/>
<color name="title" value="0.247 0.282 0.392"/>
<pen name="fat" value="3.6"/>
<pen name="heavier" value="2.4"/>
<pen name="normal" value="1.2"/>
<pen name="ultrafat" value="6"/>
<symbolsize name="large" value="15"/>
<symbolsize name="normal" value="9"/>
<symbolsize name="small" value="6"/>
<symbolsize name="tiny" value="3.3"/>
<textstretch name="Huge" value="2.4"/>
<textstretch name="LARGE" value="2.4"/>
<textstretch name="Large" value="2.4"/>
<textstretch name="footnote" value="2.4"/>
<textstretch name="huge" value="2.4"/>
<textstretch name="large" value="2.4"/>
<textstretch name="normal" value="2.4"/>
<textstretch name="script" value="2.4"/>
<textstretch name="small" value="2.4"/>
<textstretch name="tiny" value="2.4"/>
<textstyle name="algorithmic" begin="\begin{algorithmic}" end="\end{algorithmic}"/>
<textstyle name="definition" begin="\begin{definition}" end="\end{definition}"/>
<textstyle name="enumerate" begin="\begin{enumerate}" end="\end{enumerate}"/>
<textstyle name="example" begin="\begin{example}" end="\end{example}"/>
<textstyle name="lemma" begin="\begin{lemma}" end="\end{lemma}"/>
<textstyle name="proof" begin="\begin{proof}" end="\end{proof}"/>
<textstyle name="theorem" begin="\begin{theorem}" end="\end{theorem}"/>
<preamble>
\usepackage[ngerman]{babel}
\usepackage[sansdefault]{fontsetup}
\usepackage{ngutils}
\renewcommand{\theoremfont}{\normalfont\bfseries\color{dark blue}}
\renewcommand{\definitionfont}{\normalfont\bfseries\color{dark gray}}
\newcommand{\labelfont}{\normalfont\bfseries\color{dark blue}}
%\setlength{\leftmargini}{1.33em}
%\setlength{\leftmarginii}{1.33em}
%\setlength{\leftmarginiii}{1.33em}
%\setlength{\leftmarginvi}{1.33em}
\renewcommand{\labelenumi}{\labelfont\arabic{enumi}.}
\renewcommand{\labelenumii}{\labelfont\alph{enumii})}
\renewcommand{\labelenumiii}{\labelfont\roman{enumiii}.}
\renewcommand{\labelenumiv}{\labelfont\Alph{enumiv}.}
\renewcommand{\labelitemi}{\labelfont $\blockfull$}
\renewcommand{\labelitemii}{\labelfont $\blackpointerright$}
\renewcommand{\labelitemiii}{\labelfont $\bullet$}
\renewcommand{\labelitemiv}{\labelfont $\bullet$}
\setlength{\fboxsep}{1pt}
\newcommand{\bk}{\color{black}}
\newcommand{\wt}{\color{white}}
\newcommand{\bu}{\color{dark blue}}
\newcommand{\bn}{\color{dark brown}}
\newcommand{\cn}{\color{dark cyan}}
\newcommand{\gy}{\color{dark gray}}
\newcommand{\gn}{\color{dark green}}
\newcommand{\og}{\color{dark orange}}
\newcommand{\pk}{\color{dark pink}}
\newcommand{\pl}{\color{dark purple}}
\newcommand{\rd}{\color{dark red}}
\newcommand{\yo}{\color{dark yellow}}
\newcommand{\tl}{\color{title}}
</preamble>
<layout paper="1024 576" origin="16 16" frame="992 496" skip="16" crop="no"/>
<pagenumberstyle pos="1000 552" color="pagenumber" size="tiny" halign="right" valign="top"></pagenumberstyle>
<titlestyle pos="0 544" size="Large" color="title" valign="top"/>
</ipestyle>
<page>
<layer name="knoten"/>
<layer name="kanten"/>
<layer name="msb"/>
<layer name="odddeg"/>
<layer name="matching"/>
<layer name="tsp1"/>
<layer name="tsp2"/>
<layer name="tsp3"/>
<layer name="tsp4"/>
<layer name="tsp5"/>
<layer name="kanteweird"/>
<layer name="msbweird"/>
<layer name="kanteweirdalt"/>
<layer name="msbweirdalt"/>
<view layers="knoten kanten kanteweird" active="knoten"/>
<view layers="knoten kanten msb kanteweird msbweird" active="knoten"/>
<view layers="knoten kanten msb odddeg kanteweird msbweird" active="knoten"/>
<view layers="knoten kanten msb odddeg matching kanteweird msbweird" active="knoten"/>
<view layers="knoten kanten msb odddeg matching tsp1 msbweird kanteweirdalt" active="kanteweirdalt"/>
<view layers="knoten kanten msb odddeg matching tsp1 tsp2 msbweird kanteweirdalt" active="tsp1"/>
<view layers="knoten kanten msb odddeg matching tsp1 tsp2 tsp3 msbweird kanteweirdalt" active="knoten"/>
<view layers="knoten kanten msb odddeg matching tsp1 tsp2 tsp3 tsp4 kanteweirdalt msbweirdalt" active="msbweirdalt"/>
<view layers="knoten kanten msb odddeg matching tsp1 tsp2 tsp3 tsp4 tsp5 kanteweirdalt msbweirdalt" active="msbweirdalt"/>
<path layer="kanteweird" stroke="light gray">
688 448 m
48 0 0 48 640 448 640 496 a
256 448 m
48 0 0 -48 304 448 304 496 a
304 496 m
640 496 l
688 448 m
688 256
640 64 c
</path>
<path layer="kanten" stroke="light gray">
640 448 m
448 256 l
</path>
<path stroke="light gray">
640 64 m
448 256 l
</path>
<path layer="msb" stroke="dark purple" pen="heavier">
640 448 m
448 256 l
</path>
<path stroke="dark purple" pen="heavier">
640 64 m
448 256 l
</path>
<path layer="matching" stroke="dark green" pen="heavier">
256 448 m
352 160
640 64 c
</path>
<path stroke="dark green" pen="heavier">
640 448 m
352 352
256 64 c
</path>
<path layer="tsp3" stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
448 256 m
640 448 l
</path>
<path layer="tsp2" stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
640 64 m
448 256 l
</path>
<path layer="kanten" stroke="light gray">
688 64 m
48 0 0 -48 640 64 640 16 a
256 64 m
48 0 0 48 304 64 304 16 a
304 16 m
640 16 l
688 64 m
688 256
640 448 c
</path>
<path stroke="light gray">
256 448 m
256 64 l
</path>
<path layer="tsp5" stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
256 64 m
256 448 l
</path>
<path layer="kanten" stroke="light gray">
256 64 m
640 64 l
</path>
<path stroke="light gray">
640 64 m
640 448 l
</path>
<path stroke="light gray">
640 448 m
256 448 l
</path>
<path stroke="light gray">
256 448 m
448 256 l
</path>
<path stroke="light gray">
256 64 m
448 256 l
</path>
<path layer="tsp4" stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
640 448 m
352 352
256 64 c
</path>
<text layer="kanten" transformations="translations" pos="448 464" stroke="light gray" type="label" width="30.5568" height="16.224" depth="2.976" halign="center" valign="baseline">3,5</text>
<text transformations="translations" pos="240 256" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" halign="right" valign="baseline">4</text>
<text transformations="translations" pos="352 368" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" valign="baseline">4</text>
<text transformations="translations" pos="544 368" stroke="light gray" type="label" width="11.9544" height="16.212" depth="0" halign="right" valign="baseline">2</text>
<text transformations="translations" pos="624 256" stroke="light gray" type="label" width="30.5568" height="15.6984" depth="2.976" halign="right" valign="baseline">4,5</text>
<text transformations="translations" pos="352 176" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" halign="right" valign="baseline">3</text>
<text matrix="1 0 0 1 0 -16" transformations="translations" pos="560 176" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" valign="baseline">3</text>
<text transformations="translations" pos="448 80" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" halign="center" valign="baseline">4</text>
<text transformations="translations" pos="448 32" stroke="light gray" type="label" width="11.9544" height="16.212" depth="0" halign="center" valign="baseline">1</text>
<text transformations="translations" pos="448 512" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" halign="center" valign="baseline">6</text>
<path layer="msb" stroke="dark purple" pen="heavier">
640 448 m
256 448 l
</path>
<path layer="tsp1" stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
256 448 m
352 160
640 64 c
</path>
<path layer="kanteweirdalt" stroke="light gray" dash="dashed">
688 448 m
48 0 0 48 640 448 640 496 a
256 448 m
48 0 0 -48 304 448 304 496 a
304 496 m
640 496 l
688 448 m
688 256
640 64 c
</path>
<use layer="knoten" matrix="1 0 0 1 -64 64" name="mark/disk(sx)" pos="320 384" size="normal" stroke="black"/>
<path layer="msbweird" stroke="dark purple" pen="heavier">
688 64 m
48 0 0 -48 640 64 640 16 a
256 64 m
48 0 0 48 304 64 304 16 a
304 16 m
640 16 l
688 64 m
688 256
640 448 c
</path>
<path layer="msbweirdalt" stroke="dark purple" dash="dashed" pen="heavier">
688 64 m
48 0 0 -48 640 64 640 16 a
256 64 m
48 0 0 48 304 64 304 16 a
304 16 m
640 16 l
688 64 m
688 256
640 448 c
</path>
<use layer="knoten" matrix="1 0 0 1 -64 -64" name="mark/disk(sx)" pos="320 128" size="normal" stroke="black"/>
<use matrix="1 0 0 1 64 -64" name="mark/disk(sx)" pos="576 128" size="normal" stroke="black"/>
<use matrix="1 0 0 1 64 64" name="mark/disk(sx)" pos="576 384" size="normal" stroke="black"/>
<use name="mark/disk(sx)" pos="448 256" size="normal" stroke="black"/>
<use layer="odddeg" name="mark/circle(sx)" pos="256 448" size="large" stroke="dark red"/>
<use name="mark/circle(sx)" pos="640 448" size="large" stroke="dark red"/>
<use name="mark/circle(sx)" pos="640 64" size="large" stroke="dark red"/>
<use name="mark/circle(sx)" pos="256 64" size="large" stroke="dark red"/>
</page>
<page>
<layer name="alpha"/>
<view layers="alpha" active="alpha"/>
<path layer="alpha" stroke="light gray">
688 448 m
48 0 0 48 640 448 640 496 a
256 448 m
48 0 0 -48 304 448 304 496 a
304 496 m
640 496 l
688 448 m
688 256
640 64 c
</path>
<path stroke="light gray">
640 448 m
448 256 l
</path>
<path stroke="light gray">
640 64 m
448 256 l
</path>
<path stroke="light gray">
688 64 m
48 0 0 -48 640 64 640 16 a
256 64 m
48 0 0 48 304 64 304 16 a
304 16 m
640 16 l
688 64 m
688 256
640 448 c
</path>
<path stroke="light gray">
256 448 m
256 64 l
</path>
<path stroke="light gray">
256 64 m
640 64 l
</path>
<path stroke="light gray">
640 64 m
640 448 l
</path>
<path stroke="light gray">
640 448 m
256 448 l
</path>
<path stroke="light gray">
256 448 m
448 256 l
</path>
<path stroke="light gray">
256 64 m
448 256 l
</path>
<text transformations="translations" pos="448 464" stroke="light gray" type="label" width="30.5568" height="16.224" depth="2.976" halign="center" valign="baseline">3,5</text>
<text transformations="translations" pos="240 256" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" halign="right" valign="baseline">4</text>
<text transformations="translations" pos="352 368" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" valign="baseline">4</text>
<text transformations="translations" pos="544 368" stroke="light gray" type="label" width="11.9544" height="16.212" depth="0" halign="right" valign="baseline">2</text>
<text transformations="translations" pos="624 256" stroke="light gray" type="label" width="30.5568" height="15.6984" depth="2.976" halign="right" valign="baseline">4,5</text>
<text transformations="translations" pos="352 176" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" halign="right" valign="baseline">3</text>
<text matrix="1 0 0 1 0 -16" transformations="translations" pos="560 176" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" valign="baseline">3</text>
<text transformations="translations" pos="448 80" stroke="light gray" type="label" width="11.9544" height="15.684" depth="0" halign="center" valign="baseline">4</text>
<text transformations="translations" pos="448 32" stroke="light gray" type="label" width="11.9544" height="16.212" depth="0" halign="center" valign="baseline">1</text>
<text transformations="translations" pos="448 512" stroke="light gray" type="label" width="11.9544" height="16.2336" depth="0.504" halign="center" valign="baseline">6</text>
<use matrix="1 0 0 1 -64 64" name="mark/disk(sx)" pos="320 384" size="normal" stroke="black"/>
<use matrix="1 0 0 1 -64 -64" name="mark/disk(sx)" pos="320 128" size="normal" stroke="black"/>
<use matrix="1 0 0 1 64 -64" name="mark/disk(sx)" pos="576 128" size="normal" stroke="black"/>
<use matrix="1 0 0 1 64 64" name="mark/disk(sx)" pos="576 384" size="normal" stroke="black"/>
<use name="mark/disk(sx)" pos="448 256" size="normal" stroke="black"/>
<path stroke="light purple" pen="ultrafat" arrow="ng-normal/normal">
640 448 m
256 448 l
</path>
</page>
</ipe>