Donnerstag Informatik II, 2. Teil

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

8. Termin Teil B: Wiederholung Begriffe Baum
Punkt-in-Polygon-Verfahren III (R/R+-Baum)
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,
Eine dynamische Menge, die diese Operationen unterstützt,
Polynomial Root Isolation
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
GIN2 SS05 Prof. Dr. W. Conen, Nullsummen-Spiele - Min-Max-Suche - Alpha-Beta-Pruning (späterer Termin)
Claudio Moraga; Gisbert Dittrich
Das LCA – Problem in Suffixbäumen
Algorithmische Anwendung
Kapitel 6: Klassifizierung von Sortiertechniken
7. Natürliche Binärbäume
Kapitel 7. Sortier-Algorithmen
Kapitel 6. Suchverfahren
R. Der - Vorlesung Algorithmen und Datenstrukturen (Magister)
5. Sortier-Algorithmen Vorbemerkungen:
Mathematik des Bridge Tanja Schmedes.
Spielbäume Richard Göbel.
Sortierverfahren Richard Göbel.
Sortierverfahren Richard Göbel.
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
WS Algorithmentheorie 05 - Treaps Prof. Dr. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (19 - Analyse natürlicher Bäume) 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.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (17 – Bäume: Grundlagen und natürliche Suchbäume) Prof. Th. Ottmann.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen 09 - Weitere Sortierverfahren Heapsort-Nachtrag Prof. Th. Ottmann.
Algorithmen und Datenstrukturen
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Kapitel 12 Claudio Moraga, Gisbert Dittrich FBI Unido
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Algorithmen und Komplexität
Minimum Spanning Tree: MST
Vortrag: Ingo Gensch, Mathias Reich am:
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Kakuro Regeln und Strategien
Vortrag über Graphen Von Jörg Hendricks.
LS 2 / Informatik Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Computational Thinking Suchen und Sortieren [Ordnung muss sein…]
2. Die rekursive Datenstruktur Baum 2
Sortieralgorithmen Sortieren von Arrays.
Effiziente Algorithmen
Chaos und Fraktale M. Bostelmann Michael Bostelmann.
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Effiziente Algorithmen
Effiziente Algorithmen
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Einführung in die Informatik für Naturwissenschaftler und Ingenieure
Spieltheorie Mária Némethy.
Dienstag Informatik 1 Tag 2
Freitag Informatik II, 3. Teil Repetition und Prüfungstipps
Mittwoch Informatik II, 1. Teil
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation III Vorlesung 1 WS 2001/02 Punkt-in-Landkarte I (Streifenkarte)
Vom graphischen Differenzieren
Algorithmen und Datenstrukturen 1 SS 2002
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
IntelliVideo1 / 25 IntelliVideo Der intelligente Videorekorder.
Der A*-Algorithmus.
Binärbäume.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 1 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Laufzeitverhalten beim Sortieren
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Donnerstag Informatik II, 2. Teil Informatik I/II PVK Donnerstag Informatik II, 2. Teil

Ablauf heute Binärsuche Backtracking Spieltheorie, Spielbäume Minimax-Algorithmus α-β-Algorithmus Mergesort Heap-Sort Informatik I/II PVK

Binärsuche Wir suchen ein Element in einem sortierten Array Dabei vergleichen wir jeweils die Mitte des Arrays mit dem gesuchten Wert und können so in jedem Schritt den Suchraum halbieren links mitte rechts if (value < mitte) if (value > mitte) links neue mitte neues rechts neues links neue mitte rechts … Informatik I/II PVK …

Optimierte Binärsuche Die Binärsuche lässt sich optimieren indem wir die „Mitte“ vom gesuchten Wert abhängig machen Wir nehmen an, dass die Werte ungefähr gleichmässig verteilt sind Wir verwenden den Ansatz Ist der gesuchte Wert eher gross oder klein, verglichen mit dem Wert ganz links und dem Wert ganz rechts? Informatik I/II PVK

Backtracking Wir suchen eine Lösung zu einem Problem in einem grossen, endlichen Lösungsraum Das Prinzip ist trial and error Besser als Brute Force Den Lösungsraum stellen wir mit einem Baum dar (jeder Schritt ist ein Knoten) Sind wir in einem Blatt angekommen, aber haben die richtige Lösung noch nicht, gehen wir wieder hoch und probieren etwas anderes Anwendungsgebiete Wegfindung in Labyrinths Rätsel (Sudoku ...) Informatik I/II PVK

Backtracking Der Zustandsbaum wird „depth first“ durchlaufen Wenn möglich frühzeitig abbrechen Verwende Nebenbedingungen für Tree-Pruning Verwende problembezogene Heuristiken Informatik I/II PVK

Backtracking an der Prüfung Meistens ist das durchführen aller Möglichkeiten kein Problem Die Schwierigkeit liegt beim Finden der Nebenbedingungen, damit frühzeitig abgebrochen werden kann. Labyrinth: Nicht durch Wände gehen! Rätsel: Nur gültige Variationen testen. Regeln in Arrays oder so Informatik I/II PVK

