Der Dijkstra-Algorithmus |
![]() |
![]() |
Letztmalig dran rumgefummelt: 27.02.24 17:22:37 |
![]() |
Das Flaggenproblem ist eine aus der Informatik stammende Problemstellung, die der niederländische Wissenschaftler E. W. Dijkstra entwickelte. Es ist auch unter dem Namen "3 - Farben - Problem" bekannt. Ursprünglich formulierte Dijkstra das Flaggenproblem folgendermaßen: "Ein Roboter erhält die Aufgabe, eine Anzahl von gefärbten Kieselsteinen, die in einer Reihe von Eimern liegen, zu sortieren. Die Eimer stehen vor dem Roboter und jeder von den Eimern enthält genau einen Kieselstein, der entweder rot, weiß oder blau ist. Der Roboter besitzt zwei Arme, die an den Enden jeweils ein Auge haben. Mit diesen Augen kann der Roboter die Farbe des Kieselsteines bestimmen, mit den Armen kann er die Inhalte zweier Eimer vertauschen." | |||||||
![]() |
1. Problembeschreibung 2. Hintergründe und Zusammenhänge - Einordnung in Klassen 3. Lösungsalgorithmen - die Sache mit den Dijkstra-Ameisen 4. Programmvorschläge 5. Zusammenfassung 6. Weiterführende Literatur 7. Linkliste zum Thema 8. Verwandte Themen |
|||||||
![]() |
|
|||||||
![]() |
Quellen: | |||||||
![]() |
|
1. Problembeschreibung |
![]() |
![]() |
![]() |
![]() |
|
![]() |
Karte Sachsens zur Problemerarbeitung - wir werden uns immer auf genau diese Karte beziehen |
![]() |
|
![]() |
|
![]() |
|
![]() |
2. Hintergründe, Zusammenhänge - Einordnung in Klassen |
![]() |
![]() |
![]() |
![]() |
Routenplaner gehören heute schon fast zum Alltag: Viele Autos haben sie bereits eingebaut, wer keinen im Fahrzeug hat, lässt sich den günstigsten Weg zu seinem Ziel oft auf dem heimischen PC ermitteln und druckt ihn aus. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Versuchen wir es doch gleich: Nehmen Sie einen großen Straßenatlas und
ermitteln Sie die günstigste Strecke von Stockheim nach Weilheim! Zu viel Arbeit? Kein Atlas? Also gut - ich hatte in der Einleitung ja versprochen, dass alle notwendigen Materialien hier im Buch seien. Daher arbeiten wir erst einmal mit der folgenden kleinen Welt nach Abbildung 1.1. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Die Karte zeigt Orte, zwei Autobahnen, größere und kleinere Landstraßen.
Die roten und blauen Zahlen geben dabei immer die Länge der Straße an, wenn
man sie mit dem Auto fährt. Man kann sehen, dass kleine Straßen meistens
viel länger sind, als sie scheinen, weil die vielen Kurven und Berge nicht
eingezeichnet sind. Welches ist denn nun der günstigste Weg von Imstadt nach
Oppenheim? Erster Ansatz wäre, zur nächsten Autobahn zu fahren. Aber geht das am besten über Pappstadt oder die Auffahrt Budingen? Außerdem führt ja von Pappstadt aus auch eine direkte Landstraße zum Ziel. Die ist aber wohl gewunden und ziemlich lang. Oder doch lieber die gelbe Straße zum Flughafen und von dort die Autobahn nach Oppenheim nehmen? |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
Vorüberlegungen Wie kommt ein Informatiker nun zu einer besseren Lösung? Zunächst sollte man mit der Methode der Abstraktion arbeiten! Die Methode der Abstraktion
Man könnte auch sagen: Werfen Sie alles Überflüssige über Bord und konzentrieren Sie sich auf das Wesentliche. Was ist aber bei der gestellten Aufgabe wesentlich? Alle gegebenen Informationen stecken in vier Karte. welche Typen von Informationen kann man erkennen? Erstellen Sie eine Liste, bevor Sie weiter lesen. Die Informationen der Karte sind in folgender Tabelle zusammengefasst.
Überlegen Sie weiter, welche Informationen wir benötigen, um den kürzesten Weg zwischen zwei Städten zu suchen. Markieren Sie für jede Information, ob diese im Zusammenhang für Sie wichtig ist, oder eben nicht wichtig ist. Der kürzeste Weg soll sich in unserem Beispiel auf den Weg und nicht auf die Zeit beziehen. Mein Ergebnis ist folgendes:
Nun kann die Karte neu gezeichnet werden und zwar so, dass möglichst alle irrelevanten und damit störenden Informationen fehlen. Versuchen Sie es einmal selbst, bevor Sie weiter lesen:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
3. Lösungsalgorithmus - die Sache mit den Dijkstra-Ameisen |
![]() |
![]() |
![]() |
![]() |
Der Dijkstra-Algorithmus gehört zu den informatischen Problemen, welche, wie so viele für kleine n bequem auch mit Hand lösbar sind - und diese zeigen somit auf, das das alte Sprichwort von Dijkstra immer noch seine Gültigkeit hat: Informatik hat mit dem Computer so viel zu tun, wie Astronomie mit dem Fernrhr! | ||||||||||||||||||||||
![]() |
|
||||||||||||||||||||||
![]() |
Methode der Gleichformung Versuchen Sie, die verschiedenen Facetten eines
Problems auf die gleichen Grundelemente zurückzuführen. Dadurch wird
einerseits das Problem übersichtlicher und andererseits benötigt man weniger
Lösungsansätze: Für gleichförmige Teilprobleme kann der gleiche
Lösungsansatz verwendet werden. |
||||||||||||||||||||||
![]() |
Genau das soll auch an den mit Punkt gekennzeichneten Stellen möglich sein.
Also tun wir einfach so, als wenn sich dort Städte befinden. Um sie nicht
mit den anderen Städten zu verwechseln, nennen wir sie ( X ), ( Y ) und ( Z
). Den fertigen Plan zeigt Abbildung unten An allen weiteren Kreuzungspunkten zwischen zwei Straßen ist jetzt kein Wechsel mehr möglich. Es ist daher auch keine Unterscheidung, also auch keine Kennzeichnung durch Bogen mehr notwendig. Die Städte sind immer noch auf ihrer geographischen Position eingezeichnet. Dadurch ergeben sich an manchen Stellen Ballungszentren. Die Straßenführung wird unübersichtlich. Die geographische Position der Städte haben wir jedoch weiter vorne als unrelevant deklariert. Um es Ihnen so einfach wie möglich zu machen, habe ich die Karte in Abbildung 1.4 etwas entzerrt.
|
||||||||||||||||||||||
![]() |
|
4. Programmvorschläge |
![]() |
![]() |
![]() |
![]() |
Zum Zweck der Programmierung muss die ganze Sache wesentlich vereinfacht - folgerichtig eine frühe Variante der Kartenentwicklung genutzt werden. Bevor alles diesbezüglich beginnt, versuche ich die derzeit bekannten "Entwicklungsmethoden" sowie Parameter zu umreißen. | ||||
![]() |
|
5. Aufgaben |
![]() |
![]() |
![]() |
![]() |
Jetzt machen wir Informatik. In allen Bereichen, welche uns bisher bekannt sind, suchen wir eine gerade aktuelle Geschwindigkeit. Steigern wir das, so suchen wir die gerade wirkende Beschleunigung - aber auch nicht gerade wirklich viel komplexer für erfahrene Physiker. |
![]() |
... geltende Regeln:
|
![]() |
... und ab der Fisch:
|
6. Weiterführende Literatur |
![]() |
![]() |
![]() |
![]() |
|
![]() |
der Lösungsalgorithmus der Türme von Hanoi ist nicht komplex, jedoch schon mit geringer Anzahl n mächtig |
7. Links zum Thema |
![]() |
![]() |
![]() |
![]() |
|
![]() |
8. Verwandte Themen |
![]() |
![]() |
![]() |
![]() |
Das Vorangestellte hilft wirtschaften, löst jedoch kein einziges Problem (allerdings ohne Beachtung der Worst-Case-Strategien wird man auch nicht erfolgreich Software entwickeln und/oder informatische Projekte realisieren können). Deshalb nunmehr das, was wirklich Arbeiten hilft. | |||||||||||||||||||||
![]() |
|
|||||||||||||||||||||
![]() |
|
|||||||||||||||||||||
![]() |
|
![]() zur Hauptseite |
© Samuel-von-Pufendorf-Gymnasium Flöha | © Frank Rost am 18. Juli 2012 um 16.28 Uhr |
... dieser Text wurde nach den Regeln irgendeiner Rechtschreibreform verfasst - ich hab' irgendwann einmal beschlossen, an diesem Zirkus nicht mehr teilzunehmen ;-) „Dieses Land braucht eine Steuerreform, dieses Land braucht eine Rentenreform - wir schreiben Schiffahrt mit drei „f“!“ Diddi Hallervorden, dt. Komiker und Kabarettist |
Diese Seite wurde ohne Zusatz irgendwelcher Konversationsstoffe erstellt ;-) |