Graphentheorie

Werbung
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
Herunterladen