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

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

Embed Size (px)

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

  • Folie 1
  • Informatik I/II PVK Donnerstag Informatik II, 2. Teil
  • Folie 2
  • Informatik I/II PVK2 Ablauf heute Binrsuche Backtracking Spieltheorie, Spielbume Minimax-Algorithmus --Algorithmus Mergesort Heap-Sort
  • Folie 3
  • Informatik I/II PVK3 Binrsuche Wir suchen ein Element in einem sortierten Array Dabei vergleichen wir jeweils die Mitte des Arrays mit dem gesuchten Wert und knnen so in jedem Schritt den Suchraum halbieren linksneues rechts mitte if (value < mitte)if (value > mitte) rechtslinks neues linksrechts neue mitte
  • Folie 4
  • Informatik I/II PVK4 Optimierte Binrsuche Die Binrsuche lsst sich optimieren indem wir die Mitte vom gesuchten Wert abhngig machen Wir nehmen an, dass die Werte ungefhr gleichmssig 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?
  • Folie 5
  • Informatik I/II PVK5 Backtracking Wir suchen eine Lsung zu einem Problem in einem grossen, endlichen Lsungsraum Das Prinzip ist trial and error Besser als Brute Force Den Lsungsraum stellen wir mit einem Baum dar (jeder Schritt ist ein Knoten) Sind wir in einem Blatt angekommen, aber haben die richtige Lsung noch nicht, gehen wir wieder hoch und probieren etwas anderes Anwendungsgebiete Wegfindung in Labyrinths Rtsel (Sudoku...)
  • Folie 6
  • Informatik I/II PVK6 Backtracking Der Zustandsbaum wird depth first durchlaufen Wenn mglich frhzeitig abbrechen Verwende Nebenbedingungen fr Tree-Pruning Verwende problembezogene Heuristiken
  • Folie 7
  • Informatik I/II PVK7 Backtracking an der Prfung Meistens ist das durchfhren aller Mglichkeiten kein Problem Die Schwierigkeit liegt beim Finden der Nebenbedingungen, damit frhzeitig abgebrochen werden kann. Labyrinth: Nicht durch Wnde gehen! Rtsel: Nur gltige Variationen testen. Regeln in Arrays oder so
  • Folie 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 drfen. Es gilt also diese Zge irgendwie zu blockieren. Wir knnen 3 Arrays machen (fr die beiden Diagonalen und fr die Zeile) Bei der Suche nach einem gltigen Zug setzen wir dann in jeder Spalte eine Dame sofern mglich, ansonsten kehren wir ohne Lsung zurck
  • Folie 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 Militr Kooperationsuntersuchung (Tit-for-Tat)
  • Folie 10
  • Informatik I/II PVK10 Endliche rein strategische 2-Personen- Nullsummenspiel mit vollstndiger 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
  • Folie 11
  • Informatik I/II PVK11 Spielbume Zwei Spieler Min und Max ziehen abwechselnd Fr den Baum niveauweise Min- oder Max-Knoten Bltter des Spielbaumes beschreiben Endsituation Max will ein Blatt erreichen, welches einen mglichst hohen Wert hat Min wird jedoch abwechselnd den fr Max schlechtmglichsten Spielzug machen! Schadensbegrenzung! Mit vollstndiger Information lsst sich eine Gewinnstrategie finden
  • Folie 12
  • Informatik I/II PVK12 Spielbaum 48-51-47 Max Min
  • Folie 13
  • Informatik I/II PVK13 Optimaler Spieler Spielen beide Spieler optimal, so ist fr jeden Spielzug bekannt was gespielt wird Beide Spieler verfolgen ideale Strategie Spiele werden so sehr langweilig und enden immer in Unentschieden (falls mglich) Zum Glck sind Spielbume aber oft so gross, dass eine gute Strategie nur geschtzt werden kann, weil Informationen fehlen Ausnahme: es sind nur noch wenige Zge zu spielen
  • Folie 14
  • Informatik I/II PVK14 Aufgabe Gegeben ist folgende Situation eines Tic-Tac-Toe Spieles Als nchstes spielt X Zeichne Spielbaum aller mglichen Zge 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 whlen knnen Wie wird diese Partie wohl enden?
  • Folie 15
  • Informatik I/II PVK15 Lsung des vorherigen Slide 110 0
  • Folie 16
  • Informatik I/II PVK16 Minimax-Algorithmus 1 -51 48 17 48-51-47 Wir gehen hier davon aus, dass beide Spieler optimal spielen
  • Folie 17
  • Informatik I/II PVK17 Minimax-Algorithmus Den Minimaxwert v(k) fr einen Knoten k finden wir wie folgt Fr Bltter: v(k) entspricht der payoff function Fr Knoten in Max-Niveau: whle max(v(n)) mit n ein direkter Nachfolger von k Fr Knoten in Min-Niveau: whle min(v(n)) mit n ein direkter Nachfolger von k Per Rekursion also in die Tiefe gehen bis wir den Wert aus den Blttern lesen knnen Die Wurzel enthlt also jeweils den Wert den Max von dieser Spielsituation mindestens noch erreichen kann
  • Folie 18
  • Informatik I/II PVK18 Auswertung von Spielbumen Da Spielbume so gross sind werden sie nur bis zu einer gewissen Tiefe ausgewertet und dann wird der Wert der Bltter des Teilbaumes geschtzt Die Wahl der Tiefe kann von verfgbaren Zeit oder momentaner Spielsituation abhngen Fr eine gute Strategie wollen wir den Baum mglichst tief durchsuchen, aber aussichtslose Spielzge schnell verwerfen Der ausgewertete Spielbaum wird so schlank gehalten
  • Folie 19
  • Informatik I/II PVK19 --Algorithmus Wir wollen uns unntige Rekursionsschritte ersparen und so Unterbume abschneiden, die uns keine besseren Lsungen mehr bieten Der --Algorithmus verndert den Minimax-Wert nicht, somit werden nur Knoten expandiert, die wir auch wirklich in Erwgung ziehen wrden Man unterscheidet zwischen einem - und -Schnitt Ein -Schnitt wird gemacht, falls Max bereits eine bessere Lsung kennt, als Min ihm in einem Baum ermglicht und somit den Weg nicht einschlagen wrde Ein -Schnitt wird dann gemacht, wenn Min bereits eine fr Max schlechtere Lsung kennt und ein Unterbaum eine bessere Lsung fr Max liefern wrde
  • Folie 20
  • Informatik I/II PVK20 --Schranken --Schranken sind die Werte, die wir bei der Rekursion mitgeben. Die -Schranke reprsentiert einen bereits bekannten Gewinn den Max garantiert gewinnen kann Die -Schranke wird von Max gesetzt Max macht jeweils einen -Schnitt Die -Schranke reprsentiert den Gewinn, den Min fr Max maximal zulassen wrde 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
  • Folie 21
  • Informatik I/II PVK21 Effizienz des --Algorithmus Knoten sollten auf- bzw. absteigend sortiert sein, damit mglichst viele Schnitte gemacht werden knnen Bester Fall mit - =
  • Folie 22
  • Informatik I/II PVK22 Aufgabe Werte folgenden Spielbaum mit Hilfe des --Algorithmus aus Wo werden welche Schnitte gemacht und warum? Schreibt die --Schranken fr jede Kante auf
  • Folie 23
  • Informatik I/II PVK23 Lsung des vorherigen Slide (-,) 4 (-,4) -Schnitt 7 (4,) -Schnitt (4,) 3 2 2 -Schnitt 4
  • Folie 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 knnen wir diese jeweils halbieren und die beiden Hlften dann mit Mergesort halbieren Das lsst 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 fgen wir dann alle Teillisten wieder zusammen Aber wir knnen es auch ohne Rekursion machen 2, 4, 5, 6, 7, 8...
  • Folie 25
  • Informatik I/II PVK25 Aufgabe Mergesort von Hand Wie viele Schritte bentigen wir fr ein Array der Lnge n?
  • Folie 26
  • Informatik I/II PVK26 Lsung 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
  • Folie 27
  • Informatik I/II PVK27 Heap Die Heap Datenstruktur ist ein Binrbaum, dessen Niveaus alle voll ausgefllt sind (bis auf das letzte) Fr 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 knnen 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
  • Folie 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 Vorgnger austauscht, bis der Wert eines Vorgngers 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 lsst ihn nach unten wandern, indem er sich jeweils mit dem kleineren Nachfolger austauscht. Das macht er so lange, bis die Werte beider Nachfolger grsser sind als der Wert selbst.
  • Folie 29
  • Informatik I/II PVK29 Heap-Sort Um eine unsortierte Reihe der Lnge n zu sortieren wird Ein Element nach dem andern dem Heap hinzugefgt und dann n mal get_min auf den Heap angewendet Ist die Zahlenfolge in einem Array gegeben, so bentigt diese Methode keinen zustzlichen Platz Ausserdem ist dieser Algorithmus sehr effizient (sehen wir morgen)
  • Folie 30
  • Informatik I/II PVK30 Aufgabe Sortiere dieses Array mit Heap-Sort Als Hilfe: Schreibe fr jeden Schritt den Heap in Baumform 25 0347
  • Folie 31
  • Informatik I/II PVK31 Lsung 25 0347 25 034 2503 250 2 5 5 7 7 7 7 7 7 7 7 7 7 7 7 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 0 0 0 0 0 0 0 0 0 5