Matheschülerzirkel Universität Augsburg Schuljahr 2014/2015 Zweiter Zirkelbrief: Graphentheorie Inhaltsverzeichnis 1 Grundbegriffe 1 2 Eulerkreise 4 3 Hamiltonkreise 7 4 Planare Graphen 9 5 Färbbarkeit von Graphen 12 6 Kürzeste Wege 16 7 Aufgaben 19 In diesem Brief geht es um Graphen – kombinatorische Objekte, die ganz oft auftauchen und deren Analyse und Verständnis viele Probleme der realen Welt lösen lässt. Wir wollen hier anhand von einigen Grundbegriffen und ersten Themen mitsamt Aufgaben diese kennenlernen und etwas besser verstehen. 1 Grundbegriffe Definition. Ein Graph besteht aus Knoten oder Ecken und Kanten, welche jeweils zwei Knoten miteinander verbinden, wie zum Beispiel in den folgenden Bildern zu sehen. Bemerkung. Bitte beachtet, dass sich in den letzten beiden Graphen einige Kanten nicht schneiden und demnach dort auch kein Knoten ist. Knoten müssen immer extra gekennzeichnet sein. Eine Kante muss immer an Knoten enden, wobei dies auch der gleiche Knoten sein darf. Bevor wir uns einige Begriffe im Zusammenhang mit Knoten anschauen, wollen wir einige praktische Anwendungen oder Beispiele aus dem realen Leben sehen, wo Knoten auftauchen. Beispiele. (i) Routenplanung. Wenn man eine Landkarte hernimmt und mögliche Zielorte (zum Beispiel Städte beim Autofahren) mit Knoten markiert, können die Kanten die möglichen Verbindungen angeben. Dabei ist zum Beispiel einem Navigationssystem vollkommen egal, wo die Straße genau langgeht. Es ist nur wichtig, dass die Verbindung existiert und was für Eigenschaften diese hat. Letzteres können zum Beispiel Fahrtzeiten, Entfernungen oder Richtungen (Einbahnstraßen!) sein. Graphen beschreiben diese Situation. (ii) Das Haus vom Nikolaus. Kann man in dem dritten Beispiel oben alle Kanten genau einmal durchlaufen ohne den Stift abzusetzen? Wie sieht es aus mit einem beliebigen anderen Graphen? (iii) Facebook. Jeder Nutzer der Seite stellt einen Knoten in einem Graphen dar. Kanten zwischen zwei Nutzern zeigen an, dass diese befreundet sind. Nun kann man den entstehenden (riesigen!) Graphen analysieren um zum Beispiel herauszufinden ob es sogenannte Cluster gibt, also Häufungen von Freunden, welche einen mehr oder weniger abgeschlossenen Freundeskreis innerhalb von Facebook haben. (iv) Mindmaps. Hat man viele zusammenhängende Themen gegeben, organisiert man manchmal diese in einem Graphen. Dabei geben Kanten an, dass zwischen zwei Themen eine Verbindung exisitiert. Auf diese Art und Weise kann man manchmal komplizierte Gebiete übersichtlich darstellen. (v) Telefonkette. Angenommen eure Lehrer wollen für kurzfristige Ansagen ein System einführen, dass sich die Schülerinnen und Schüler in euerer Klasse gegenseitig anrufen, anstatt dass sie oder er alle Jugendlichen direkt anruft (was sehr lange dauert). Eine solche Telefonkette kann man durch einen Graphen beschreiben. Es könnte einfach eine Kette sein (jeder (bis auf eine Person) ruft genau eine weitere Person an) oder, damit es schneller geht, jeder ruft zwei Personen an. In der folgenden Tabelle sind ein paar Begriffe rund um Knoten zusammengefasst. Die meisten Wörter sind recht intuitiv und kommen von der Vorstellung. Begriff Erklärung Beispiel Knoten oder Ecke Ein Eckpunkt“ im Graphen. ” Kante Eine Verbindung“ im Graphen. ” 2 Grad (einer Ecke) Die Anzahl der Kanten, die eine Ecke berühren. 2 4 4 3 3 Weg Eine Folge von sich berührenden Kanten im Graphen. Kreis Ein geschlossener Weg in einem Graphen. Baum Ein Graph, der keinen Kreis enthält. Parallele Kanten Zwei Kanten heißen parallel, wenn sie die gleichen Ecken miteinander verbinden. Einfacher Graph Ein Graph ohne parallele Kanten. Zusammenhangskomponente Eine Zusammenhangskomponente ist ein größtmöglicher Teil eines Graphen, in welchem alle Ecken durch Kanten miteinander verbunden werden können. Zusammenhängender Graph Ein ungerichteter Graph, der nur eine Zusammenhangskomponente hat. Bipartiter Graph Ein Graph, dessen Ecken in zwei Mengen aufgeteilt werden können, sodass keine zwei Ecken der gleichen Menge durch eine Kante verbunden sind. Eulerweg Ein Weg in einem Graphen, der jede Kante genau einmal durchläuft. Hamiltonweg Ein Weg in einem Graphen, der jede Ecke genau einmal durchläuft. 3 Gerichteter Graph Ein Graph, dessen Kanten mit einem Pfeil (also einer Richtung) versehen sind. Wege dürfen dann entsprechend nur noch in Richtung dieser Pfeile durchlaufen werden. Gefärbter Graph Ein Graph, dessen Knoten (knotengefärbt) oder dessen Kanten (kantengefärbt) eine Farbe tragen. Diese sollte eine Farbe aus einer vorher festgelegten (endlichen) Menge von Farben sein. 2.3 Gewichteter Graph Ein Graph, dessen Ecken oder dessen Kanten ein Gewicht tragen, z.B. eine reele Zahl an Kanten für eine Länge oder eine natürliche Zahl an Knoten für einen Preis. Planarer Graph Ein Graph, der in die Ebene gezeichnet werden kann, ohne dass sich zwei Kanten schneiden. Dualer Graph Der duale Graph eines planaren Graphen ist der Graph, der entsteht, wenn man für jede Fläche einen Knoten malt und für alle Flächen, die sich entlang einer Kante berühren die zwei entstehenden Knoten mit einer Kante verbindet. Wurzel Eine Ecke in einem gerichteten Graphen heißt Wurzel, falls von dieser Ecke zu jeder beliebigen anderen Ecke des Graphen ein gerichteter Weg existiert. Blatt Eine Ecke eines Graphen mit Grad 1. Vollständiger Graph Ein Graph Kn , in dem alle n Ecken jeweils durch genau eine Kante verbunden sind. Brücke Eine Kante in einem Graphen, sodass der Graph nach Entfernung dieser Kante mehr Zusammenhangskomponenten hat. 4 2.3 K4 -1 1.1 0.4 2 -0.7 2 Eulerkreise Aufgabe 1. Königsberger Brückenproblem Dieses Problem ist schon sehr alt. Der berühmte Schweizer Mathematiker Euler möchte einen Spaziergang in der Stadt Königsberg (heute Kaliningrad) machen. Er möchte den Spaziergang dabei so einrichten, dass er jede der sieben Brücken genau einmal überschreitet und zum Ausgangspunkt zurückkehrt. Findest du einen Weg? Definition. Ein Weg in einem Graphen G heißt Eulerweg, wenn er jede Kante in G genau einmal durchläuft. Ist der Weg geschlossen, nennt man ihn Eulerweg. Besitzt G einen Eulerkreis, nennt man G Eulersch. Aufgabe 2. Eulerkreise und -wege Beschrifte alle Ecken der Graphen mit ihrem Grad. In welchen Graphen gibt es Eulerkreise oder Eulerwege? Siehst du einen Zusammenhang zwischen den Graden eines Graphen und ob dieser Eulersch ist? 5 Den Zusammenhang in der letzten Aufgabe kennt man unter dem Namen Satz von Euler. Satz (Euler). a) Ein (ungerichteter) Graph G hat einen Eulerkreis genau dann, wenn alle Knoten geraden Grad haben. b) Ein (ungerichteter) Graph G hat einen Eulerweg, der kein Kreis ist, genau dann, wenn genau zwei Knoten ungeraden Grad haben. Diese Knoten sind dann Start- und Endknoten jedes Eulerwegs. Aufgabe 3. Beweis des Satzes von Euler Überlege dir einen Beweis des Satz von Euler für ungerichtete Graphen. Beachte dabei, dass es sich um eine genau, dann wenn“-Aussage handelt, das heißt, du musst zum ” Beispiel bei a) zwei Aussagen zeigen: 1. Wenn ein Graph G einen Eulerkreis hat, dann haben alle Knoten geraden Grad. 2. Wenn in einem beliebigen Graphen G alle Knoten geraden Grad haben, dann gibt es einen Eulerkreis. Wenn ein Graph gerichtet ist, also jede Kante einen Pfeil besitzt und nur in diese Richtung durchlaufen werden darf, kann man die Frage nach einem Eulerkreis oder -weg auch stellen. Schau dir doch mal die nächste Aufgabe an. Aufgabe 4. Eulerkreise und -wege in gerichteten Graphen Beschrifte alle Ecken der Graphen mit der Anzahl der ausgehenden sowie eingehenden Kanten. In welchen Graphen gibt es Eulerkreise oder Eulerwege? Siehst du einen Zusammenhang zwischen den Graden eines Graphen und ob dieser eulersch ist? 6 Den Zusammenhang in der letzten Aufgabe kennt man auch als Satz von Euler. Satz (Euler). a) Ein gerichteter zusammenhängender Graph G hat einen Eulerkreis genau dann, wenn alle Knoten jeweils dieselbe Anzahl an eingehenden sowie ausgehenden Kanten haben. b) Ein gerichteter zusammenhängender Graph G hat einen Eulerweg, der kein Kreis ist, genau dann, wenn die beiden folgenden Bedingungen erfüllt sind: (i) Es existieren zwei Knoten s und t, sodass g + (s) = g − (s)+1 und g + (t) = g − (t)−1 ist, wobei g + die Anzahl der ausgehenden Kanten eines Knoten bezeichnet und g − die Anzahl der eingehenden. (ii) Alle Knoten außer s und t haben gleich viele eingehende und ausgehende Kanten. Aufgabe 5. Beweis des Satzes von Euler Überlege dir einen Beweis des Satz von Euler für gerichtete Graphen. Beachte dabei, dass es sich um eine genau, dann wenn“-Aussage handelt, das heißt, du musst zum Beispiel ” bei a) zwei Aussagen zeigen: 1. Wenn ein gerichteter Graph G einen Eulerkreis hat, dann haben alle Knoten jeweils dieselbe Anzahl an eingehenden sowie ausgehenden Kanten. 2. Wenn in einem beliebigen gerichteten Graphen G alle Knoten jeweils dieselbe Anzahl an eingehenden sowie ausgehenden Kanten haben, dann gibt es einen Eulerkreis. 3 Hamiltonkreise Zur Erinnerung hier noch einmal die Definition von Hamiltonwegen: Definition. Ein Weg in einem Graphen G heißt Hamiltonweg, wenn er jede Ecke in G genau einmal durchläuft. Ist der Weg geschlossen, nennt man ihn Hamiltonweg. Besitzt G einen Hamiltonkreis, nennt man G Hamiltonsch. Man kann hoffen, dass es einen Zusammenhang zwischen Euler- und Hamiltonkreisen gibt und vielleicht ähnliche Ideen weiterhelfen. Schau dir dazu die nächste Aufgabe an. Aufgabe 6. Hamilton- und Eulerkreise Bestimme für jeden der folgenden Graphen, ob dieser Hamiltonsch oder Eulersch ist. Bedenke, dass man für diese Eigenschaften einen Kreis der entsprechenden Objekte benötigt. 7 Aufgabe 7. Erste Eigenschaften von Hamiltonschen Graphen Überlege dir, warum die beiden folgenden Aussagen stimmen: 1. Ist G ein ungerichteter hamiltonscher Graph, so enthält G keinen Knoten vom Grad 1. 2. Ein ungerichteter Hamiltonscher Graph ist zusammenhängend. Der folgende Graph zeigt, dass diese beiden Eigenschaften jedoch nicht ausreichen. Es stellt sich heraus, dass die Analyse von Hamiltonschen Graphen erheblich schwieriger ist als die von Eulerschen. Hier sind aber noch ein paar Aufgaben. Aufgabe 8. Zwei ähnliche Graphen Finde zwei ungerichtete, einfache und zusammenhängende Graphen mit gleicher Knotenzahl und gleichen Knotengraden, von denen einer Hamiltonsch ist und der andere nicht. Aufgabe 9. Springerzüge Kann man auf einem 4 × 4–Schachbrett, wie im folgenden zu sehen, einen Springer so ziehen, dass er auf jedes Feld genau einmal gesetzt wird und am Ende wieder da ankommt, wo er gestartet ist? 8 4 Planare Graphen Bevor wir über eine Beschreibung von planaren Graphen reden, ist hier zunächst noch einmal deren Definition: Definition. Ein planarer Graph ist ein Graph, welcher so in die Ebene gezeichnet werden kann, dass sich keine Kanten schneiden. Die erste Frage ist vermutlich, ob es überhaupt nicht-planare Graphen gibt, denn schließlich zeichnen wir ja alle auf ein Blatt Papier. Aufgabe 10. Planare Graphen Sind die folgenden Graphen planar? Satz (Eulerscher Polyedersatz für Graphen). Sei G ein planarer Graph mit e Ecken, k Kanten, f Flächen und z Zusammenhangskomponenten. Dann gilt e − k + f = z + 1. (1) Bemerkung. Hier wird die äußere“ Fläche mitgezählt. ” Beweisskizze. Dieser Satz wird mittels vollständiger Induktion bewiesen. Dazu beweisen wir, dass wenn die Formel für alle kleineren Graphen gilt, sie auch für den nächstgrößeren“ ” gilt. Außerdem beweisen wir, dass sie für ganz kleine Graphen gilt woraus folgt, dass sie für alle Graphen stimmt. Dies liegt daran, dass wir jeden Graphen aus einem kleineren durch gewissen Schritte aufbauen“ können. Konkret bedeutet dies, dass wir schrittweise ” Kanten hinzufügen. 9 Angenommen, der Graph hat keine Kanten, also k = 0. Dann gibt es e Ecken, z = e Zusammenhangskomponenten und nur eine Fläche. Die Formel (1) besagt dann e − 0 + 1 = e + 1, was offensichtlicherweise stimmt. Die Formel gilt also für alle Graphen mit null Ecken. Jetzt nehmen wir an, dass wir die Gleichung für alle Anzahlen von Kanten kleiner als k bereits bewiesen hätten. Betrachte einen Graphen G mit k Kanten, e Ecken, f Flächen und z Zusammenhangskomponenten. Jetzt gibt es drei Fälle: (i) Alle z Zusammenhangskomponenten sind Bäume. In einem Baum muss es ein Blatt geben, weil man einfach einem Weg folgen kann und dann zu einem Blatt kommt, da es nur endlich viele Ecken gibt und kein Kreis existiert. Entfernt man diese Ecke mitsamt zugehöriger Kante erhält man einen Graphen mit k − 1 Kanten sowie e − 1 Ecken. Die Anzahl der Flächen bleibt gleich. Wir nehmen aber an, dass wir die Behauptung für alle Kantenzahlen kleiner als k schon bewiesen haben, das heißt, es gilt e − 1 − (k − 1) + f = z + 1, was umgeformt e − k + f = z + 1 bedeutet. Fall (i) Fall (ii) Fall (iii) (ii) Gibt es eine Zusammenhangskomponente von G, die kein Baum ist, gibt es darin einen Kreis. Wenn es nun g eine Kante auf diesem Kreis gibt, sodass g an zwei verschiedene Flächen grenzt, gehen wir wie folgt vor. Betrachte den Graphen G0 , der aus G entsteht, wenn man die Kante g entfernt. Dieser hat immer noch e Ecken, z Zusammenhangskomponenten, aber k − 1 Kanten sowie f − 1 Flächen. Da G0 weniger als k Kanten hat, können wir annehmen, dass e − (k − 1) + (f − 1) = z + 1 gilt. Dies ist aber äquivalent dazu, dass e − k + f = z + 1 gilt, was wir beweisen wollten. (iii) Wenn eine Zusammenhangskomponente von G existiert, die kein Baum ist und wir eine Kante in einem Kreis betrachten, welche nur an eine Fläche grenzt, dann muss diese Fläche den Graphen in zwei Zusammenhangskomponenten teilen wie im folgenden Bild. Entfernen wir die Kante, hat der Graph k − 1 Kanten sowie z + 1 Zusammenhangskomponenten und immer noch f Flächen. Dann gilt nach Annahme e − (k − 1) + f = (z + 1) + 1, was äquivalent ist zu e − k + f = z + 1. Wir sehen also, dass in allen Fällen die Gleichung (1) gilt und wegen dem Prinzip der vollständigen Induktion folgern wir, dass der Eulersche Polyedersatz für alle Graphen gilt. 10 Aufgabe 11. Parameter von planaren Graphen Gibt es Zahlen e, k, f und z, die der Eulerschen Polyederformel genügen, aber zu denen es keinen einfachen planaren Graphen gibt? Hier wollen wir noch zwei Aussagen über planare Graphen herleiten, die wir später für die Färbbarkeit benötigen. Satz. Sei G ein planarer einfacher zusammenhängender Graph mit mindestens 3 Ecken. Dann gelten k ≤ 3e − 6 (2) und f ≤ 2e − 4. (3) Beweis. 1. Wir zählen Seiten von Kanten1 mittels der Flächen, zu denen diese Seiten gehören. Jede (innere) Fläche wird von einem Kreis berandet, der aus mindestens drei Kanten besteht (weil der Graph einfach ist). Das heißt es gilt 3f ≤ K, was auch für die äußere Fläche stimmt. Da jede Kante zwei Flächen berührt, gibt es genau K = 2k Kantenseiten. Also gilt 3f ≤ 2k. Nun können wir mit dem Eulerschen Polyedersatz berechnen 3f = 3(2 − e + k) ≤ 2k 6 − 3e + 3k ≤ 2k k ≤ 3e − 6. 2. Mit der gleichen Zählung und dem Eulerschen Polyedersatz können wir abschätzen 2k = 2(e + f − 2) ≥ 3f 2e + 2f − 4 ≥ 3f f ≤ 2e − 4. Daraus folgern wir nun Satz. Jeder ungerichtete einfache planare zusammenhängende Graph mit mindestens drei Ecken hat mindestens drei Ecken vom Grad kleiner als Sechs. Beweis. Zunächst einmal muss jede Ecke mindestens Grad 1 haben, denn sonst wäre der Graph nicht zusammenhängend. Dann argumentieren wir indirekt. Angenommen, 1 Eine Seite einer Kante soll wirklich eine Seite“ einer Kante sein. Das heißt, dass eine Kante zwei ” Seiten hat, welche zu jeweils einer Fläche (möglicherweise der gleichen) gehören. Die Anzahl der Seiten nennen wir K. 11 es gäbe nur zwei Ecken v mit g(v) < 6. Dann könnten wir rechnen (wobei v1 , . . . , ve die Ecken bezeichnen) 2k = g(v1 ) + · · · + g(ve ) ≥ (e − 2) · 6 + 2 = 6e − 10 k ≥ 3e − 5, im letzten Satz haben wir aber gesehen, dass k ≤ 3e − 6 < 3e − 5 ist, was einen Widerspruch darstellt. Das heißt, die Annahme muss falsch sein, also muss es mehr als zwei Ecken mit Grad kleiner als Sechs geben. 5 Färbbarkeit von Graphen Am Anfang hatten wir eine Färbung eines Graphen definiert als eine Zuordnung von Farben zu jedem Knoten (Knotenfärbung) oder jeder Kante (Kantenfärbung) oder jeder Fläche im Falle eines planaren Graphen (Flächenfärbung). Jetzt wollen wir uns mit Färbbarkeit beschäftigen. Definition. Ein Graph G heißt n-färbbar, wenn seine Ecken mit n Farben so eingefärbt werden können, dass alle benachbarten Ecken (d.h. mittels einer Kante verbundenen Ecken) unterschiedliche Farben besitzen. Die chromatische Zahl von G ist die kleinste natürliche Zahl n, so dass G n-färbbar ist und wird mit χ(G) bezeichnet. Die erste Aufgabe ist zum Warmwerden und sich überzeugen, dass jeder Graph überhaupt eine chromatische Zahl besitzt. Aufgabe 12. Höchste chromatische Zahlen Sei G ein Graph mit e Ecken und k Kanten. Finde eine Zahl n in Abhängigkeit von G, sodass G auf jeden Fall n-färbbar ist. Schlussfolgere daraus, dass χ(G) ≤ n gilt. Aufgabe 13. Färbbarkeiten Bestimme die chromatischen Zahlen der Graphen aus der folgenden Abbildung. 12 Eine Landkarte ist ein planarer Graph, bei dem die Grenzen zwischen den Ländern die Kanten darstellen, sich berührende Grenzen die Ecken und die Flächen stellen die Länder dar. Eine solche Landkarte nennt man färbbar, wenn die Flächen so Farben zugeordnet bekommen können, dass aneinander grenzende Länder unterschiedliche Farben haben. Sonst wäre die Färbung im Atlas ja ziemlich nutzlos. Aufgabe 14. Landkarten Die nachfolgende politische Landkarte von Südamerika ist mit fünf verschiedenen Farben gefärbt, so dass benachbarte Länder verschiedene Farben haben. Kann man sie auch mit nur vier verschiedenen Farben färben? Aufgabe 15. Landkarten- und Knotenfärbungen Kann man die Färbung einer Landkarte als Knotenfärbung eines Graphen verstehen? Wie hängt der Graph mit der Landkarte beziehungsweise deren Graphen zusammen? Aufgabe 16. Färbbarkeit von Landkarten – Exklaven 13 Die nachfolgende fiktive Landkarte enthält ein Land, welches nicht zusammenhängend ist. Will man diese Landkarte korrekt färben, müssen natürlich die beiden Teile des Landes dieselbe Farbe haben. Ist es diesmal möglich die Karte mit nur vier Farben korrekt zu färben? Aufgabe 17. Färbbarkeit von Karten – Torus-Welt Jetzt wollen wir nicht flache Landkarten färben, sondern Karten, die auf einen sogenannten Torus aufgemalt sind. Um uns diese Karten besser vorstellen zu können, malen wir sie in ein Quadrat auf einem Stück Papier. Hierbei müssen wir dann aber die gegenüberliegenden Seiten des Quadrates miteinander identifizieren. Dies ist im folgenden Bild veranschaulicht: Versuche nun eine Karte auf einem Torus zu erfinden, die nur aus zusammenhängenden Ländern besteht, jedoch mindestens fünf verschiedene Farben benötigt, um korrekt gefärbt zu werden. 14 Auf den nachfolgenden Bildern sieht man sogar eine Karte auf einem Torus, die mit sieben Farben gefärbt werden muss. Zum Abschluss nach diesen vielen Beispielen wollen wir noch ein wenig Theorie zu Knotenfärbungen anschauen. Es gibt sogenannte n-Farbensätze, die besagen, dass Graphen mit bestimmten Eigenschaften sich immer durch n Farben färben lassen. Satz (Der 6-Farbensatz). Ein ungerichteter, einfacher und planarer Graph G ist immer 6-färbbar. Also gilt χ(G) ≤ 6. 15 Beweis. Wegen Satz 4 gibt es in G mindestens einen Knoten mit Grad kleiner gleich 5. Wir entfernen diesen Knoten mitsamt allen ihn berührenden Kanten und erhalten einen neuen planaren Graphen. Wir wenden wieder Satz 4 an und entfernen wieder einen Knoten vom Grad kleiner gleich 5 mitsamt allen Kanten. Dies machen wir solange bis wir einen planaren Graphen mit höchstens sechs Ecken haben. Dieser ist mit sechs Farben färbbar. Nun fügen wir die letzte entfernte Ecke mitsamt den Kanten wieder hinzu. Da diese nur 5 Nachbarn hat, bleibt auf jeden Fall eine Farbe zum Färben übrig. Dies machen wir solange bis wir unseren Ausgangsgraphen G wieder zurückhaben. Satz (Der 5-Farbensatz). Ein ungerichteter, einfacher und planarer Graph G ist immer 5-färbbar. Also gilt χ(G) ≤ 5. Beweis. Noch hinzuzufügen. Satz (Der 4-Farbensatz). Ein ungerichteter, einfacher und planarer Graph G ist immer 4-färbbar. Also gilt χ(G) ≤ 4. Der Beweis dieser Aussage ist sehr kompliziert und aufwendig. Er wurde erst 1976 mit enorm viel Computerrechnung durchgeführt. Jedoch waren die Fallunterscheidungen immer noch so aufwendig, dass man den Beweis nicht nachvollziehen konnte. In den Jahren 1997 und 2005 wurde der Beweis stark vereinfacht, benötigt aber für die verbleibenden Fälle immer noch den Computereinsatz. 6 Kürzeste Wege Hier betrachten wir einen ungerichteten Graphen, dessen Kanten eine relle positive Zahl tragen. Wir können uns dies zum Beispiel als Entfernung der beiden Orte, die durch die Ecken dargestellt werden, vorstellen. Die Aufgabe ist nun, zu gegebenen Anfangs- und Endknoten einen kürzesten“ Weg zu finden, das heißt einen Weg, so dass die Summe ” der Zahlen an den Kanten entlang des Weges möglichst klein wird. Aufgabe 18. Kürzeste Wege Finde den kürzesten Weg von Frankfurt nach München. 16 Aufgabe 19. Kürzeste Wege: Algorithmus von Dijkstra In einem Graphen die kürzeste Verbindung zwischen einem Start- und Zielknoten zu ermitteln ist im Allgemeinen nicht einfach, da der Graph sehr groß und kompliziert sein kann. Edsger W. Dijkstra2 erfand einen Algorithmus um dieses Problem zu lösen. Der Algorithmus funktioniert wie folgt: a) Weise allen Knoten die beiden Eigenschaften Distanz“ und Vorgänger“ zu. Die ” ” Distanz im Startknoten ist 0. Prüfe zu welchen Knoten man vom Startknoten aus gelangt und trage dort die jeweilige Distanz und den Startknoten als Vorgänger sowie in allen anderen Knoten zunächst ∞ als Distanz und keinen Vorgänger ein. b) Jetzt gehe nacheinander alle Knoten des Graphen wie folgt durch: c) Solange es noch unbesuchte Knoten gibt, wähle darunter denjenigen mit minimaler Distanz aus und markiere diesen Knoten. d) Berechne für alle noch unbesuchten Nachbarknoten des markierten Knoten die Summe des jeweiligen Kantengewichtes und der Distanz im aktuellen Knoten. 17 Ist dieser Wert für einen Knoten kleiner als die dort bisher gespeicherte Distanz, aktualisiere sie und setze den aktuellen Knoten als Vorgänger. Am Ende erhält man eine Liste der (minimalen) Abstände der einzelnen Knoten zum Startknoten. Die kürzeste Route findet man indem man den Vorgängern vom Zielknoten, also z.B. t, zurück folgt. Hier ist zunächst mal ein kürzeres Beispiel durchgerechnet. Der Graph sieht aus wie folgt: a 1 3 1 s b 3 1 2 t 2 1 1 c Schritt Knoten Wartemenge Distanz (s,a,b,c,t) Vorgänger (s,a,b,c,t) 0 1 2 3 4 5 s a c b t {s, a, b, c, t} {a, b, c, t} {b, c, t} {b, t} {t} ∅ (0, ∞, ∞, ∞, ∞) (0, 1, 3, 2, ∞) (0, 1, 2, 2, 4) (0, 1, 2, 2, 3) (0, 1, 2, 2, 3) (0, 1, 2, 2, 3) (∅, ∅, ∅, ∅, ∅) (∅, s, s, s, ∅) (∅, s, a, s, a) (∅, s, a, s, c) (∅, s, a, s, c) (∅, s, a, s, c) Jetzt sehen wir, dass der minimale Abstand zwischen s und t gleich drei ist und wir erhalten den kürzesten Weg (von hinten) als t–c–s. Wir probieren den Algorithmus jetzt an folgendem Beispiel aus: Gegeben sei ein Graph dessen Knoten mit den Buchstaben s, a, b, c, d, e, f und t bezeichnet werden und der folgende Kanten mit ihren jeweiligen Distanzen enthält: Kante Distanz Kante Distanz Kante Distanz Kante Distanz sa ae de ft 4 7 9 6 sb bd dt 3 5 3 sc ce ed 2 10 1 ad cf et 7 2 2 a) Zeichne anhand der Informationen ein Bild des Graphen. b) Ermittle anhand von Dijkstra den kürzesten Weg von s nach t. 18 7 Aufgaben Aufgabe 20. Doppelter Grad von Ecken Sei G ein einfacher Graph mit n Ecken. Zeige, dass es mindestens zwei Ecken gibt, die den gleichen Grad besitzen. Aufgabe 21. Der Versorgungsgraph Sei K3,3 der vollständige bipartite Graph mit zwei mal drei Knoten. Ist K3,3 planar? 19