Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download

📚 The CoCalc Library - books, templates and other resources

132928 views
License: OTHER
1
% Author: Kjell Magne Fauske
2
% Source: http://www.texample.net/tikz/examples/prims-algorithm/
3
% Declare layers
4
\pgfdeclarelayer{background}
5
\pgfsetlayers{background,main}
6
7
\subsection{Algorithmus von Prim}
8
\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
9
$S$ ist Menge aller erreichten Knoten, $E$ ist Menge der ausgewählten Kanten.\pause
10
11
12
13
Starte bei einem beliebigen Knoten: füge zu $S$ hinzu.
14
\begin{enumerate}
15
\item wähle Kante am \emph{Rand} von $S$ mit dem geringsten Gewicht und füge zu $E$ hinzu. \pause
16
\item füge zugehörigen Knoten zu $S$ hinzu.
17
\item Fehlt ein Knoten in $S$ ? goto 1
18
\end{enumerate}
19
\end{frame}
20
21
\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
22
%% Adjacency matrix of graph
23
%% \ a b c d e f g
24
%% a x 7 5
25
%% b 7 x 8 9 7
26
%% c 8 x 5
27
%% d 5 9 x 15 6
28
%% e 7 5 15 x 8 9
29
%% f 6 8 x 11
30
%% g 9 11 x
31
\begin{figure}
32
\begin{tikzpicture}[scale=1.8, auto,swap]
33
% Draw a 7,11 network
34
% First we draw the vertices
35
\foreach \pos/\name in {{(0,2)/a}, {(2,1)/b}, {(4,1)/c},
36
{(0,0)/d}, {(3,0)/e}, {(2,-1)/f}, {(4,-1)/g}}
37
\node[vertex] (\name) at \pos {$\name$};
38
% Connect vertices with edges and draw weights
39
\foreach \source/ \dest /\weight in {b/a/7, c/b/8,d/a/5,d/b/9,
40
e/b/7, e/c/5,e/d/15,
41
f/d/6,f/e/8,
42
g/e/9,g/f/11}
43
\path[edge] (\source) -- node[weight] {$\weight$} (\dest);
44
% Start animating the vertex and edge selection.
45
\foreach \vertex / \fr in {d/1,a/2,f/3,b/4,e/5,c/6,g/7}
46
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex$};
47
% For convenience we use a background layer to highlight edges
48
% This way we don't have to worry about the highlighting covering
49
% weight labels.
50
\begin{pgfonlayer}{background}
51
\pause
52
\foreach \source / \dest in {d/a,d/f,a/b,b/e,e/c,e/g}
53
\path<+->[selected edge] (\source.center) -- (\dest.center);
54
\foreach \source / \dest / \fr in {d/b/4,d/e/5,e/f/5,b/c/6,f/g/7}
55
\path<\fr->[ignored edge] (\source.center) -- (\dest.center);
56
\end{pgfonlayer}
57
\end{tikzpicture}
58
\end{figure}
59
\end{frame}
60
%% end of source
61
62
\begin{frame}{Algorithmus von Prim}{Prim's algorithm}
63
%source http://inserv.math.muni.cz/biografie/obrazky/jarnik_vojtech.jpg
64
%http://www.ams.org/featurecolumn/images/january2006/trees9.jpg
65
\textbf{Erfinder}
66
\begin{itemize}
67
\item 1930: Vojtěch Jarník
68
\item 1957: Robert C. Prim
69
\item 1959 wiederentdeckt von Edsger Dijkstra
70
\end{itemize}
71
72
\begin{figure}
73
\centering
74
\mbox{\subfigure{\includegraphics[width=0.6in]{Material/jarnik_vojtech.jpg}}\quad
75
\subfigure{\includegraphics[width=0.6in]{Material/Prim.jpg} }}
76
\caption{Jarnik Vojtech und Prim}
77
\end{figure}
78
\textbf{Alternative Bezeichnungen}
79
\begin{itemize}
80
\item DJP algorithm
81
\item Jarník algorithm
82
\item Prim–Jarník algorithm
83
\end{itemize}
84
85
\end{frame}
86