Koenigsberger-Brueckenproblem.tex 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370
  1. \subsection{Königsberger Brückenproblem}
  2. \framedgraphic{Königsberg heute}{../images/koenigsberg-bruecken-luftbild}
  3. \framedgraphic{Königsberger Brückenproblem}{../images/Konigsberg_bridges.png}
  4. \framedgraphic{Übersetzung in einen Graphen}{../images/Konigsberg_bridges-graph.png}
  5. \begin{frame}{Übersetzung in einen Graphen}
  6. \begin{center}
  7. \adjustbox{max size={\textwidth}{0.8\textheight}}{
  8. \input{koenigsberg/koenigsberg-1}
  9. }
  10. \end{center}
  11. \end{frame}
  12. \begin{frame}{Eulerscher Kreis}
  13. \begin{block}{Eulerscher Kreis}
  14. Sei $G$ ein Graph und $A$ ein Kreis in $G$.
  15. $A$ heißt \textbf{eulerscher Kreis} $:\Leftrightarrow \forall_{k \in K}: k \in A$.
  16. \end{block}
  17. \begin{block}{Eulerscher Graph}
  18. Ein Graph heißt \textbf{eulersch}, wenn er einen eulerschen Kreis enthält.
  19. \end{block}
  20. \end{frame}
  21. \begin{frame}{Hamiltonkreis}
  22. \begin{alertblock}{Achtung}
  23. Verwechslungsgefahr: Hamiltonkreis $\neq$ Eulerkreis
  24. \end{alertblock}
  25. \pause
  26. \begin{block}{Hamiltonkreis}
  27. Sei $G$ ein Graph und $A$ ein Kreis in $G$.
  28. $A$ heißt \textbf{Hamilton-Kreis} $:\Leftrightarrow \forall_{e \in E}: e \text{ ist genau ein mal in } A$.
  29. \end{block}
  30. \begin{block}{Eulerscher Kreis}
  31. Sei $G$ ein Graph und $A$ ein Kreis in $G$.
  32. $A$ heißt \textbf{eulerscher Kreis} $:\Leftrightarrow \forall_{k \in K}: k \in A$.
  33. \end{block}
  34. \end{frame}
  35. \pgfdeclarelayer{background}
  36. \pgfsetlayers{background,main}
  37. \begin{frame}{Eulerscher Kreis}
  38. \newcommand\n{5}
  39. \begin{center}
  40. \adjustbox{max size={\textwidth}{0.8\textheight}}{
  41. \begin{tikzpicture}
  42. \foreach \number in {1,...,\n}{
  43. \node[vertex] (N-\number) at ({\number*(360/\n)}:5.4cm) {};
  44. }
  45. \foreach \number in {1,...,\n}{
  46. \foreach \y in {1,...,\n}{
  47. \draw (N-\number) -- (N-\y);
  48. }
  49. }
  50. \node<2->[vertex,red] (N-1) at ({1*(360/\n)}:5.4cm) {};
  51. \begin{pgfonlayer}{background}
  52. \path<2->[selected edge] (N-1.center) edge node {} (N-2.center);
  53. \path<3->[selected edge] (N-2.center) edge node {} (N-3.center);
  54. \path<4->[selected edge] (N-3.center) edge node {} (N-4.center);
  55. \path<5->[selected edge] (N-4.center) edge node {} (N-5.center);
  56. \path<6->[selected edge] (N-5.center) edge node {} (N-1.center);
  57. \path<7->[selected edge] (N-1.center) edge node {} (N-3.center);
  58. \path<8->[selected edge] (N-3.center) edge node {} (N-5.center);
  59. \path<9->[selected edge] (N-5.center) edge node {} (N-2.center);
  60. \path<10->[selected edge] (N-2.center) edge node {} (N-4.center);
  61. \path<11->[selected edge](N-4.center) edge node {} (N-1.center);
  62. \end{pgfonlayer}
  63. \end{tikzpicture}
  64. }
  65. \end{center}
  66. \end{frame}
  67. \pgfdeclarelayer{background}
  68. \pgfsetlayers{background,main}
  69. \begin{frame}{Hamilton-Kreis, kein EK}
  70. \begin{center}
  71. \adjustbox{max size={\textwidth}{0.8\textheight}}{
  72. \begin{tikzpicture}
  73. \node (a)[vertex] at (0,0) {};
  74. \node (b)[vertex] at (2,0) {};
  75. \node (c)[vertex] at (2,2) {};
  76. \node (d)[vertex] at (0,2) {};
  77. \foreach \from/\to in {a/b,b/c,c/d,d/a,a/c,b/d}
  78. \draw[line width=2pt] (\from) -- (\to);
  79. \node<2->[vertex,red] (a) at (0,0) {};
  80. \node<3->[vertex,red] (b) at (2,0) {};
  81. \node<4->[vertex,red] (c) at (2,2) {};
  82. \node<5->[vertex,red] (d) at (0,2) {};
  83. \begin{pgfonlayer}{background}
  84. \path<3->[selected edge,black!50] (a.center) edge node {} (b.center);
  85. \path<4->[selected edge,black!50] (b.center) edge node {} (c.center);
  86. \path<5->[selected edge,black!50] (c.center) edge node {} (d.center);
  87. \path<6->[selected edge,black!50] (d.center) edge node {} (a.center);
  88. \end{pgfonlayer}
  89. \end{tikzpicture}
  90. }
  91. \end{center}
  92. \end{frame}
  93. \pgfdeclarelayer{background}
  94. \pgfsetlayers{background,main}
  95. \begin{frame}{Eulerkreis, kein HK}
  96. \begin{center}
  97. \adjustbox{max size={\textwidth}{0.8\textheight}}{
  98. \begin{tikzpicture}
  99. \node (a)[vertex] at (0,0) {};
  100. \node (b)[vertex] at (2,0) {};
  101. \node (c)[vertex] at (2,2) {};
  102. \node (d)[vertex] at (0,2) {};
  103. \node (e)[vertex] at (1,1) {};
  104. \foreach \from/\to in {a/b,b/c,c/d,d/a,b/e,e/d}
  105. \draw[line width=2pt] (\from) -- (\to);
  106. \draw[line width=2pt] (b) to[bend right] (d);
  107. \node<2->[vertex,lime] (d) at (0,2) {};
  108. \node<3->[vertex,red] (a) at (0,0) {};
  109. \node<4->[vertex,red] (b) at (2,0) {};
  110. \node<5->[vertex,red] (c) at (2,2) {};
  111. \node<6->[vertex,lime] (d) at (0,2) {};
  112. \node<7->[vertex,red] (e) at (1,1) {};
  113. \node<8->[vertex,red] (b) at (2,0) {};
  114. \begin{pgfonlayer}{background}
  115. \path<3->[selected edge,black!50] (d.center) edge node {} (a.center);
  116. \path<4->[selected edge,black!50] (a.center) edge node {} (b.center);
  117. \path<5->[selected edge,black!50] (b.center) edge node {} (c.center);
  118. \path<6->[selected edge,black!50] (c.center) edge node {} (d.center);
  119. \path<7->[selected edge,black!50] (d.center) edge node {} (e.center);
  120. \path<8->[selected edge,black!50] (e.center) edge node {} (b.center);
  121. \path<9->[selected edge,black!50] (b.center) to[bend right] (d.center);
  122. \end{pgfonlayer}
  123. \end{tikzpicture}
  124. }
  125. \end{center}
  126. \end{frame}
  127. \subsection{Satz von Euler}
  128. \begin{frame}{Satz von Euler}
  129. \begin{block}{Satz von Euler}
  130. Wenn ein Graph $G$ eulersch ist, dann hat jede Ecke von $G$ geraden Grad.
  131. \end{block}
  132. \pause
  133. $\Rightarrow$ Wenn $G$ eine Ecke mit ungeraden Grad hat, ist $G$ nicht eulersch.
  134. \pause
  135. \begin{gallery}
  136. \galleryimage{vollstaendig/k-5}
  137. \galleryimage{koenigsberg/koenigsberg-1}
  138. \end{gallery}
  139. \end{frame}
  140. \begin{frame}{Beweis: Satz von Euler}
  141. \textbf{Beh.:} $G$ ist eulersch $\Rightarrow \forall e \in E: $ Grad($e$) $\equiv 0 \mod 2$ \pause \\
  142. \textbf{Bew.:} Eulerkreis geht durch jede Ecke $e \in E$\pause, \\
  143. also geht der Eulerkreis (eventuell mehrfach) in $e$ hinein und hinaus \pause \\
  144. $\Rightarrow$ Grad($e$) $\equiv 0 \mod 2$
  145. \end{frame}
  146. \begin{frame}{Umkehrung des Satzes von Euler}
  147. \begin{block}{Umkehrung des Satzes von Euler}
  148. Wenn in einem zusammenhängenden Graphen $G$ jede Ecke geraden Grad hat, dann
  149. ist $G$ eulersch.
  150. \end{block}
  151. \pause
  152. \underline{Beweis:} Induktion über Anzahl $m$ der Kanten\\
  153. \pause
  154. \underline{I.A.:} $m=0$: $G$ ist eulersch. \cmark\\
  155. \pause
  156. $m=1$: Es gibt keinen Graphen in dem jede Ecke geraden Grad hat. \cmark\\
  157. \pause
  158. $m=2$: Nur ein Graph möglich. Dieser ist eulersch. \cmark\\
  159. \pause
  160. \underline{I.V.:} Sei $m \in \mathbb{N}_0$ beliebig, aber fest und
  161. es gelte: Für
  162. alle zusammenhängenden Graphen $G$ mit höchstens $m$ Kanten, bei
  163. denen jede Ecke geraden Grad hat, ist $G$ eulersch.
  164. \pause
  165. \underline{I.S.:} Sei $G=(E,K)$ mit $2 \leq m = |K|$. $G$ ist zus. \pause
  166. $\Rightarrow$ Jede Ecke von $G$ hat min. Grad 2. \pause
  167. $\xRightarrow[]{A. 5}$ Es gibt einen Kreis $C$ in $G$.\pause
  168. \dots
  169. \end{frame}
  170. \begin{frame}{Umkehrung des Satzes von Euler}
  171. \begin{block}{Umkehrung des Satzes von Euler}
  172. Wenn in einem zusammenhängenden Graphen $G$ jede Ecke geraden Grad hat, dann
  173. ist $G$ eulersch.
  174. \end{block}
  175. \dots
  176. Sei
  177. \[G_C = (E_C, K_C) \]
  178. Graph zu Kreis $C$ und
  179. \[G^* = (E, K \setminus K_C).\] \pause
  180. $\Rightarrow$ Alle Knoten jeder Zusammenhangskomponente in $G^*$ haben geraden Grad\\
  181. \pause
  182. $\xRightarrow[]{I.V.}$ Alle $n$ Zhsgk. haben Eulerkreise $C_1, \dots, C_n$\\
  183. \pause
  184. $\Rightarrow$ $C_1, \dots, C_n$ können in $C$ \enquote{eingehängt} werden\\
  185. \pause
  186. $\Rightarrow G$ ist eulersch\pause $\Rightarrow $ Beh.
  187. \end{frame}
  188. \begin{frame}{Wie findet man Eulerkreise?}
  189. \begin{algorithm}[H]
  190. \begin{algorithmic}
  191. \Require $G = (E, K)$ ein eulerscher Graph.
  192. \\
  193. \State $C \gets$ leerer Kreis
  194. \Repeat
  195. \State $C_\text{tmp} \gets \text{ein beliebiger Kreis}$ \Comment{vgl. Aufgabe 5}
  196. \State $C \gets C $ vereinigt mit $C_\text{tmp}$
  197. \State Entferne Kanten in $C_\text{tmp}$ aus $G$
  198. \State Entferne isolierte Ecken
  199. \Until{$C$ ist Eulerkreis}
  200. \\
  201. \State \textbf{Ergebnis:} Eulerkreis $C$
  202. \end{algorithmic}
  203. \caption{Algorithmus von Hierholzer}
  204. \label{alg:Hierholzer}
  205. \end{algorithm}
  206. \end{frame}
  207. \begin{frame}{Sind Eulerkreise eindeutig?}
  208. \begin{center}
  209. \large Sind Eulerkreise bis auf Rotation und Symmetrie eindeutig?
  210. \end{center}
  211. \end{frame}
  212. \tikzstyle{markedCircle}=[blue,line width=1pt,rotate=90,decorate,decoration={snake, segment length=2mm, amplitude=0.4mm},->]
  213. \tikzstyle{markedCircle2}=[red,line width=1pt,rotate=90,decorate,decoration={snake, segment length=3mm, amplitude=0.4mm},->]
  214. \begin{frame}{Sind Eulerkreise eindeutig?}
  215. \begin{tikzpicture}[scale=1.9]
  216. \node[vertex,label=$a_1$] (a1) at (1,2) {};
  217. \node[vertex,label=$b_1$] (b1) at (3,2) {};
  218. \node[vertex,label=$c_1$] (c1) at (2,1) {};
  219. \node[vertex,label=$b_2$] (b2) at (0,2) {};
  220. \node[vertex,label=$c_2$] (c2) at (1,3) {};
  221. \node[vertex,label=$c_3$] (c3) at (3,3) {};
  222. \node[vertex,label=$a_3$] (a3) at (4,2) {};
  223. \draw (a1) -- (b1) -- (c1) -- (a1) -- cycle;
  224. \draw (a1) -- (b2) -- (c2) -- (a1) -- cycle;
  225. \draw (b1) -- (c3) -- (a3) -- (b1) -- cycle;
  226. \node<2->[vertex, red] (a1) at (1,2) {};
  227. \draw<2->[color=blue, markedCircle,->] (a1.center) -- (b2.center);
  228. \draw<3->[color=blue, markedCircle] (b2.center) -- (c2.center);
  229. \draw<4->[color=blue, markedCircle] (c2.center) -- (a1.center);
  230. \draw<5->[color=blue, markedCircle] (a1.center) -- (b1.center);
  231. \draw<6->[color=blue, markedCircle] (b1.center) -- (c3.center);
  232. \draw<7->[color=blue, markedCircle] (c3.center) -- (a3.center);
  233. \draw<8->[color=blue, markedCircle] (a3.center) -- (b1.center);
  234. \draw<9->[color=blue, markedCircle] (b1.center) -- (c1.center);
  235. \draw<10->[color=blue, markedCircle] (c1.center) -- (a1.center);
  236. \draw<11->[markedCircle2] (a1) -- (b2.center);
  237. \draw<12->[markedCircle2] (b2.center) -- (c2.center);
  238. \draw<13->[markedCircle2] (c2.center) -- (a1.center);
  239. \draw<14->[markedCircle2] (a1.center) -- (b1.center);
  240. \draw<15->[markedCircle2] (b1.center) -- (a3.center);
  241. \draw<16->[markedCircle2] (a3.center) -- (c3.center);
  242. \draw<17->[markedCircle2] (c3.center) -- (b1.center);
  243. \draw<18->[markedCircle2] (b1.center) -- (c1.center);
  244. \draw<19->[markedCircle2] (c1.center) -- (a1.center);
  245. \end{tikzpicture}
  246. \pause
  247. $\Rightarrow$ Eulerkreise sind im Allgemeinen nicht eindeutig
  248. \end{frame}
  249. \begin{frame}{Offene eulersche Linie}
  250. \begin{block}{Offene eulersche Linie}
  251. Sei $G$ ein Graph und $A$ ein Weg, der kein Kreis ist.
  252. $A$ heißt \textbf{offene eulersche Linie} von $G :\Leftrightarrow$ Jede Kante
  253. in $G$ kommt genau ein mal in $A$ vor.
  254. \end{block}
  255. Ein Graph kann genau dann "`in einem Zug"' gezeichnet werden, wenn er eine
  256. offene eulersche Linie besitzt.
  257. \end{frame}
  258. \begin{frame}{Offene eulersche Linie}
  259. \begin{block}{Satz 8.2.3}
  260. Sei $G$ ein zusammenhängender Graph.
  261. $G$ hat eine offene eulersche Linie $:\Leftrightarrow G$ hat genau zwei Ecken
  262. ungeraden Grades.
  263. \end{block}
  264. \pause
  265. \begin{block}{Beweis "`$\Rightarrow"'$}
  266. Sei $G=(E, K)$ ein zusammenhängender Graph und $L = (e_0, \dots, e_s)$ eine offene
  267. eulersche Linie. \pause
  268. Sei $G^* = (E, K \cup \Set{e_s, e_0})$. \pause
  269. Es gibt einen Eulerkreis in $G^*$ \pause \\
  270. $\xLeftrightarrow{\text{Satz von Euler}}$ In $G^*$ hat jede Ecke geraden Grad \pause \\
  271. Der Grad von nur zwei Kanten wurde um jeweils 1 erhöht \pause \\
  272. $\Leftrightarrow$ in $G$ haben genau 2 Ecken ungeraden Grad. Diese heißen $e_0, e_s$. $\blacksquare$
  273. \end{block}
  274. \pause
  275. Rückrichtung analog
  276. \end{frame}
  277. \pgfdeclarelayer{background}
  278. \pgfsetlayers{background,main}
  279. \begin{frame}{Haus des Nikolaus}
  280. \tikzstyle{selected edge} = [draw,line width=5pt,-,red!50]
  281. \begin{center}
  282. \adjustbox{max size={\textwidth}{0.8\textheight}}{
  283. \begin{tikzpicture}
  284. \node[vertex] (a) at (0,0) {};
  285. \node[vertex] (b) at (2,0) {};
  286. \node[vertex] (c) at (2,2) {};
  287. \node[vertex] (d) at (0,2) {};
  288. \node[vertex] (e) at (1,4) {};
  289. \draw (a) -- (d);
  290. \draw (d) -- (b);
  291. \draw (b) -- (c);
  292. \draw (c) -- (d);
  293. \draw (d) -- (e);
  294. \draw (e) -- (c);
  295. \draw (c) -- (a);
  296. \draw (a) -- (b);
  297. \node<2->[vertex, red] (a) at (0,0) {};
  298. \begin{pgfonlayer}{background}
  299. \path<2->[selected edge] (a.center) edge node {} (d.center);
  300. \path<3->[selected edge] (d.center) edge node {} (b.center);
  301. \path<4->[selected edge] (b.center) edge node {} (c.center);
  302. \path<5->[selected edge] (c.center) edge node {} (d.center);
  303. \path<6->[selected edge] (d.center) edge node {} (e.center);
  304. \path<7->[selected edge] (e.center) edge node {} (c.center);
  305. \path<8->[selected edge] (c.center) edge node {} (a.center);
  306. \path<9->[selected edge] (a.center) edge node {} (b.center);
  307. \end{pgfonlayer}
  308. \end{tikzpicture}
  309. }
  310. \end{center}
  311. \end{frame}