Das n-Damen Problem Wenn wir eine Dame setzen so sind die Regeln, dass wir in der selben Spalte, Zeile und Diagonalen keine weitere setzen dürfen. Es gilt also diese Züge irgendwie zu blockieren. Wir können 3 Arrays machen (für die beiden Diagonalen und für die Zeile) Bei der Suche nach einem gültigen Zug setzen wir dann in jeder Spalte eine Dame sofern möglich, ansonsten kehren wir ohne Lösung zurück Informatik I/II PVK

Spieltheorie Eine Theorie aus der Soziologie Untersuchung von rationalem Verhalten von zwei oder mehr konkurrierenden Parteien Gewinnmaximierung Wirtschaftstheorie Politik und Militär Kooperationsuntersuchung (Tit-for-Tat) Informatik I/II PVK

Viele traditionelle Brettspiele fallen in diese Kategorie Endliche rein strategische 2-Personen-Nullsummenspiel mit vollständiger Information Viele traditionelle Brettspiele fallen in diese Kategorie Kein Zufall, keine Wahrscheinlichkeiten Der Gewinn des einen Spielers ist jeweils der Verlust des anderen. Eine (End-)Situation braucht eine payoff function Die Strategien des Gegners sind den eigenen Interessen entgegengesetzt Niemand besitzt mehr Informationen wie der andere (z.B.: keine verdeckten Karten) somit kann man sich in die Rolle des Gegners rein versetzen Informatik I/II PVK

Spielbäume Zwei Spieler „Min“ und „Max“ ziehen abwechselnd Für den Baum niveauweise Min- oder Max-Knoten Blätter des Spielbaumes beschreiben Endsituation Max will ein Blatt erreichen, welches einen möglichst hohen Wert hat Min wird jedoch abwechselnd den für Max schlechtmöglichsten Spielzug machen! Schadensbegrenzung! Mit vollständiger Information lässt sich eine Gewinnstrategie finden Informatik I/II PVK

Spielbaum Max Min Max 4 -1 8 -5 1 -4 7 Informatik I/II PVK

Optimaler Spieler Spielen beide Spieler optimal, so ist für jeden Spielzug bekannt was gespielt wird Beide Spieler verfolgen ideale Strategie Spiele werden so sehr langweilig und enden immer in Unentschieden (falls möglich) Zum Glück sind Spielbäume aber oft so gross, dass eine gute Strategie nur geschätzt werden kann, weil Informationen fehlen Ausnahme: es sind nur noch wenige Züge zu spielen Informatik I/II PVK

Aufgabe Gegeben ist folgende Situation eines Tic-Tac-Toe Spieles Als nächstes spielt X Zeichne Spielbaum aller möglichen Züge und markiere welcher Spieler gerade am Zug ist Ein Sieg gibt nun 1 Punkt, ein Unentschieden 0 Punkte und Verlieren gibt -1 Punkt. Überlege wie wir mit Hilfe des Baumes eine optimale Strategie wählen können Wie wird diese Partie wohl enden? Informatik I/II PVK

Lösung des vorherigen Slide -1 -1 Informatik I/II PVK 1 1

Minimax-Algorithmus 1 -5 1 4 8 -5 1 7 4 -1 8 -5 1 -4 7 Wir gehen hier davon aus, dass beide Spieler optimal spielen Informatik I/II PVK

Minimax-Algorithmus Den Minimaxwert v(k) für einen Knoten k finden wir wie folgt Für Blätter: v(k) entspricht der payoff function Für Knoten in Max-Niveau: wähle max(v(n)) mit n ein direkter Nachfolger von k Für Knoten in Min-Niveau: wähle min(v(n)) mit n ein direkter Nachfolger von k Per Rekursion also in die Tiefe gehen bis wir den Wert aus den Blättern lesen können Die Wurzel enthält also jeweils den Wert den Max von dieser Spielsituation mindestens noch erreichen kann Informatik I/II PVK

Auswertung von Spielbäumen Da Spielbäume so gross sind werden sie nur bis zu einer gewissen Tiefe ausgewertet und dann wird der Wert der Blätter des Teilbaumes geschätzt Die Wahl der Tiefe kann von verfügbaren Zeit oder momentaner Spielsituation abhängen Für eine gute Strategie wollen wir den Baum möglichst tief durchsuchen, aber aussichtslose Spielzüge schnell verwerfen Der ausgewertete Spielbaum wird so „schlank“ gehalten Informatik I/II PVK

α-β-Algorithmus Wir wollen uns unnötige Rekursionsschritte ersparen und so Unterbäume abschneiden, die uns keine besseren Lösungen mehr bieten Der α-β-Algorithmus verändert den Minimax-Wert nicht, somit werden nur Knoten expandiert, die wir auch wirklich in Erwägung ziehen würden Man unterscheidet zwischen einem α- und β-Schnitt Ein α-Schnitt wird gemacht, falls Max bereits eine bessere Lösung kennt, als Min ihm in einem Baum ermöglicht und somit den Weg nicht einschlagen würde Ein β-Schnitt wird dann gemacht, wenn Min bereits eine für Max schlechtere Lösung kennt und ein Unterbaum eine bessere Lösung für Max liefern würde Informatik I/II PVK

