Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Donnerstag Informatik II, 2. Teil

Ähnliche Präsentationen


Präsentation zum Thema: "Donnerstag Informatik II, 2. Teil"—  Präsentation transkript:

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

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

3 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

4 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

5 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

6 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

7 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

8 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

9 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

10 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

11 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

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

13 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

14 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

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

16 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

17 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

18 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

19 α-β-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

20 α-β-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

21 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

22 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

23 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

24 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

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

26 Lösung des vorherigen Slide
Informatik I/II PVK

27 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

28 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

29 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

30 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

31 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


Herunterladen ppt "Donnerstag Informatik II, 2. Teil"

Ähnliche Präsentationen


Google-Anzeigen