2 Eulertouren und Eulersche Graphen

advertisement
Westfählische Wilhelms-Universität
Eulersche Graphen
Autor:
Jan-Hendrik Hoffeld
21. Mai 2015
Inhaltsverzeichnis
1 Das Königsberger Brückenproblem
1
2 Eulertouren und Eulersche Graphen
2
3 Auffinden eines eulerschen Zyklus
4
I
Eulersche Graphen
Jan-Hendrik Hoffeld
1 Das Königsberger Brückenproblem
Abbildung 1: Die Brücken Königsbergs
Im 18. Jahrhundert kam kaum ein Mathematiker, der sich in Königsberg wiederfand,
darum herum sich zu fragen, ob es ihm gelänge, einen Weg durch die Stadt zu finden,
sodass er jede Brücke genau einmal überquerte und dort endete, wo er gestartet war.
1736 nahm sich der schweizer Mathematiker Leonhard Euler, der zu der Zeit Professor
der Mathematik in St. Petersburg war, des Problems an. Euler gelang es zu beweisen,
dass ein solcher Rundweg nicht existiert.
1.1 Euler und das Königsberger Brückenproblem
Bei der Suche nach einem Rundweg durch Königsberg, bei dem jede der sieben Brücken
genau einmal überquert werden muss, schrieb Euler, dass eine Möglichkeit der Problemlösung sei, alle nur möglichen Wege durch Königsberg zu betrachten und zu überprüfen,
ob einer den Ansprüchen genügt. Dieses Vorgehen sei jedoch zu aufwändig und nicht auf
allgemeine Problemstellungen mit mehr Brücken anwendbar. Stattdessen wolle er erst eine
Methode entwickeln, die ihm verrät, ob ein solcher Rundweg existiert.1 Um zu überprüfen,
ob ein solcher Rundweg existiert, vereinfachte Euler zuerst die Darstellung der Lage
der Brücken von Königsberg wie in Abb. 2 zu sehen. Mithilfe einer Buchstabensequenz,
bestehend aus A,B,C und D ließ sich nun einfach ein Weg durch Königsberg beschreiben.
1
Norman L. Biggs, E. Keith Lloyd und Robin J. Wilson. Graph Theory 1736-1936. Oxford University
Press, 1976.
1
Eulersche Graphen
Jan-Hendrik Hoffeld
Abbildung 2: Anordnung der Brücken von Königsberg
Zum Beispiel beschrieb die Sequenz ADCABAC den Weg, der bei A startete, dann über
eine Brücke zu D, dann zurück zu A usw. führte. Dieser Weg überquert sechs der sieben
Brücken, die mit den Buchstabenpaaren AD, DC, CA, AB, BA und AC identifiziert
werden können.
Durch diese Schreibweise vereinfachte sich das Problem dahingehend, dass nur noch eine
Sequenz von acht Buchstaben (da es sieben Brücken sind) gesucht werden musste, in
denen die einzelnen Buchstaben entsprechend oft auftauchen. Bevor Euler jedoch eine
solche Sequenz suchte, wollte er überprüfen, ob eine solche Sequenz zu finden sei.2
Euler argumentierte, dass D in der Sequenz genau zwei mal auftauchen müsse, da D mit
drei Brücken verbunden ist. Würde D nur einmal in der Sequenz stehen, würden maximal
zwei der drei Brücken überquert. Würde D dreimal in der Sequenz erscheinen, müsste
D mit mindestens vier Brücken verbunden sein. Analog müssen auch C und B zweimal
auftauchen und A dreimal. Insgesamt braucht die Sequenz daher neun Buchstaben. Dies
ist allerdings nicht möglich, da nur sieben Brücken zur Verfügung stehen. Damit ist
gezeigt, dass kein solcher Rundweg existiert.
Durch diesen Überlegungen begründete Euler die Graphentheorie, auch wenn er noch
keine Begriffe wie Knoten, Kanten oder Graphen verwendete.
2 Eulertouren und Eulersche Graphen
Definition 1. Ein Weg W innerhalb eines zusammenhängenden Graphens G heißt
Eulertour, wenn jede Kante von G in W liegt.
Definition 2. Ein zusammenhängender Graph G heißt eulersch, wenn er eine geschlossene Eulertour enthält. Eine geschlossene Eulertour nennen wir Eulerschen Zyklus.
2
Biggs, Lloyd und Wilson, s. Anm. 1.
2
Eulersche Graphen
Jan-Hendrik Hoffeld
Satz 1. Für einen zusammenhängenden Graph G sind folgende Aussagen äquivalent:
1. G ist eulersch.
2. Jeder Knoten von G hat einen geraden Grad.
3. Die Kanten von G lassen sich disjunkt in Kreise zerlegen.
Beweis. Der Satz wird mittels Kreisschluss bewiesen.
1.→ 2.
Angenommen G enthält einen Eulerschen Zyklus C. Sei v ein beliebiger Knoten von G.
Jedes Mal wenn C durch v läuft, muss C zwei Kanten durchlaufen, die inzident zu v sind.
Wenn jede Kante, die inzident zu v ist, genau einmal von C durchlaufen werden muss,
muss v einen geraden Grad haben.
2. → 3.
Angenommen, jeder Knoten von G hat einen geraden Grad. Wir zeigen die Implikation
durch Induktion über die Anzahl der Kreise in G. Da G zusammenhängend ist und keine
Knoten vom Grad 1 hat, ist G kein Baum und besitzt somit mindestens einen Kreis. Hat
G genau einen Kreis, so ist G ein Kreisgraph Cn für ein n und die Zerlegung besteht
allein aus diesem Kreis. Angenommen, die Implikation gelte nun für Graphen, die nicht
mehr als k Kreise beinhalten und G bestehe aus k + 1 Kreisen. Sei C ein beliebiger
Kreis in G und sei G0 der Graph, der aus G hervorgeht, wenn die Kanten von C gelöscht
werden. Durch das Löschen der Kanten von C verringert sich der Grad aller Knoten
von C um 2. Daher hat jeder Knoten von G0 einen geraden Grad. Weiterhin hat jede
zusammenhängende Komponente von G0 nicht mehr als k Kreise. Jede Komponente von
G0 erfüllt nun die Induktionsannahme. Also lassen sich die Kanten von G0 disjunkt in
Kreise zerlegen. Zusammen mit C liefert das die Zerlegung für G.
3. → 1.
Angenommen, die Kanten von G lassen sich disjunkt in Kreise zerlegen. Wir nennen
diese Kreise S1 , S2 , ..., Sk . Sei C der längste Zyklus in G, sodass die Menge der Kanten
von C gerade
E(C) = E(Sj1 ) ∪ E(Sj2 ) ∪ ... ∪ E(Sjm )
für einige Sj1 , Sj2 , ..., Sjm ist. Sei nun e eine Kante, die nicht in C liegt, aber inzident
mit einem Knoten v von C ist, dann müssen e und v in einem Kreis Si für ein i liegen,
der keine gemeinsame Kante mit C hat. Sei nun C 0 der Zyklus, der entsteht, wenn man
C und Si in v verknüpft. Da C 0 aus den Kanten von C und von Si besteht, ist das ein
Widerspruch dazu, dass C maximal ist. Daher enthält C bereits alle Kanten von G und
ist somit ein Eulerscher Zyklus. Somit ist G eulersch.
Korollar 1. Ein zusammenhängender Graph G enthält genau dann eine Eulertour, wenn
keiner oder genau zwei seiner Knote einen ungeraden Grad haben.
3
Eulersche Graphen
Jan-Hendrik Hoffeld
Beweis. Haben alle Knoten von G einen geraden Grad, ist G ein eulerscher Graph und
die Aussage folgt trivialer Weise aus Satz 1.
Angenommen, genau zwei Knoten v1 und v2 von G haben einen ungeraden Grad. Sei G0
der Graph, der aus G hervorgeht, indem eine Kante e hinzugefügt wird, die v1 und v2
verbindet. Dann hat jeder Knoten von G0 einen geraden Grad und ist somit ein Eulerscher
Graph. G0 enthält daher eine geschlossene Eulertour C. Der Weg, der entsteht wenn die
Kante e aus C entfernt wird, ist dann eine Eulertour in G.
3 Auffinden eines eulerschen Zyklus
Jetzt, da wir wissen, ob ein Graph G eulersch ist, gilt es einen Eulerschen Zyklus in G zu
finden. Der Algorithmus von Hierholzer bietet einen einfachen Weg solch einen Zyklus
ausfindig zu machen.
3.1 Algorithmus von Hierholzer
Gegeben sei ein Eulerscher Graph G.
1. Finde einen Zyklus in G und nenne ihn R1 . Markiere seine Kanten. Sei i=1.
2. Falls Ri alle Kanten von G enthält, ist Ri schon ein eulerscher Zyklus.
3. Enthält Ri nicht alle Kanten von G, sei vi ein Knoten in Ri , der inzident mit einer
nicht markierten Kante ei ist.
4. Finde einen Zyklus Qi , der nur aus nicht markierten Kanten besteht, sowie vi und
ei enthält. Markiere die Kanten von Qi .
5. Erstelle einen neuen Zyklus Ri+1 , indem Ri und Qi in vi verknüpft werden.
6. Erhöhe i um 1 und fahre fort mit Schritt 2.
Dass der Algorithmus von Hierholzer zu einem Eulerschen Zyklus führt, folgt direkt aus
der Bedingung 3 von Satz 1.
Definition 3. Sei G ein Graph und e ∈ E(G). Falls durch das Entfernen von e die
Anzahl der Komponenten von G erhöht wird, so nennen wir e eine Brücke von G.
3.2 Algorithmus von Fleury
Sei G ein zusammenhängender Eulerscher Graph, in dem alle Kanten unmarkiert sind.
1. Wähle einen Knoten und nenne ihn ”Hauptknoten”
4
Eulersche Graphen
Jan-Hendrik Hoffeld
Abbildung 3: Die Schritte des Algorithmus von Hierholz
2. Falls alle Kanten von G markiert sind, sind wir fertig. Andernfalls fahre fort mit
Schritt 3.
3. Wähle von den unmarkierten Kanten, die inzident zum ”Hauptknoten” sind, wenn
möglich eine, die keine Brücke des Untergraphens von G, der von den unmarkierten
Kanten gebildet wird, ist. Ist das nicht möglich, wähle eine beliebige inzidente
Kante des ”Hauptknotens”. Markiere die Kante und nenne den anderen inzidenten
Knoten den neuen ”Hauptknoten”.
4. Fahre fort mit Schritt 2.
Beweis. Um zu zeigen, dass der Algorithmus von Fleury tatsächlich einen Eulerschen
Zyklus ausgibt, muss gefragt werden, wo der Algorithmus stecken bleiben könnte. Da
jeder Knoten von G einen geraden Grad hat, können wir uns aus jedem Knoten wieder
herausbewegen, es sei denn, es handelt sich um den Startknoten v. Angenommen der
Algorithmus bleibt in v stecken. Die nicht markierten Kanten bilden zusammenhängende Komponenten, die alle eulersch sind, da alle Knoten einen geraden Grad besitzen.
Angenommen, das letzte Mal, dass der Algorithmus den Knoten w, der Teil einer zusammenhängenden Komponente ist, durchlaufen hat, wurde w durch die Kante wv1 verlassen.
Sei der Rest des Weges v1 v2 ...vk = v. Die Kante wv1 ist also eine Brücke in Feury’s
5
Eulersche Graphen
Jan-Hendrik Hoffeld
Algorithmus. Der Knoten w ist allerdings inzident zu mindestens zwei Kanten, die keine
Brücken sind. Daher hätte der Algorithmus die Kante wv1 erst gar nicht ausgewählt.
Im Gegensatz zum Algorithmus von Hierholzer lässt sich mit dem Algorithmus von Fleury
auch eine Eulertour in solchen Graphen finden, die genau zwei Knoten mit ungeradem
Grad haben. Hierzu wählt man einen dieser beiden Knoten als den ersten ”Hauptknoten”
und verfährt wie oben.
6
Eulersche Graphen
Literatur
Jan-Hendrik Hoffeld
Literatur
Biggs, Norman L., E. Keith Lloyd und Robin J. Wilson. Graph Theory 1736-1936. Oxford
University Press, 1976.
Bollobás, Béla. Graph Theory - an introductory course. Bd. 63. Graduated Texts in
Mathematics. Springer, 1979.
Diestel, Reinhard. Graph Theory. 3. Edition. Bd. 173. Graduated Texts in Mathematics.
Springer, 2005.
Harris, John M., Jeffry L. Hirst und Michael J. Mossinghoff. Combinatorics and graph
theory. 2. Edition. Undergraduate Texts in Mathematics. Springer, 2008.
7
Herunterladen