α-β-Schranken α-β-Schranken sind die Werte, die wir bei der Rekursion mitgeben. Die α-Schranke repräsentiert einen bereits bekannten Gewinn den Max garantiert gewinnen kann Die α-Schranke wird von Max gesetzt Max macht jeweils einen β-Schnitt Die β-Schranke repräsentiert den Gewinn, den Min für Max maximal zulassen würde Die β-Schranke wird von Min gesetzt Min macht jeweils einen α-Schnitt Somit streichen wir einen Baum, sobald dessen Auswertung ausserhalb von den α-β-Schranken liegen oder Informatik I/II PVK

Effizienz des α-β-Algorithmus Knoten sollten auf- bzw. absteigend sortiert sein, damit möglichst viele Schnitte gemacht werden können Bester Fall mit α-β = Informatik I/II PVK

Aufgabe Werte folgenden Spielbaum mit Hilfe des α-β-Algorithmus aus Wo werden welche Schnitte gemacht und warum? Schreibt die α-β-Schranken für jede Kante auf Informatik I/II PVK

Lösung des vorherigen Slide 4 (4,∞) (-∞,∞) (4,∞) 4 3 2 (4,∞) (4,∞) 𝛂-Schnitt 𝛂-Schnitt (-∞,∞) (-∞,4) 7 2 (-∞,4) 𝛃-Schnitt (4,∞) (4,∞) Informatik I/II PVK

Mergesort Zwei sortierte Listen sortierbarer Elemente lassen sich einfach in eine Liste vereinen (mergen) 2, 5, 6, 7, 9, 12, 15 4, 8, 10, 13, 16, 17 Falls wir also eine unsortierte Liste haben, dann können wir diese jeweils halbieren und die beiden Hälften dann mit Mergesort halbieren Das lässt sich rekursiv machen → Wir halbieren so lange, bis wir nur noch zwei Elemente in der Teilliste haben und das sortieren trivial geworden ist Mit Mergesort fügen wir dann alle Teillisten wieder zusammen Aber wir können es auch ohne Rekursion machen 2 , 4 , 5 , 6 , 7 , 8 ... Informatik I/II PVK

Aufgabe Mergesort von Hand Wie viele Schritte benötigen wir für ein Array der Länge n? Informatik I/II PVK

Lösung des vorherigen Slide 15 21 9 63 44 45 8 88 67 98 6 45 62 9 15 21 63 8 44 45 88 6 45 67 98 62 8 9 15 21 44 45 63 88 6 45 62 67 98 6 8 9 15 21 44 45 45 62 63 67 88 98 Informatik I/II PVK

Heap Die Heap Datenstruktur ist ein Binärbaum, dessen Niveaus alle voll ausgefüllt sind (bis auf das letzte) Für jede Wurzel jedes Unterbaums gilt, dass die Wurzel die kleinste Zahl des Baumes ist Alle Pfade von Blatt zu Wurzel sind also monoton fallend Wir können einen Heap niveauweise in in ein Array speichern, die Wurzel hat dann den Index 1 Direkte Nachfolger des i-ten Knoten haben dann Indizes 2i und 2i+1 Informatik I/II PVK

Heap 2 Um einen neuen Wert in den Heap zu speichern, kommt er an die letzte Stelle des untersten Niveaus und wandert dann den Baum hoch, indem er sich mit seinem Vorgänger austauscht, bis der Wert eines Vorgängers kleiner ist als der Wert selbst. Um das Minimum des Baumes zu kriegen, nimmt man einfach die Wurzel des Heaps weg. Um den Baum wiederherzustellen, nimmt man den untersten, letzten Knoten und lässt ihn nach unten wandern, indem er sich jeweils mit dem kleineren Nachfolger austauscht. Das macht er so lange, bis die Werte beider Nachfolger grösser sind als der Wert selbst. Informatik I/II PVK

Heap-Sort Um eine unsortierte Reihe der Länge n zu sortieren wird Ein Element nach dem andern dem Heap hinzugefügt und dann n mal get_min auf den Heap angewendet Ist die Zahlenfolge in einem Array gegeben, so benötigt diese Methode keinen zusätzlichen Platz Ausserdem ist dieser Algorithmus sehr effizient (sehen wir morgen) Informatik I/II PVK

Aufgabe Sortiere dieses Array mit Heap-Sort Als Hilfe: Schreibe für jeden Schritt den Heap in Baumform 7 4 3 2 5 Informatik I/II PVK

Lösung 7 4 3 2 5 7 4 3 2 5 4 7 3 2 5 3 7 4 2 5 4 7 2 5 3 2 4 7 3 5 2 4 7 3 5 2 3 4 7 5 3 5 4 7 2 4 5 7 3 2 5 7 4 3 2 7 5 4 3 2 7 5 4 3 2 Informatik I/II PVK