\documentclass{bschlangaul-aufgabe}
\bLadePakete{graph}
\begin{document}
\bAufgabenMetadaten{
  Titel = {Aufgabe 6},
  Thematik = {Graph A-F},
  Referenz = 46115-2012-F.T1-A6,
  RelativerPfad = Examen/46115/2012/03/Thema-1/Aufgabe-6.tex,
  ZitatSchluessel = examen:46115:2012:03,
  BearbeitungsStand = mit Lösung,
  Korrektheit = unbekannt,
  Ueberprueft = {unbekannt},
  Stichwoerter = {Algorithmus von Dijkstra, Adjazenzliste, Adjazenzmatrix, Halde (Heap)},
  EinzelpruefungsNr = 46115,
  Jahr = 2012,
  Monat = 03,
  ThemaNr = 1,
  AufgabeNr = 6,
}

\section{Aufgabe 6
\index{Algorithmus von Dijkstra}
\footcite{examen:46115:2012:03}}

Gegeben sei der folgende gerichtete Graph $G = (V, E, d)$ mit den
angegebenen Kantengewichten.

\begin{bGraphenFormat}
A: 0 1
B: 1 2
C: 2 2
D: 3 1
E: 1 0
F: 2 0
A -> B: 1
A -> E: 7
B -> C: 3
C -> D: 6
C -> E: 3
C -> F: 5
E -> F: 1
F -> C: 1
F -> D: 2
\end{bGraphenFormat}

\begin{center}
\begin{tikzpicture}[li graph,x=2cm,y=1.5cm]
\node (A) at (0,1) {A};
\node (B) at (1,2) {B};
\node (C) at (2,2) {C};
\node (D) at (3,1) {D};
\node (E) at (1,0) {E};
\node (F) at (2,0) {F};

\path[->] (A) edge node {} (B);
\path[->] (A) edge node {7} (E);
\path[->] (B) edge node {3} (C);
\path[->] (C) edge node {3} (E);
\path[->] (C) edge[bend left] node {5} (F);
\path[->] (C) edge node {6} (D);
\path[->] (E) edge node {} (F);
\path[->] (F) edge[bend left] node {} (C);
\path[->] (F) edge node {2} (D);
\end{tikzpicture}
\end{center}

\begin{enumerate}

%%
% a)
%%

\item Geben Sie eine formale Beschreibung des abgebildeten Graphen $G$
durch Auflistung von $V$, $E$ und $d$ an.
\index{Adjazenzliste}

\begin{bAntwort}
$G = (V, E, d)$

mit

$V =
\{
  A, B, C, D, E F
\}$

und

$E =
\{
  (A, B),
  (A, E),
  (B, C),
  (C, D),
  (C, E),
  (C, F),
  (E, F),
  (F, C),
  (F, D),
\}$

und

$d =
\{
  1,
  7,
  3,
  6,
  3,
  5,
  1,
  1,
  2
\}$

\bPseudoUeberschrift{Als Adjazenzliste}

\begin{tabular}{llll}
A: & $\rightarrow$ B & $\xrightarrow{~7~}$ E \\
B: & $\xrightarrow{~3~}$ C \\
C: & $\xrightarrow{~6~}$ D & $\xrightarrow{~3~}$ E & $\xrightarrow{~5~}$ F \\
D: \\
E: & $\rightarrow$ F \\
F: & $\rightarrow$ C & $\xrightarrow{~2~}$ D \\
\end{tabular}
\end{bAntwort}

%%
% b)
%%

\item Erstellen Sie die Adjazenzmatrix $A$ zum Graphen $G$.
\index{Adjazenzmatrix}

\begin{bAntwort}
\[
\begin{blockarray}{ccccccc}
   & A & B & C & D & E & F \\
\begin{block}{c(cccccc)}
 A & * & 1 & - & - & 7 & - \\
 B & - & * & 3 & - & - & - \\
 C & - & - & * & 6 & 3 & 5 \\
 D & - & - & - & * & - & - \\
 E & - & - & - & - & * & 1 \\
 F & - & - & 1 & 2 & - & * \\
\end{block}
\end{blockarray}
\]

\end{bAntwort}

%%
% c)
%%

\item Berechnen Sie unter Verwendung des Algorithmus nach Dijkstra -
vom Knoten $A$ beginnend - den kürzesten Weg, um alle Knoten zu besuchen.
Die Restknoten werden in einer Halde (engl. Heap) gespeichert. Geben Sie
zu jedem Arbeitsschritt den Inhalt dieser Halde an.
\index{Halde (Heap)}

\begin{bAntwort}

\begin{tabular}{llllllll}
\bf{Nr.}     & \bf{besucht} & \bf{A}       & \bf{B}       & \bf{C}       & \bf{D}       & \bf{E}       & \bf{F}       \\
\hline
0            &              & 0            & $\infty$     & $\infty$     & $\infty$     & $\infty$     & $\infty$     \\
1            & A            & \bf{0}       & 1            & $\infty$     & $\infty$     & 7            & $\infty$     \\
2            & B            & |            & \bf{1}       & 4            & $\infty$     & 7            & $\infty$     \\
3            & C            & |            & |            & \bf{4}       & 10           & 7            & 9            \\
4            & E            & |            & |            & |            & 10           & \bf{7}       & 8            \\
5            & F            & |            & |            & |            & 10           & |            & \bf{8}       \\
6            & D            & |            & |            & |            & \bf{10}      & |            & |            \\
\end{tabular}

\begin{tabular}{llll}
\bf{nach}                                         & \bf{Entfernung}                                   & \bf{Reihenfolge}                                  & \bf{Pfad}                                         \\
\hline
A  $\rightarrow$  A                               & 0                                                 & 1                                                 &                                                   \\
A  $\rightarrow$  B                               & 1                                                 & 2                                                 & A $\rightarrow$ B                                 \\
A  $\rightarrow$  C                               & 4                                                 & 3                                                 & A $\rightarrow$ B $\rightarrow$ C                 \\
A  $\rightarrow$  D                               & 10                                                & 6                                                 & A $\rightarrow$ B $\rightarrow$ C $\rightarrow$ D \\
A  $\rightarrow$  E                               & 7                                                 & 4                                                 & A $\rightarrow$ E                                 \\
A  $\rightarrow$  F                               & 8                                                 & 5                                                 & A $\rightarrow$ E $\rightarrow$ F                 \\
\end{tabular}
\end{bAntwort}

\end{enumerate}
\end{document}
