Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


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

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

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

3 Informatik I/II PVK3 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 linksneues rechts mitte if (value < mitte)if (value > mitte) rechtslinks neues linksrechts … … neue mitte

4 Informatik I/II PVK4 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?

5 Informatik I/II PVK5 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...)

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

7 Informatik I/II PVK7 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

8 Informatik I/II PVK8 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

9 Informatik I/II PVK9 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)

10 Informatik I/II PVK10 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

11 Informatik I/II PVK11 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

12 Informatik I/II PVK12 Spielbaum Max Min

13 Informatik I/II PVK13 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

14 Informatik I/II PVK14 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?

15 Informatik I/II PVK15 Lösung des vorherigen Slide 110 0

16 Informatik I/II PVK16 Minimax-Algorithmus Wir gehen hier davon aus, dass beide Spieler optimal spielen

17 Informatik I/II PVK17 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

18 Informatik I/II PVK18 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

19 Informatik I/II PVK19 α-β-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

20 Informatik I/II PVK20 α-β-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

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

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

23 Informatik I/II PVK23 Lösung des vorherigen Slide (-,) 4 (-,4) -Schnitt 7 (4,) -Schnitt (4,) Schnitt 4

24 Informatik I/II PVK24 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...

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

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

27 Informatik I/II PVK27 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

28 Informatik I/II PVK28 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.

29 Informatik I/II PVK29 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)

30 Informatik I/II PVK30 Aufgabe Sortiere dieses Array mit Heap-Sort Als Hilfe: Schreibe für jeden Schritt den Heap in Baumform

31 Informatik I/II PVK31 Lösung


Herunterladen ppt "Informatik I/II PVK Donnerstag Informatik II, 2. Teil."

Ähnliche Präsentationen


Google-Anzeigen