% Author: Kjell Magne Fauske
% Source: http://www.texample.net/tikz/examples/prims-algorithm/
% Declare layers
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}

\subsection{Algorithmus von Prim}
\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
	$S$ ist Menge aller erreichten Knoten, $E$ ist Menge der ausgewählten Kanten.\pause


	
	Starte bei einem beliebigen Knoten: füge zu $S$ hinzu.
	\begin{enumerate}
		\item wähle Kante am \emph{Rand} von $S$ mit dem geringsten Gewicht und füge zu $E$ hinzu. \pause
		\item füge zugehörigen Knoten zu $S$ hinzu.
		\item Fehlt ein Knoten in $S$ ? goto 1
	\end{enumerate}
\end{frame}

\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
	%% Adjacency matrix of graph
	%% \  a  b  c  d  e  f  g
	%% a  x  7     5
	%% b  7  x  8  9  7
	%% c     8  x     5
	%% d  5  9     x 15  6
	%% e     7  5 15  x  8  9
	%% f           6  8  x 11
	%% g              9  11 x
	\begin{figure}
		\begin{tikzpicture}[scale=1.8, auto,swap]
			% Draw a 7,11 network
			% First we draw the vertices
			\foreach \pos/\name in {{(0,2)/a}, {(2,1)/b}, {(4,1)/c},
				                    {(0,0)/d}, {(3,0)/e}, {(2,-1)/f}, {(4,-1)/g}}
				\node[vertex] (\name) at \pos {$\name$};
			% Connect vertices with edges and draw weights
			\foreach \source/ \dest /\weight in {b/a/7, c/b/8,d/a/5,d/b/9,
				                                 e/b/7, e/c/5,e/d/15,
				                                 f/d/6,f/e/8,
				                                 g/e/9,g/f/11}
				\path[edge] (\source) -- node[weight] {$\weight$} (\dest);
			% Start animating the vertex and edge selection. 
			\foreach \vertex / \fr in {d/1,a/2,f/3,b/4,e/5,c/6,g/7}
				\path<\fr-> node[selected vertex] at (\vertex) {$\vertex$};
			% For convenience we use a background layer to highlight edges
			% This way we don't have to worry about the highlighting covering
			% weight labels. 
			\begin{pgfonlayer}{background}
				\pause
				\foreach \source / \dest in {d/a,d/f,a/b,b/e,e/c,e/g}
				    \path<+->[selected edge] (\source.center) -- (\dest.center);
				\foreach \source / \dest / \fr in {d/b/4,d/e/5,e/f/5,b/c/6,f/g/7}
				    \path<\fr->[ignored edge] (\source.center) -- (\dest.center);
			\end{pgfonlayer}
		\end{tikzpicture}
	\end{figure}
\end{frame}
%% end of source

\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
%source http://inserv.math.muni.cz/biografie/obrazky/jarnik_vojtech.jpg
%http://www.ams.org/featurecolumn/images/january2006/trees9.jpg
	\textbf{Erfinder}
	\begin{itemize}
		\item 1930: Vojtěch Jarník
		\item 1957: Robert C. Prim
		\item 1959 wiederentdeckt von Edsger Dijkstra
	\end{itemize}
	
	\begin{figure}
\centering
\mbox{\subfigure{\includegraphics[width=0.6in]{Material/jarnik_vojtech.jpg}}\quad
\subfigure{\includegraphics[width=0.6in]{Material/Prim.jpg} }}
\caption{Jarnik Vojtech und Prim}
\end{figure}
	\textbf{Alternative Bezeichnungen}
	\begin{itemize}
		\item DJP algorithm
		\item Jarník algorithm
		\item Prim–Jarník algorithm
	\end{itemize}
	
\end{frame}