\documentclass{bschlangaul-aufgabe}
\bLadePakete{graph,spalten}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 4},
  Thematik = {Kürzeste-Wege-Bäume und minimale Spannbäume},
  Referenz = 66115-2021-F.T1-TA2-A4,
  RelativerPfad = Examen/66115/2021/03/Thema-1/Teilaufgabe-2/Aufgabe-4.tex,
  ZitatSchluessel = examen:66115:2021:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Graphen, Algorithmus von Dijkstra, Algorithmus von Prim},
  EinzelpruefungsNr = 66115,
  Jahr = 2021,
  Monat = 03,
  ThemaNr = 1,
  TeilaufgabeNr = 2,
  AufgabeNr = 4,
}

Die Algorithmen von Dijkstra und Jarník-Prim gehen ähnlich
vor.\index{Graphen}\footcite{examen:66115:2021:03} Beide berechnen,
ausgehend von einem Startknoten, einen Baum. Allerdings berechnet der
Algorithmus von Dijkstra\index{Algorithmus von Dijkstra} einen
Kürzesten-Wege-Baum, während der Algorithmus von
Jarník-Prim\index{Algorithmus von Prim} einen minimalen Spannbaum
berechnet.

\begin{enumerate}

%%
% a)
%%

\item Geben Sie einen ungerichteten gewichteten Graphen $G$ mit
höchstens fünf Knoten und einen Startknoten $s$ von $G$ an, so dass
\textbf{Dijkstra}($G$, $s$) und \textbf{Jarník-Prim}($G$, $s$) ausgehend
von $s$ verschiedene Bäume in $G$ liefern. Geben Sie beide Bäume an.

\begin{bGraphenFormat}
A: 0 0
B: 1 1
S: 2 0
C: 1 -1
A -- B: 1
A -- C: 1
A -- S: 2
B -- S: 2
C -- S: 2
\end{bGraphenFormat}

\begin{bAntwort}
\begin{multicols}{2}
\bPseudoUeberschrift{Originalgraph}

\begin{tikzpicture}[li graph]
\node (A) at (0,0) {A};
\node (B) at (1,1) {B};
\node (C) at (1,-1) {C};
\node (S) at (2,0) {S};

\path (A) edge node {1} (B);
\path (A) edge node {1} (C);
\path (A) edge node {2} (S);
\path (B) edge node {2} (S);
\path (C) edge node {2} (S);
\end{tikzpicture}

\bPseudoUeberschrift{Dijkstra-Wegebaum von S aus:}

\begin{tikzpicture}[li graph]
\node (A) at (0,0) {A};
\node (B) at (1,1) {B};
\node (C) at (1,-1) {C};
\node (S) at (2,0) {S};

\path (A) edge node {2} (S);
\path (B) edge node {2} (S);
\path (C) edge node {2} (S);
\end{tikzpicture}

\columnbreak

\bPseudoUeberschrift{Minimaler Spannbaum 1}

\begin{tikzpicture}[li graph]
\node (A) at (0,0) {A};
\node (B) at (1,1) {B};
\node (C) at (1,-1) {C};
\node (S) at (2,0) {S};

\path (A) edge node {1} (B);
\path (A) edge node {1} (C);
\path (A) edge node {2} (S);
\end{tikzpicture}

\bPseudoUeberschrift{Minimaler Spannbaum 2}

\begin{tikzpicture}[li graph]
\node (A) at (0,0) {A};
\node (B) at (1,1) {B};
\node (C) at (1,-1) {C};
\node (S) at (2,0) {S};

\path (A) edge node {1} (B);
\path (A) edge node {1} (C);
\path (B) edge node {2} (S);
\end{tikzpicture}

\bPseudoUeberschrift{Minimaler Spannbaum 3}

\begin{tikzpicture}[li graph]
\node (A) at (0,0) {A};
\node (B) at (1,1) {B};
\node (C) at (1,-1) {C};
\node (S) at (2,0) {S};

\path (A) edge node {1} (B);
\path (A) edge node {1} (C);
\path (C) edge node {2} (S);
\end{tikzpicture}
\end{multicols}
\end{bAntwort}

%%
% b)
%%

\item Geben Sie eine unendlich große Menge von Graphen an, auf denen der
Algorithmus von Jarník-Prim asymptotisch schneller ist als der
Algorithmus von Kruskal, der ebenfalls minimale Spannbäume berechnet.

\emph{Hinweis:} Für einen Graphen mit $n$ Knoten und $m$ Kanten benötigt
Jarník-Prim $\mathcal{O}(m + n \log n)$ Zeit, Kruskal $\mathcal{O}(m
\log m)$ Zeit.

%%
% c)
%%

\item Sei $Z$ die Menge der zusammenhängenden Graphen und $G \in Z$. Sei
$n$ die Anzahl der Knoten von $G$ und $m$ die Anzahl der Kanten von $G$.
Entscheiden Sie mit Begründung, ob $\log m \in \Theta(\log n)$ gilt.

\end{enumerate}
\end{document}
