Routenplanung & Komplexität. Lernziele Sie haben den Dijkstra-Algorithmus nachvollzogen. Sie haben das Konzept der Komplexität eines Algorithmus verstanden.

Slides:



Advertisements
Ähnliche Präsentationen
Christian Scheideler SS 2009
Advertisements

Grundlagen des A*-Algorithmus und Anwendung in der Routenplanung
Informatik II: Algorithmen und Datenstrukturen SS 2013
Rekursion: Rekurrenz: Algorithmen rufen sich selbst (rekursiv) auf.
Falls Algorithmen sich selbst rekursiv aufrufen, so kann ihr Laufzeitverhalten bzw. ihr Speicherplatzbedarf in der Regel durch eine Rekursionsformel (recurrence,
Schnelle Matrizenoperationen von Christian Büttner
Dr. Brigitte Mathiak Kapitel 10 Physische Datenorganisation.
3. Kapitel: Komplexität und Komplexitätsklassen
Verifizieren versus Berechnen
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Halbzeit: Kurze Wiederholung
Bestimmung des Next-Arrays im KMP-Algorithmus
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Tobias Lauer.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (02 – Funktionenklassen) Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen Halbzeit: Was haben wir bisher gelernt? Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (27 – Kürzeste Wege) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 4 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.
1 Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 – Kürzeste Wege) T. Lauer.
Seminar parallele Programmierung SS 2003
Algorithmische Geometrie
High Performance = Innovative Computer Systems + Efficient Algorithms Friedhelm Meyer auf der Heide 1 HEINZ NIXDORF INSTITUT Universität Paderborn Algorithmen.
Algorithmen und Komplexität
Christian Schindelhauer
Routenplanung & Komplexität.
Suchen & Sortieren mit Arrays.
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Ideen der Informatik Suchen und Sortieren [Ordnung muss sein…]
Effiziente Algorithmen
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Effiziente Algorithmen
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
Effiziente Algorithmen
Computational Thinking Online Algorithmen [Was ist es wert, die Zukunft zu kennen?] Kurt Mehlhorn Konstantinos Panagiotou.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Beweissysteme Hartmut Klauck Universität Frankfurt WS 06/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Polynome und schnelle Fourier-Transformation
Komplexität von Algorithmen
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
1 Albert-Ludwigs-Universität Freiburg Rechnernetze und Telematik Prof. Dr. Christian Schindelhauer Informatik III Christian Schindelhauer Wintersemester.
Das Traveling Salesman Problem (TSP)
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Routenplanung & Komplexität.
ResA am Arbeitsplatz Das Vorgehen ist angelehnt an „5 S“ und bietet Ihnen die Möglichkeit das Konzept der 5 Disziplinen ressourcenschonenden Arbeitens.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Routenplanung & Komplexität.
Das Problem des Handlungsreisenden
Vorlesung AVL-Bäume/Algorithmen-
Vorlesung AVL-Bäume/Algorithmen-
TexPoint fonts used in EMF.
TexPoint fonts used in EMF.
 Präsentation transkript:

Routenplanung & Komplexität

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

Routenplanung Es geht darum, anhand einer Strassenkarte den kürzesten Weg zwischen zwei Orten zu finden Edsger Dijkstra Edsger Dijkstra fand schon 1956 eine effiziente Lösung für dieses Problem, die auch heute noch in den meisten Navigationsgeräten Anwendung findet

Was ist ein Algorithmus?

Schritt 1: Abstraktion (= Reduzierung des Problems auf das Wesentliche)

Man kann noch weiter Abstrahieren Ziel: möglichst wenige, gleichförmige Elemente

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

Es gibt bessere Lösungen... aber wie? Idee???

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

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

Ergebnis : allerdings mit einem Fehler!

Schritt 3: Formalisieren Beispielsweise als Flow Chart Pseudocode Struktogramm – s. Arbeitsblätter

Aufgabe Schauen 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?

Aufgabe: 1.Bestimmen sie eines der Hotels (gelbe Knoten) als Startpunkt 2.Erstellen Sie eine Distanztabelle für die Strecken zu allen anderen Hotels (Lösungen für A, G & K im pdf)

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?

Komplexität & Big-O-Notation Das Problem des Handlungsreisenden (travelling salesman): Berechne die kürzeste Strecke, die durch mehrere vorgegebene Orte führt

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?

Laufzeitabschätzung Wir 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 Lorenz Julian Samuel Niruban Aymar Joël Slavko Manuel Nathanael Anselm Niko

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 Lorenz Julian Samuel Niruban Aymar Joël Slavko Manuel Nathanael Anselm Niko

Algorithmus Lineare Suche Worst case? Laufzeit – n = 10? – n = 20? – n = 100? – allgemein? O(n) (n verdoppeln verdoppelt Laufzeit)

Laufzeitabschätzung Wir 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 Lorenz Julian Samuel Niruban Aymar Joël Slavko Manuel Nathanael Anselm Niko Allgemeine Laufzeit?

O-Notation Wir 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( n 2 )

O-Notation Vereinfachungsregeln : Addition f(n) = n + 3 O(n) f(n) = n 2 + 3n O(n 2 ) Multiplikation f(n) = 3n O(n) f(n) = n 2 * 3n O(n 3 ) 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

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

Berechenbarkeit von Algorithmen prinzipiell nicht berechenbar prinzipiell berechenbar, praktisch nicht praktisch berechenbar 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?

Komplexitätsklassen

noch praktikabel nicht mehr praktikabel

Berechenbarkeit von Algorithmen prinzipiell nicht berechenbar P Die 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 Probleme muss diese Frage nur an einem einzige Beispiel beantwortet werden! NP-v NP-h NP?...

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 NPP) nicht berechen bar NP P

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.Millennium-Probleme 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?

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?

Vollständige Wege in Graphen Wege 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.)

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) n 2 /2 O(n 2 ) Bei nicht vollständig verknüpften Graphen und geschickter Implementierung: O(n x log(n))

Welche Komplexität hat Routenplanung... mit brute force? O(n!), also NP mit dem Dijkstra Algorithmus? O(n 2 ), also P genauer: O(n 2 /2), wenn der Graph nicht voll verbunden und der Algorithmus geschickter implementiert ist sogar nur O(n*log(n))

Aufgaben 1.Wie ist die Problemklasse P definiert? 2.Wie ist die Problemklasse NP definiert? 3.Sie wollen in einem dicken Telefonbuch eine Nummer nachschlagen. Wie machen sie das (algorithmus) und wie lange brauche sie (in O-Notation angeben)? 4.Wir wollen eine n-stöckige Pyramide aus Getränke- Kisten bauen. Wie lautet die Laufzeit in O-Notation?

Binäre Suche; O(log(n))

Turm von Hanoi (original mit 64 Scheiben) Anzahl Züge: 3 Scheiben 7 Züge n Scheiben 2 n -1 Züge

Verstehen sie den Witz jetzt besser? Das Problem des Handlungsreisenden (travelling salesman)

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