M. Anderegg, E. Müller Graphentheorie Graphentheorie In den nächsten zwei Doppellektion lernen Sie ein Gebiet der Mathematik kennen, dass sich komplett von allem bisher Gehörten unterscheidet: Die Graphentheorie. Sie wurde vom Schweizer Mathematiker Leonard Euler (1707-1783) begründet. Richtig angewendet wurde sie allerdings erst 19. Jahrhundert. Und das erste Lehrbuch darüber gab es erst 1936. Sie ist also innerhalb der Mathematik eine sehr junge Theorie. Richtig wichtig wurde die Graphentheorie jedoch erst im Zusammenhang mit dem Einsatz von Computern für die Berechnung von grossen Problemen. Wer heute Informatik studieren will, kommt im Studium um die Graphentheorie nicht mehr herum. Diese Unterrichtseinheit findet im Rahmen einer Semesterarbeit von Michael Anderegg, Kantonsschule Rychenberg, und Emil Müller, Kantonsschule Wattwil, statt. Für das Fach „Erziehungswissenschaften“ untersuchen sie, wie sich unterschiedliche Unterrichtsformen auf die Motivation und die Selbsteinschätzung der SchülerInnen auswirken. Am Schluss dieser beiden Doppellektionen werden Sie folgendes gelernt haben: - Sie wissen, was ein Graph ist und wie seine Komponenten heissen. Sie wissen, weshalb und mit welchen Überlegungen Leonhard Euler die Graphentheorie begründet hat. Sie können anhand von Graphen entscheiden, ob es in einer Stadt mit Brücken einen Rundspaziergang gibt, der über alle Brücken genau einmal führt. Sie können einen Algorithmus anwenden, der auf einer Landkarte den kürzesten Weg zwischen zwei Städten findet. Ablauf: - Vor der ersten Lektion sollten Sie einen Fragebogen ausfüllen über Ihre allgemeine Motivation im Mathematik-Unterricht. Danach folgen die zwei Doppellektionen. Am Schluss sollten Sie eine Prüfung (Multiple-Choice) absolvieren zum Gelernten. Diese Prüfung zählt halb so viel wie eine gewöhnliche Mathe-Prüfung. Ganz am Schluss sollten Sie noch einen Fragebogen ausfüllen, in dem Sie die zwei Doppellektionen beurteilen. 1 M. Anderegg, E. Müller Graphentheorie Mit Graphen Probleme lö sen Das Königsberger Brücken-Problem Die untenstehende Abbildung zeigt einen Stadtplan von Königsberg (heute Kaliningrad An schönen Sonntagen gehörte es sich in Königsberg, dass man mit der Familie einen Spaziergang auf die Insel in der Mitte des Flusses Pregel sowie über die sieben Brücken der Stadt machte. Dabei stellten sie sich oft folgende Frage: "Ist es möglich, einen Spaziergang über alle sieben Brücken der Stadt zu machen, ohne eine Brücke zwei Mal zu überqueren? Und ist es möglich, nach einem solchen Spaziergang wieder zum Startort zurückzukehren?" Die Königsberger hatten das Glück, dass der Mathematiker Leonard Euler um 1736 herum am Hof in Königsberg arbeitete. Er nahm sich der Frage über den Rundspaziergang an und beantwortete sie mit einem Beweis und begründete damit eine neue Theorie, die heute in der Mathematik und vor allem in der Informatik eine sehr wichtige Rolle spielt. Wie hat Euler das gemacht? Graphen als Modell Um das Problem anzugehen, überlegt man sich zuerst, was die nötigen Informationen sind. Dabei sieht man sofort, dass die einzelnen Häuser der Stadt oder Name der Stadt überhaupt nicht relevant sind. Entscheidend ist dagegen die Lage der einzelnen Landgebiete, der Fluss und die sieben Brücken. Bei den Brücken spielt es jedoch keine Rolle, wo genau sie sind, sondern lediglich, welche Landgebiete sie miteinander verbinden. Schematisch dargestellt sieht das so aus: 2 M. Anderegg, E. Müller Graphentheorie Die roten Verbindungen stellen die Brücken dar, die die einzelnen Gebiete miteinander verbinden. Nun stellt sich die Frage, ob sich ein zusammenhängender Weg zeichnen lässt, der über alle sieben Brücken geht. Aufgabe 1 (5 Minuten) Zeichnen Sie einen schematischen Plan von Königsberg und suchen Sie einen Weg (nicht unbedingt eine Rundwanderung), der über alle sieben Brücken genau ein Mal führt. (Falls Ihnen ein Computer mit Internetzugang zur Verfügung steht, finden Sie unter http://www.matheprisma.uni-wuppertal.de/Module/Koenigsb/Einleitu/Einleit2.htm ein nützliches Applet, das Sie bei der Suche unterstützt.) Falls Sie keinen Weg finden, überlegen Sie sich, wo Sie eine zusätzliche Brücke einfügen müssen, damit Sie einen Weg zeichnen können. Aufgabe 2 (5 Minuten) Passen Sie den Stadtplan von Königsberg so an, dass es nicht nur einen Spaziergang über alle Brücken gibt, sondern dass er auch noch am Startpunkt wieder endet. Nun betrachten wir einen völlig anderen Stadtplan und überlegen uns, ob wir ein Kriterium finden, das uns sofort entscheiden lässt, ob es einen Rundweg über alle Brücken geben kann. Stadtplan 2: 3 M. Anderegg, E. Müller Graphentheorie Stadtplan 3: Unsere Aufgabe besteht darin, einen Weg zu zeichnen der beispielsweise in A startet, über alle Brücken genau einmal führt und wieder in A endet. Aufgabe 3 (10 Minuten) Untersuchen Sie die beiden Stadtpläne auf Rundwege, die über alle Brücken führen. Das Kriterium Folgende Fragen werden uns zum Kriterium führen. 1. Wie viele Brücken sind nötig, um von einem Gebiet weg- und wieder auf dahin zurückzukommen? 2. Wie viele Brücken sind nötig, um auf ein Gebiet und wieder von da weg zu kommen? 3. Was nützen uns diese Überlegungen für das Kriterium? Aufgabe 4 (5 Minuten) Zeichnen Sie einen beliebigen (nicht zu einfachen) Stadtplan, von dem Sie sicher sind, dass es einen Rundweg über alle Brücken gibt! 4 M. Anderegg, E. Müller Graphentheorie Schematische Darstellung einer Stadt Wir haben mit den obigen Überlegungen festgestellt, dass folgendes Kriterium gelten muss, um einen Rundweg sicherzustellen: DEFINITION: KRITERIUM FÜR EINEN EULERSCHEN RUNDWEG In einer Stadt existiert genau dann ein Eulerscher Rundweg, falls gilt: 1. Es gibt von jedem Gebiet einen Weg in jedes andere. 2. Es gibt in jedes Gebiet eine gerade Anzahl Brücken. Die Überlegungen, die zu diesem Kriterium geführt haben, sind typisch für die Graphen-Theorie, um die es in diesem Kapitel geht. Um jedoch nicht jedes Mal einen Stadtplan schematisch darstellen zu müssen, ist eine vereinfachte Schreibweise für solche Probleme eingeführt worden. In dieser Schreibweise sieht der Stadtplan von Königsberg aus wie in Abbildung 1. Dabei werden die verschiedenen Gebiete A bis C als Kreise dargestellt. Die Brücken werden als Verbindungen zwischen den Kreisen dargestellt. Damit haben wir alle Informationen, die wir brauchen. Abbildung 1: Schematische Darstellung des Stadtplanes von Königsberg. DEFINITION Ein Graph ist eine Menge von Punkten (hier Kreise), zwischen denen Verbindungen bestehen. Die einzelnen Punkte (Kreise) eines Graphen heissen Knoten (oder Ecken) des Graphen. Die Verbindungen zwischen den Knoten heissen Kanten. REGELN • Jede Kante verbindet zwei (nicht notwendigerweise unterschiedliche) Knoten. Knoten und Kanten könnten beschriftet werden, müssen aber nicht. 5 M. Anderegg, E. Müller • • • • Graphentheorie Eine Kante, die einen Knoten mit sich selber verbindet heisst Schlinge. Kanten müssen nicht gerade gezeichnet werden. Zwischen zwei Knoten kann es keine, eine oder mehrere Kanten geben. Wenn es zwischen zwei Knoten mehrere Kanten gibt, heissen diese parallele Kanten oder Mehrfachkanten. Besitzt ein Knoten überhaupt keine Kante, so heisst dieser Knoten isolierter Knoten. Beispiele von Graphen: Mit Graphen umgehen Um mit Graphen Probleme wie das Königsberger Brückenproblem lösen zu können, brauchen wir noch einige zusätzliche Konzepte. DEFINITION Der Grad eines Knotens gibt an, wie viele Kanten von einem Knoten wegführen. Aufgabe 5 (2 Minuten) Notieren Sie zu jedem Knoten im Haus des Nikolaus seinen Grad. 6 M. Anderegg, E. Müller Graphentheorie Aufgabe 6 (15 Minuten) Das Spezielle am Haus des Nikolaus ist, dass es mit einem Strich gezeichnet werden kann. Finden Sie ein Kriterium, mit dem Sie bei einem beliebigen Graphen feststellen können, ob man ihn mit einem Strich zeichnen kann. Testen Sie Ihre Vermutung an den folgenden Graphen. Mit diesen Überlegungen können wir nun das Königsberger Brückenproblem in ein GraphenProblem übersetzen. Es geht also darum, in einem Graphen einen Pfad zu zeichnen, der jede Kante einmal durchläuft und im Start-Knoten wieder endet. Damit haben wir grad auch die Definition für den Eulerschen Weg und den Eulerschen Pfad. DEFINITION: EULERSCHER WEG UND EULERSCHER KREIS Ein Eulerscher Weg in einem Graphen ist ein Weg, der jede Kante einmal durchläuft. Ein Eulerscher Kreis ist ein Eulerscher Weg, der in jenem Knoten endet, in dem er begonnen hat. 7 M. Anderegg, E. Müller Graphentheorie Wann sind zwei Graphen gleich? Schon beim Königsberger Brückenproblem haben wir gesehen, dass die schematische Zeichnung der Stadt nicht mehr viel mit dem eigentlichen Stadtplan zu tun hatte. Dennoch war uns immer klar, dass der Graph, den wir für die Lösung des Problems gezeichnet hatten, wirklich der Situation in Königsberg entsprach. Die Frage ist nun, wie lässt sich diese Idee der Gleichheit zweier Graphen charakterisieren und im konkreten Fall auch überprüfen? Eine Möglichkeit ist, dass man zwei gezeichnete Graphen übereinander hält. Wenn sie sich genau decken, dann sind sie sicher gleich. Betrachtet man jedoch die beiden folgenden Zeichnungen des Königsberger-Graphen erkennt man schnell, dass das ein zu strenges Kriterium wäre. Offensichtlich zeigen beide Graphen die gleiche Situation, obwohl sich ihre konkreten Zeichnungen recht stark unterscheiden. Die entscheidenden Kriterien, ob zwei Graphen gleich sind, sind offenbar: - Anzahl der Knoten Anzahl der Kanten Reichen diese beiden Kriterien aus? Die Frage ist also: Sind zwei Graphen mit gleicher Anzahl Knoten und gleicher Anzahl Kanten die gleichen Graphen? Aufgabe 7 (10 Minuten) Finden Sie ein Argument, mit dem Sie einer nicht eingeweihten Person beweisen können, dass die beiden Graphen nicht gleich sind. 8 M. Anderegg, E. Müller Graphentheorie Mach Sie sich dazu folgende Überlegungen: - Ordnet Sie im linken Graphen jedem Knoten einen Buchstaben und jeder Kante eine Zahl zu. Versuchen Sie nun im rechten Graphen eine Belegung mit Buchstaben und Kanten zu finden, so dass die entsprechenden Knoten in beiden Graphen den gleichen Grad haben und jeweils die gleichen Paare von Knoten mit einer Kante verbunden sind. DEFINITION: ISOMORPHIE In der Graphentheorie heissen zwei "gleiche" Graphen isomorph. Zwei Graphen sind also isomorph zueinander, wenn man jeden Knoten des einen Graphen einem Knoten im anderen Graphen zuordnen kann, so dass beide Knoten den gleichen Grad haben und jeweils in beiden Graphen die gleichen Knoten miteinander durch Kanten verbunden sind. Anders gesagt: Zwei Graphen sind isomorph, wenn sie folgende Bedingungen erfüllen: - Sie haben gleich viele Knoten - Sie haben gleich viele Kanten - Es gib zu jedem Knoten im ersten Graph einen Knoten im zweiten Graph mit dem gleichen Grad. - Zwei Knoten im ersten Graphen sind genau dann miteinander verbunden, wenn sie es auch im zweiten Graphen sind Aufgabe 8 (10 Minuten) Sind die folgenden Paare von Graphen isomorph? Begründen Sie Ihre Antwort mit einer Zeichnung. 9 M. Anderegg, E. Müller Graphentheorie 10 M. Anderegg, E. Müller Graphentheorie Lö sungen Aufgabe 1 Aufgabe 2 Aufgabe 3 Stadtplan 2 besitzt keinen Rundweg. Stadtplan 3 besitzt einen Rundweg. Aufgabe 4 Aufgabe 5 11 M. Anderegg, E. Müller Graphentheorie Aufgabe 6 Das Kriterium für Rundwege ist das selbe wie bei den Stadtrundgängen: - Jeder Knoten muss von jedem anderen Knoten aus erreichbar sein. - Es dürfen nur Knoten mit geradem Grad auftreten. Dies ist das Kriterium von Euler für einen Rundweg. Um einen Graphen in einem Strich zu zeichnen, bedarf es aber nicht unbedingt eines Rundwegs – wie das Beispiel vom Haus des Nikolaus zeigt. Das Kriterium, um einen Graphen in einem Strich zu zeichnen ist demnach: - Jeder Knoten muss von jedem anderen Knoten aus erreichbar sein. - Es muss folgendes gelten: o Entweder haben alle Knoten geraden Grad o Oder es haben genau zwei Knoten ungeraden Grad. In diesem muss mit der Zeichnung begonnen werden. Die ersten vier Graphen kann man mit einem Strich zeichnen. Der letzte nicht. 12 M. Anderegg, E. Müller Graphentheorie Aufgabe 7 - - Betrachtet man den Knoten E in beiden Figuren (rot eingezeichnet), so sieht man, dass er im linken Graphen den Grad 3 hat, im rechten Graphen dagegen hat er den Grad 4. Das ist ein Hinweis darauf, dass es sich nicht um die gleichen Graphen handeln kann. Noch deutlicher wird es, wenn wir zählen, wie viele Knoten des Grades 3 in beiden Graphen existieren. Im linken Graph sind es die Knoten A,C,D und E, also insgesamt 4 Knoten. Im rechten Graphen dagegen sind es die Knoten C und D, also nur zwei. Es können also unmöglich die gleichen Graphen sein, obwohl sie gleich viele Knoten und Kanten haben. 13 M. Anderegg, E. Müller Graphentheorie Aufgabe 8 14 M. Anderegg, E. Müller Graphentheorie Auf der Suche nach dem kü rzesten Weg Einführung Welches ist der kürzeste Weg zwischen Zürich und Sankt Moritz? Welches die schnellste Zugverbindung zwischen Genf und Appenzell? Welche Flüge soll man buchen, um möglichst günstig von Zürich nach Sydney zu fliegen? Über welche Leitungen soll sich mein Computer mit dem Server von www.math.com verbinden? Aufgabe 1 (5 Minuten) Wir Menschen haben ein gutes Gefühl für kürzeste Distanzen. Täglich optimieren wir Wege, sei es beim Einkaufen oder auf dem Weg zur Schule. Versuchen Sie nach Augenmass einen möglichst guten Weg vom Startpunkt zum Zielpunkt in folgendem Netzwerk zu finden: Summieren Sie alle Zahlenwerte entlang Ihres Weges. Wie lang ist Ihr Weg? Vergleichen Sie mit dem Nachbar. Gewichtete Graphen Bei all den Anfangs gestellten Fragen geht es um die Suche nach der optimalen Verbindung zweier Elemente in einem Netzwerk. Was dabei das „Netzwerk“ ist und was „optimal“ bedeutet, ist von Frage zu Frage verschieden. Mal ist es ein Strassennetz, mal ein Computernetzwerk. Mal ist eine kurze, mal eine kostengünstige oder eine schnelle Verbindung gesucht. Die zugrundeliegende Struktur ist die eines Graphen wie der in Aufgabe 1. Anders als bei den Graphen, die Sie bis jetzt kennengelernt haben, besitzt jede Kante im Beispiel oben einen Zahlenwert, der die Länge der entsprechenden Verbindung angibt. DEFINITION Ein gewichteter Graph ist ein Graph, in welchem jede Kante einen Zahlenwert besitzt. Dieser Zahlenwert nennt man das Gewicht der Kante. M. Anderegg, E. Müller Graphentheorie Die Bedeutung von Knoten, Kanten und Gewichte hängt vom behandelten Problem ab. Die Knoten des Graphs können zum Beispiel Strassenkreuzungen, Bahnhöfe oder Flughafen symbolisieren. Die Kanten hingegen stehen für Strassen, Zug- oder Flugverbindungen. Das Gewicht der Kanten gibt die Länge der Strasse, die benötigte Zeit oder die Kosten der Verbindung an. Im Beispiel oben wurde der Graph so gezeichnet, dass die Längen der Kanten proportional zum Gewicht sind. Das muss nicht so sein. Allerdings ist es dann von blossem Auge schwieriger. Aufgabe 2 (5 Minuten) Schätzen Sie die kürzeste Verbindung vom Start 0 zum Ziel 7 im folgenden Graph: Wie lang ist Ihr Weg? Die kürzeste Verbindung hat die Länge 14… Bestimmt fragen Sie sich jetzt, wieso man die Sache so kompliziert macht und die Kantenlänge nicht einfach proportional zum Gewicht wählt. Wenn Sie den kürzesten Weg von Zürich nach Sankt Moritz suchen, gibt es dagegen nichts einzuwenden. Schwieriger wird die Sache, wenn das Kantengewicht nicht Weglängen darstellt, sondern beispielsweise Ticketpreise. Betrachten Sie dazu folgendes Beispiel: Aufgabe 3 (3 Minuten) Der Direktflug von Zürich nach Sydney kostet 7000 CHF. Der Flug von Zürich nach Singapur kostet 3500 CHF und der von Singapur nach Sydney 3000 CHF. Versuchen Sie die Situation als Graphen darzustellen, wobei die Kantenlängen 1 cm pro 1000CHF messen sollen. Wieso klappt es nicht? M. Anderegg, E. Müller Graphentheorie Ein erster Algorithmus Überlegen Sie sich kurz, wie viele einigermassen kurze Wege von der Schule zum Bahnhof Sie kennen. Vermutlich fallen Ihnen bereits einige ein. Man kann sich vorstellen, dass es enorm viele, infrage kommende Wege von Zürich nach Sankt Moritz geben muss. Mit Sicherheit so viele, dass man den entsprechenden Graphen unmöglich auf ein Blatt zeichnen kann. Und keinesfalls werden wir ohne Hilfe in der Lage sein, in nützlicher Zeit den kürzesten Weg durch dieses Netzwerk zu finden! Für Probleme dieser Grössenordnung sind wir auf Computer angewiesen. Diese sind wiederum darauf angewiesen, dass man Ihnen eine Anleitung gibt, wie sie das Problem lösen sollen – ein sogenannter Algorithmus. DEFINITION Ein Algorithmus ist eine Abfolge von einfachen Anweisungen, mit denen man bei korrekter Ausführung ein schwieriges Problem lösen kann. Ein solches Vorgehensmuster zur Bestimmung einer kurzen Verbindung ist der sogenannte „greedy algorithm“: DEFINITION Der greedy algorithm zur Bestimmung einer kurzen Verbindung lautet 1. Beginne beim Startknoten. 2. Folge der Kante mit dem kleinsten Gewicht. 3. Wiederhole schritt 2 bis der Zielknoten erreicht wurde. Bei dieser „gierigen“ Methode wird jeder Schritt so gewählt, dass dessen Kosten minimal sind. Aufgabe 4 (5 Minuten) Probieren Sie es selber am bekannten Graphen aus (Start bei 0, Ziel bei 7). M. Anderegg, E. Müller Graphentheorie Wenn Sie alles richtig gemacht haben, sollten Sie einen Weg der Länge 15 gefunden haben. Das ist gar nicht schlecht, wenn man bedenkt, dass die kürzeste Verbindung die Länge 14 hat! Allerdings liefert das gierige Suchen nach der kürzesten Route meist nicht so gute Resultate. Aufgabe 5 (10 Minuten) Zeichnen Sie einen Graphen mit fünf Knoten, in welchem der greedy algorithm versagt. Tauschen Sie Ihre Lösung mit der Ihrer Nachbarin oder Ihres Nachbars und finden Sie in ihrem / seinem Graphen die kürzeste Verbindung. M. Anderegg, E. Müller Graphentheorie Der Dijkstra Algorithmus Der holländische Mathematiker E.W. Dijkstra (Sprich: ˈdɛɪkˌstra) fand 1959 einen Algorithmus zur Bestimmung der kürzesten Wege in einem gewichteten Graph. Der Algorithmus ist so gut, dass er heute in den meisten Routenplaner und Navigationsgeräte implementiert ist. Mit seiner Methode werden zunächst alle kürzesten Wege in einem Teil des gesamten Graphen ermittelt. Danach wird der Teilgraph schrittweise vergrössert und die Auswirkungen dieser Vergrösserung auf die kürzesten Wege untersucht. Bei diesen Schritten steht die folgende wichtige Überlegung im Zentrum: DIJKSTRAS IDEE Wenn der kürzeste Weg von A nach C durch B verläuft, dann ist der Wegabschnitt zwischen A und B die kürzeste Verbindung zwischen diesen beiden Knoten. Der Algorithmus soll nun anhand eines Beispiels erklärt werden: Im folgenden Graphen ist der kürzeste Weg vom Knoten ganz links zu dem ganz rechts gesucht. M. Anderegg, E. Müller Graphentheorie Als erstes wird der Teilgraph betrachtet, der nur aus dem Startknoten besteht. Der Abstand des Startknotens zu sich selber ist 0. Im betrachteten Teilgraph, sind alle anderen Knoten unerreichbar. Der Abstand zu Ihnen ist unendlich (im Bild mit inf für infinity bezeichnet). Der betrachtete Teilgraph wird nun um die Nachbarn des Startknotens erweitert. Dadurch verändern sich deren Abstände zum Startknoten. Im gesamten Graphen könnte es aber noch kürzere Verbindungen zum Startknoten geben, deswegen sind die neuen berechneten Abstände temporär. (Blau markiert) Als nächstes wird der Knoten mit dem kleinsten temporären Abstand genauer betrachtet. Er wird „aktiv“. Sein Abstand zum Startknoten kann durch keine Erweiterung des Teilgraphs verkleinert werden, denn alle anderen Wege vom Startknoten bis dahin verlaufen über einen temporären Knoten und sind somit länger. Sein Abstand und der Weg dahin können als endgültig betrachtet werden. (rot markiert) M. Anderegg, E. Müller Graphentheorie Der betrachtete Teilgraph wird nun um die Nachbarn des aktiven Knotens erweitert. Dadurch ändern sich ihre temporären Abstände zum Startknoten. Beachten Sie insbesondere, dass ein neuer kürzester Weg zum Knoten unten Links entsteht. Aus Dijkstras Idee folgt, dass die Kante unten links nie Teil eines kürzesten Weges sein kann. Sie kann für alle weiteren Betrachtungen gelöscht werden. Der Knoten unten links hat den kleinsten temporären Abstand und wird als nächster aktiv. Sein Abstand kann als endgültig betrachtet werden und den seiner Nachbarn muss aktualisiert werden. Da die Wege über die Diagonalen schlechtere temporäre Abstände liefern, können diese Verbindungen gelöscht werden. M. Anderegg, E. Müller Graphentheorie Der Knoten unten rechts wird aktiv, sein temporärer Abstand endgültig. Die temporäre Abstände seiner Nachbarn werden angepasst und überflüssige Kanten gelöscht. Der Knoten oben rechts wird aktiviert, sein temporärer Abstand endgültig. Der temporäre Abstand zum Zielknoten wird angepasst. Wenn schliesslich der der letzte Knoten aktiviert wird, haben alle einen endgültigen Abstand zum startknoten. Der rote Graph zeigt die kürzesten Wege vom Startknoten zu allen anderen Knoten im Graph. M. Anderegg, E. Müller Graphentheorie Ganz allgemein kann der Algorithmus so formuliert werden: DEFINITION Der Dijkstra Algorithmus lautet 1. Setze die Distanz aller Knoten auf unendlich, die des Startknotens auf 0. Setze den Startknoten als aktiv. 2. Markiere die temporäre Distanz des aktiven Knoten als endgültig (rot). 3. Markiere die blaue Kante des aktiven Knotens rot. 4. Führe die folgende Schritte für jeden Nachbarknoten des aktiven Knotens durch: i. Berechne die temporäre Distanz des Nachbars durch Addition der Distanz des aktiven Knotens mit dem Kantengewicht. ii. Falls die neu berechnete temporäre Distanz kleiner ist als die bisherige, aktualisiere die Distanz, lösche alle blauen Kanten, die zu diesem Knoten führen und färbe die aktuelle Kante blau. iii. Falls die neu berechnete temporäre Distanz grösser oder gleich der bisherigen ist, lösche die Kante. 5. Wähle den Knoten mit minimaler temporärer Distanz als aktiv. 6. Wiederhole die Schritte 2-5, bis der Zielknoten eine endgültige Distanz hat. Aufgaben 6 (15 Minuten) Auf der Internetseite der Technischen Universität München findet man ein Applet, das den Algorithmus gut veranschaulicht. Folgen Sie dazu dem Link: http://www-m9.ma.tum.de/Allgemeines/DijkstraApplet Wählen Sie in den Einstellungen das „Beispiel 6 (Aufgabenblatt)“ und die Option „ungerichteter Graph“. Drücken Sie auf Start, wählen Sie den Punkt 0 als Startknoten und lassen Sie alle kürzeste Wege berechnen. Vermutlich ging das zu schnell. Drücken Sie mehrmals die Taste „zurueck“ bis der Graph wieder im Anfangszustand ist. Nun können Sie mit „vor“ die einzelnen Schritte anschauen. Machen Sie den Algorithmus gleich mit (Graph unten). Versuchen Sie auch mal selbst weiterzumachen und kontrollieren Sie anschliessend, ob der Computer gleich vorgeht. M. Anderegg, E. Müller Graphentheorie Experimentieren Sie auch mit anderen Beispielen auf der Internetseite. Aufgabe 7 (10 Minuten) Verwenden Sie den Dijkstra Algorithmus zur Suche nach der kürzesten Verbindung in diesem Graph: P 60 H I 34 G 41 39 35 48 49 C A Start 46 25 J 34 F 49 M 37 45 25 44 Der kürzeste Weg hat die Länge 268… Ziel 43 59 41 E O 25 K 32 51 33 37 61 23 28 N 29 37 B N L 60 Q