agt_exercise/übung_1/ads_übung_1.tex
2026-04-17 18:50:33 +02:00

86 lines
3 KiB
TeX

\documentclass{ngexrcs}
\usepackage{hyperref}
\title{1. Übungsblatt}
\subject{Algorithmische Graphentheorie}
\author{Jasper Gude \and Pia Rötgers}
\begin{document}
\maketitle
\points[\qquad]{20}
\section{Spannbäume \& Breitensuche}
Sei $G = \tup{V, E}$ ein zusammenhängender Graph mit Kantengewichten $w: E \to \NN$
und $s \in V \deg$ ein ausgezeichneter Knoten.
\begin{enumerate}
\item
\begin{quote}
Wenn $w(e) = 1$ für alle $e \in E$, dann ist der Breitensuchbaum mit
Quelle $s$ ein minimaler Spannbaum.
\end{quote}
Die Breitensuche berechnet in diesem
Fall den kürzesten Weg von jedem Knoten zum Knoten $s$, also den
Breitensuchbaum. Dieser spannt also einen minimalen Spannbaum auf.
\points{2}
\item
\begin{quote}
Wenn $w(e) = 1$ für alle $e \in E$, dann ist jeder minimale Spannbaum
von $G$ ein Breitensuchbaum mit Quelle $s$.
\end{quote}
Falsch, siehe \autoref{fig:msb}.
\points{2}
\begin{figure}[h]
\centering
\includegraphics[width=0.2\textwidth]{msb.eps}
\caption{$\pi$-Zeiger des Breitensuchbaums und MSB blau hinterlegt.}
\label{fig:msb}
\end{figure}
\item
\begin{quote}
Wenn $w(e) \in \set{1, 2, 3}$ für alle $e \in E$, dann ist jeder minimale
Spannbaum von $G$ ein Tiefensuchbaum mit Quelle $s$.
\end{quote}
Sei $w(e) = 1$ für
alle $e \in E$ so gilt das Gegenbeispiel von oben. Also ist die Aussage
falsch.
\points{2}
\end{enumerate}
\section{Kreissuche}
\begin{enumerate}
\item
Wähle Startknoten $s$ und füge ihn in eine neue Queue $Q$ ein.
Nimm den vordersten Knoten aus $Q$ und füge seine noch nicht verbrauchten
Nachbarn ein. Markiere diesen Knoten anschließend als verbraucht ($black$).
Wiederhole den Schritt solange bis $Q$ leer ist. Merke dir dabei die zwei
letzten entnommenen Knoten. Sind sie gleich, hat der Graph einen
einfachen Kreis.
\begin{algorithmic}
\alg{EinfacherKreis}(Graph $G$, Vertex $s$) \+ \\
\alg{Initialize}($G$, $s$) \\
$Q \gets$ new \alg{Queue}() \\
$Q.$\alg{Enqueue}($s$) \\
$t_1 \gets nil$ \\
$t_2 \gets s$ \\
while $Q \neq \emptyset$ do \+ \\
$u \gets Q.$\alg{Dequeue}() \\
$t_1 \gets t_2$ \\
$t_2 \gets u$ \\
foreach $v \in Adj[u]$ do \+ \\
if $v.color = white$ then \+ \\
$Q.$\alg{Enqueue}($v$) \-\- \\
$u.color \gets black$ \- \\
if $t_1 = t_2$ then \+ \\
return $true$ \- \\
else \+ \\
return $false$
\end{algorithmic}
\end{enumerate}
\section{Eulerwege}
\section{Graphmodellierung}
\end{document}