📚 The CoCalc Library - books, templates and other resources
License: OTHER
\subsection{Eulerkreisproblem}12\begin{frame}{Eulerkreisproblem}{Eulerian path}3\begin{block}{Erklärung}4Ein Eulerkreis ist ein Kreis in einem Graphen, in dem jede Kante genau einmal benutzt wird.5\end{block}6\end{frame}78\begin{frame}{Eulerkreisproblem}{Bedingungen}9\begin{block}{Im ungerichteten Graph}10Es existiert ein Eulerkreis\\11$\Leftrightarrow$ Der Graph ist zusammenhängend und jeder Knoten hat geraden Grad12\end{block}1314\begin{block}{Im gerichteten Graph}15Es existiert ein Eulerkreis\\16$\Leftrightarrow$ Der Graph ist stark zusammenhängend und für jeden Knoten gilt: Eingangsgrad = Ausgangsgrad17\end{block}18\end{frame}1920\begin{frame}{Algorithmus von Fleury}21Das Eulerkreisproblem ist effizient lösbar:2223Algorithmus von Fleury $\in {\cal O}(|E|^2) $:2425\begin{enumerate}26\item Start bei einem beliebigen Knoten27\item Wähle eine unmarkierte von dem Knoten ausgehende Kante, die wenn möglich im Restgraphen keine Brückenkante ist. Wenn es nur Brückenkanten gibt, dann dann wird die Kante zu dem Knoten genommen, der den höhere Ausgangsgrad hat28\item Markiere diese Kante, füge sie der Kreis hinzu29\item Wähle den zu der markierten Kante adjazenten Knoten30\item Wenn dieser Knoten noch unmarkierte Kanten besitzt: \\GOTO 2.31\end{enumerate}32\end{frame}3334%\begin{frame}{Algorithmus von Fleury}{Anwendungsbeispiel}35% Wortmenge: $\{$as, man, meet, nets, set, sum, tea, team$\}$36%37% Menge der Anfangs- und Endbuchstaben: $\{$a, m, n, s, t$\}$38% \begin{figure}39% \begin{tikzpicture}[->,scale=1.8, auto,swap]40% % Draw a 7,11 network41% % First we draw the vertices42% \foreach \pos/\name in {{(0,0)/a}, {(0,2)/s},43% {(4,0)/m}, {(2,2)/t}, {(3,2)/n}}44% \node[vertex] (\name) at \pos {$\name$};45% % Connect vertices with edges and draw weights46% \foreach \source/ \dest /\foo /\pos in {a/s/as/,s/m/sum/bend right,47% s/t/set/, m/t/meet/bend left,m/n/man/bend right,48% t/a/tea/bend left, t/m/team/bend left, n/s/nets/bend right}49% \path (\source) edge [\pos] node {\foo} (\dest);50% \end{tikzpicture}51% \end{figure}52%\end{frame}5354\begin{frame}{Algorithmus von Fleury}{Anwendungsbeispiel}55\begin{figure}56\begin{tikzpicture}[->,scale=1.7, auto,swap]57% Draw a 7,11 network58% First we draw the vertices59\foreach \pos/\name in {{(0,1)/a}, {(2,0)/c}, {(2,3)/b},60{(4,3)/d}, {(4,1)/e}, {(6,2)/f}, {(6,0)/g}}61\node[vertex] (\name) at \pos {$\name$};62% Connect vertices with edges and draw weights63\foreach \source/ \dest /\pos in {b/a/,c/a/,a/d/,a/e/,c/b/, d/b/, b/e/, e/c/, g/c/, e/d/, d/f/, f/g/}64\path (\source) edge [\pos] node {} (\dest);65% Start animating the edge selection.66% For convenience we use a background layer to highlight edges67% This way we don't have to worry about the highlighting covering68% weight labels.69\begin{pgfonlayer}{background}70\foreach \source / \dest / \fr / \pos in {a/a/1/, a/e/2/, e/d/3/, d/b/4/, b/a/5/,71a/d/6/, d/f/7/, f/g/8/, g/c/9/, c/b/10/,72b/e/11/, e/c/12/, c/a/13/}73\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);74\end{pgfonlayer}75\end{tikzpicture}76\end{figure}77\end{frame}7879\begin{frame}{Algorithmus von Hierholz}80Effizienter als Fleury8182\begin{enumerate}83\item Start bei einem beliebigen Knoten v84\item Folge so lange Kanten, bis man wieder in v ist85\item Wiederhole diesen Schritt bei einem Knoten, der bereits in einem Kreis ist und der noch unmarkierte Kanten hat86\end{enumerate}87\end{frame}8889\begin{frame}{Algorithmus von Hierholz}{Anwendungsbeispiel}90\begin{figure}91\begin{tikzpicture}[->,scale=1.7, auto,swap]92% Draw a 7,11 network93% First we draw the vertices94\foreach \pos/\name in {{(0,1)/a}, {(2,0)/c}, {(2,3)/b},95{(4,3)/d}, {(4,1)/e}, {(6,2)/f}, {(6,0)/g}}96\node[vertex] (\name) at \pos {$\name$};97% Connect vertices with edges and draw weights98\foreach \source/ \dest /\pos in {b/a/,c/a/,a/d/,a/e/,c/b/, d/b/, b/e/, e/c/, g/c/, e/d/, d/f/, f/g/}99\path (\source) edge [\pos] node {} (\dest);100% Start animating the edge selection.101% For convenience we use a background layer to highlight edges102% This way we don't have to worry about the highlighting covering103% weight labels.104\begin{pgfonlayer}{background}105\foreach \source / \dest / \fr / \pos in {a/a/1/, a/e/2/, e/d/3/, d/b/4/, b/a/5/,106e/c/6/, c/b/7/, b/e/8/, d/f/9/, f/g/10/,107g/c/11/, c/a/12/, a/d/13/}108\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);109\end{pgfonlayer}110\end{tikzpicture}111\end{figure}112\end{frame}113114\begin{frame}{Eulerpfad}115\begin{figure}116\begin{tikzpicture}[,scale=1.8, auto,swap]117% Draw a 7,11 network118% First we draw the vertices119\foreach \pos/\name in {{(0,0)/a}, {(2,0)/b}, {(0,2)/c},120{(2,2)/d}, {(1,3)/e}}121\node[vertex] (\name) at \pos {$\name$};122% Connect vertices with edges and draw weights123\foreach \source/ \dest /\pos in {a/b/,b/c/, c/d/, d/e/, a/c/, a/d/, b/d/, c/e/}124\path (\source) edge [\pos] node {} (\dest);125% Start animating the edge selection.126% For convenience we use a background layer to highlight edges127% This way we don't have to worry about the highlighting covering128% weight labels.129\begin{pgfonlayer}{background}130\foreach \source / \dest / \fr / \pos in {a/a/1/, b/d/2/, d/c/3/, c/e/4/, e/d/5/, d/a/6/,131a/b/7/, b/c/8/, c/a/9/}132\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);133\end{pgfonlayer}134\end{tikzpicture}135\end{figure}136Es kann einen Eulerpfad, aber keinen Eulerkreis geben137\end{frame}138139