routenplanung & komplexität. lernziele sie haben den dijkstra-algorithmus nachvollzogen. sie...
TRANSCRIPT
![Page 1: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/1.jpg)
Routenplanung& Komplexität
![Page 2: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/2.jpg)
Lernziele
• Sie haben den Dijkstra-Algorithmus nachvollzogen.
• Sie haben das Konzept der Komplexität eines Algorithmus verstanden.
• Sie haben die Komplexität des Dijkstra-Algorithmus abgeschätzt.
• Sie können auch für andere Probleme die Komplexität (in O-Notation) abschätzen
![Page 3: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/3.jpg)
Routenplanung
Es geht darum, anhand einer Strassenkarte den kürzesten Weg zwischen zwei Orten zu findenEdsger Dijkstra fand schon 1956 eine effiziente Lösung für dieses Problem, die auch heute noch in den meisten Navigationsgeräten Anwendung findet
![Page 4: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/4.jpg)
Was ist ein Algorithmus?
![Page 5: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/5.jpg)
Schr
itt 1
: Abs
trak
tion
(= R
eduz
ieru
ng d
es P
robl
ems
auf d
as
Wes
entli
che)
![Page 6: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/6.jpg)
Man kann noch weiter
Abstrahieren
Ziel: möglichst wenige,
gleichförmige Elemente
![Page 7: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/7.jpg)
![Page 8: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/8.jpg)
Schritt 2: Lösung?!
• Es gibt eine sehr simple, aber nicht besonders schlaue Lösung für das Problem mit dem kürzesten Weg:
Brute Force• Diese Methode funktioniert übrigens bei
vielen Problemen, und wird doch fast nie angewandt – später sehen wir, warum
![Page 9: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/9.jpg)
Es gibt bessere Lösungen
• ... aber wie?
• Idee???
![Page 10: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/10.jpg)
Schritt 2: Grundidee
Ameisen bewegen sich mit konstanter Geschwindigkeit entlang des Graphen und markieren dabei ihren Weg•Ausgehend vom Startort•Aufspaltung an jeder Kreuzung•Bereits markierte Wege werden verworfen•Wer zuerst den Zielort erreicht hat den kürzesten Weg gefunden
![Page 11: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/11.jpg)
![Page 12: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/12.jpg)
Dijkstras Algorithmus
• ... ist eine Variante der Ameisenidee• Warum Variante?
– weil Computer seriell arbeiten– weil man noch ein kleines bisschen optimieren
kann
• Wie genau es funktioniert?– routeplanner_3.pdf– mit Stift nachvollziehen
![Page 13: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/13.jpg)
![Page 14: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/14.jpg)
![Page 15: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/15.jpg)
![Page 16: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/16.jpg)
![Page 17: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/17.jpg)
Ergebnis:allerdings mit einem
Fehler!
![Page 18: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/18.jpg)
Schritt 3: Formalisieren
Beispielsweise als•Flow Chart•Pseudocode•Struktogramm
– s. Arbeitsblätter
![Page 19: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/19.jpg)
![Page 20: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/20.jpg)
AufgabeSchauen Sie sich den Algorithmus nochmals an. Welche Werte müssen Sie sich von jedem Knoten aufschreiben, wenn Sie bei der Lösung des Algorithmus nicht auf die vorliegende Karte schreiben dürfen?
![Page 21: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/21.jpg)
Aufgabe:1.Bestimmen sie eines der Hotels (gelbe Knoten) als Startpunkt2.Erstellen Sie eine Distanztabelle für die Strecken zu allen anderen Hotels(Lösungen für A, G & K im pdf)
![Page 22: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/22.jpg)
Schritt 4: Analysieren
• Ist das ein guter Algorithmus?• Ist er besser als ein Anderer?
– Immer?– In speziellen Fällen?
• Lohnt es sich, ihn zu implementieren?
![Page 23: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/23.jpg)
Komplexität & Big-O-Notation
Das Problem des Handlungsreisenden (travelling salesman):
Berechne die kürzeste Strecke, die durch mehrere vorgegebene Orte führt
![Page 24: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/24.jpg)
Komplexitätsabschätzung
Es geht um asymptotische Laufzeit (Speicherbedarf)
Abschätzen, wie sich der Rechenaufwand eines Algorithmus im ungünstigsten Fall mit immer grösser werdenden Eingaben verändert
Und wozu ist das nütze?
![Page 25: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/25.jpg)
LaufzeitabschätzungWir betrachten, wie viele Schritte im Algorithmus abgearbeitet werden müssen - abhängig von der Menge der Eingabedaten.
Beispiel 1:Wir haben eine Namensliste und wollen wissen, ob ein bestimmter Name darin vorkommt. und jetzt?
Kerim Alexandra LorenzJulianSamuelNirubanAymarJoëlSlavkoManuelNathanaelAnselmNiko
![Page 26: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/26.jpg)
Laufzeitabschätzung
1) Lösung (Algorithmus) finden
2) Für den ungünstigsten Fall (worst
case) durchspielen
3) Laufzeit abschätzen (O-Notation)
Kerim Alexandra LorenzJulianSamuelNirubanAymarJoëlSlavkoManuelNathanaelAnselmNiko
![Page 27: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/27.jpg)
Algorithmus Lineare Suche• Worst case?• Laufzeit
– n = 10?– n = 20?– n = 100?– allgemein?
O(n)(n verdoppeln verdoppelt Laufzeit)
![Page 28: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/28.jpg)
LaufzeitabschätzungWir betrachten, wie viele Schritte im Algorithmus abgearbeitet werden müssen - abhängig von der Menge der Eingabedaten.
Beispiel 2:Wir haben eine Namensliste und wollen wissen, ob ein Name darin doppelt vorkommt.
Kerim Alexandra LorenzJulianSamuelNirubanAymarJoëlSlavkoManuelNathanaelAnselmNiko
Allgemeine Laufzeit?
![Page 29: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/29.jpg)
O-NotationWir betrachten, wie sich die Schrittanzahl im Algorithmus für eine sehr grosse Anzahl von Eingabedaten verhält („obere Schranke“ für Worst Case).
Beispiel Namensliste:Für n Eingabedaten brauchen wir sicher nicht mehr als
(n-1)+(n-2)+…+(1) = Schritte.
Schreibweise:Laufzeit_Namensliste = O(n2)
2
)1( nn
![Page 30: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/30.jpg)
O-NotationVereinfachungsregeln:
Addition f(n) = n + 3 ⇒ O(n)
f(n) = n2 + 3n O⇒ (n2)
Multiplikation f(n) = 3n ⇒ O(n)
f(n) = n2 * 3n ⇒ O(n3)
Konstante Summanden werden vernachlässigt
Es zählt der Summand mit dem stärkeren Wachstum Konstante Faktoren werden vernachlässigt
Es zählt die Summe der Exponenten
![Page 31: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/31.jpg)
Aufgaben (s. ABKomplexität1.doc)
1. Wir wollen einen quadratischen Rasen mähen, die Länge einer Seite ist n. Zu welcher Komplexitätsklasse gehört das Rasenmähen?
2. Wir wollen eine n-stöckige Pyramide aus Getränke-Kisten bauen. Wie lautet dieLaufzeit in O-Notation?
3. Sie haben das Bier für die Party schon gekauft, n ist die Anzahl der Gäste. Saufzeit in O-Notation?
![Page 32: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/32.jpg)
Turm von Hanoi (original mit 64 Scheiben)
Anzahl Züge:
3 Scheiben7 Züge
n Scheiben 2n-1 Züge
![Page 33: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/33.jpg)
Komplexitätsabschätzung
Wie verhält sich die asymptotische Laufzeit für folgende Algorithmen? (wie ändert sich die Anzahl der Rechenschritte, wenn man die Anzahl der Elemente im Array verdoppelt)
1.Suchen eines Elements im Array
2.Sortieren der Elemente des Arrays
3.Alle möglichen Permutationen ausgeben
![Page 34: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/34.jpg)
Komplexitätsabschätzung
Es geht um asymptotische Laufzeit (Speicherbedarf)
Abschätzen, wie sich der Rechenaufwand eines Algorithmus im ungünstigsten Fall mit immer grösser werdenden Eingaben verändert
Theoretische Informatik
![Page 35: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/35.jpg)
Berechenbarkeit von Algorithmen
2. Kann alles, was theoretisch berechenbar ist, auch tatsächlich berechnet werden?
was heisst hier „praktisch“?
Ein Computer ist eine universelle Rechenmaschine, er kann alles berechnen, was berechenbar ist.
1. Gibt es auch Probleme, die nicht berechenbar sind?
![Page 36: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/36.jpg)
Komplexitätsklassen
![Page 37: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/37.jpg)
Komplexitätsklassen
noch praktikabelnicht mehr praktikabel
![Page 38: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/38.jpg)
Berechenbarkeit von AlgorithmenDie nicht-polinomialen Algorithmen (NP):Sind praktisch nicht lösbar,für etwas grössere n.1. Gibt es keine schnellere Lösung, oder haben wir nur noch keine gefunden?Und: Für die grosse Familie der NP-vollständigen Problememuss diese Frage nur an einem einzige Beispiel beantwortet werden!
NP-vNP-hNP?...
![Page 39: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/39.jpg)
NP-vollständige Probleme• Sie sind entscheidbar (=berechenbar). • Sie besitzen Lösungen in exponentieller Zeit. • Für keines dieser Problem wurde je ein Algorithmus
mit Polynomialzeit gefunden. • Niemand konnte bisher beweisen, ob sie exponentielle
Zeit benötigen müssen.• Alle diese Probleme sind miteinander verwandt:
– Sollte jemals für ein einziges Problem ein Algorithmus mit Polynomialzeit gefunden werden, dann ergäben sich sofort Polynomialzeit-Algorithmen für alle anderen Probleme.
– Umgekehrt gilt das allerdings auch (Beweis, dass NP≠P)
http://en.wikipedia.org/wiki/List_of_NP-complete_problems
![Page 40: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/40.jpg)
P == NP ?
Das P-NP-Problem gilt als eines der wichtigsten offenen Probleme der Informatik und wurde vom Clay Mathematics Institute in die Liste der Millennium-Probleme aufgenommen – auf seine Lösung ist eine Preis von 1 Million $ ausgesetzt.
Frage: Rein finanziell gesehen wäre man bescheuert, den Preis in Anspruch zu nehmen, falls man einen Beweis für die Vermutung P == NP gefunden hätte. Warum?
![Page 41: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/41.jpg)
Verstanden?
• Formulieren Sie mit eigenen Worten:
1. Wie ist die Problemklasse P definiert?
2. Wie ist die Problemklasse NP definiert?
![Page 42: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/42.jpg)
Verstehen sie den Witz jetzt besser?
http://en.wikipedia.org/wiki/List_of_NP-complete_problems
Das Problem des Handlungsreisenden (travelling salesman)
![Page 43: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/43.jpg)
Komplexitätsabschätzung
Es geht um asymptotische Laufzeit (Speicherbedarf)
Abschätzen, wie sich der Rechenaufwand eines Algorithmus im ungünstigsten Fall mit immer grösser werdenden Eingaben verändert
Und bei Dijkstra?
![Page 44: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/44.jpg)
Vollständige Wege in GraphenWege von S aus: 2 Wege (2 x 2 Schritte)
Möglichkeiten bei noch mehr Knoten:3 x 2 Wege (x 3)4 x 6 Wege (x 4)5 x 24 Wege (x 5)6 x 102 Wege (x 6) (n-1)(n-1)! Schritte = O(n!)
3 Wege in den 3er-Graphenvon: 3 x 2 Wege (6 x 3 Schr.)
![Page 45: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/45.jpg)
Dijkstra: keine doppelten Wege
• Alle Wege von S aus, danach ist S aus dem Rennen
• Im verkleinerten Graphen wird der näheste Knoten zu S und das Ganze von vorn...
(n-1) + (n-2) + (n-3) + ... + 1 n2/2O(n2)
Bei nicht vollständig verknüpften Graphen und geschickter Implementierung: O(n x log(n))
![Page 46: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/46.jpg)
Welche Komplexität hat Routenplanung ...
• mit „brute force“?
O(n!), also NP
• mit dem Dijkstra Algorithmus?
O(n2), also P
genauer: O(n2/2), wenn der Graph nicht voll verbunden und der Algorithmus geschickter implementiert ist sogar nur O(n*log(n))
![Page 47: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/47.jpg)
![Page 48: Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden](https://reader036.vdocuments.mx/reader036/viewer/2022062318/55204d6949795902118bf3d7/html5/thumbnails/48.jpg)
Binäre Suche; O(log(n))