Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Spielbäume Richard Göbel.

Ähnliche Präsentationen


Präsentation zum Thema: "Spielbäume Richard Göbel."—  Präsentation transkript:

1 Spielbäume Richard Göbel

2 Spieltheorie Berücksichtigung von einem oder mehreren Gegenspielern Spiel beginnt mit Anfangszustand Spieler haben Aktionsmöglichkeiten um gleichzeitig oder wechselseitig den Zustand zu beeinflussen

3 okönomische Anwendungen:
Anwendungsbeispiele okönomische Anwendungen: Erstellen von Angeboten Einsatz absatzpolitischer Instrumente Tarifverhandlungen politische Anwendungen militärische Anwendungen

4 Beispiel: Nim-Spiel Spielregeln: n Hölzchen Spieler nehmen abwechselnd bis zu m Hölzchen auf Sieger ist der Spieler, der das letzte Hölzchen wegnimmt Hier Analyse des Spiels mit: 4 Hölzchen (n = 4) Jeder Spieler darf 1 oder 2 Hölzchen wegnehmen (m = 2)

5 Spielbaum für die 4,2-Version des Nim-Spiels

6 Formale Beschreibung eines Spielbaums
Spieler A und B Menge der Zustände Z = { z1, . . ., zn } Anfangszustand z0 aus Z Endzustände: EA als Teilmenge von Z: A hat gewonnen EB als Teilmenge von Z: B hat gewonnen Folgezustände: NA : Z -> 2Z: Folgezustände für Spieler A NB : Z -> 2Z: Folgezustände für Spieler B

7 Spielbaum: Struktur NA(z0) = { z1, . . ., zn }
NB(z1) = {z11, . . ., z1m }

8 Ermittlung der optimalen Strategie für einen Spielbaum
gesamten Spielbaum erzeugen. Markiere für jeden Endzustand ob A oder B gewonnen hat. Markiere schrittweise alle anderen Zustände, deren Nachfolger bereits markiert wurden: Spieler A am Zug, mindestens ein Nachfolger ist mit A markiert: Markiere den Knoten mit A Spieler A am Zug, alle Nachfolger sind mit B markiert: Markiere den Knoten mit B Spieler B am Zug, mindestens ein Nachfolger ist mit B markiert: Markiere den Knoten mit B Spieler B am Zug, alle Nachfolger sind mit A markiert: Markiere den Knoten mit A

9 Anwenden der Strategie während des Spiels
Spieler A: existiert ein mit A markierter Nachfolger für den aktuellen Zustand, dann wähle diesen Zustand aus (Spiel gewonnen!) sind alle Nachfolger mit B markiert, dann wähle einen beliebigen Zustand aus Spieler B: existiert ein mit B markierter Nachfolger für den aktuellen Zustand, dann wähle diesen Zustand aus (Spiel gewonnen!) sind alle Nachfolger mit A markiert, dann wähle einen beliebigen Zustand aus

10 Problem: Größe des Spielbaums
Tiefe des Baums: Anzahl der Zustände auf einem Pfad Nim-Spiel: Tiefe des Baums gleich Anzahl der Hölzchen (n) Verzweigungsgrad des Baums: Anzahl der Nachfolger für einen Zustand Nim-Spiel: Maximale Anzahl der Hölzchen für einen Zug (m) Obere Schranke für die Anzahl der Zustände in einem Baum: mn 20,5 Variante des Nim-Spiels: 520 = 9,5 1013 Der Spielbaum läßt sich in der Regel nicht vollständig erzeugen!

11 Unvollständiger Spielbaum - Minimax-Verfahren
Der Spielbaum wird nur bis zu einer vorher definierten Tiefe erzeugt. Die Zustände ohne Nachfolger (in der Regel keine Endzustände) werden numerisch bewertet -> Bewertungsfunktion Allen anderen Zustände, deren Nachfolger bereits numerisch Werteenthalten, werden schrittweise wie folgt bewertet (Minimax-Prinzip): Ist Spieler A am Zug, dann wird der Zustand mit dem maximalen Wert aller Nachfolgezustände bewertet Ist Spieler B am Zug, dann wird der Zustand mit dem minimalen Wert aller Nachfolgezustände bewertet

12 Anwenden des Minimax-Verfahrens auf die 10,3-Version des Nim-Spiels

13 Analyse des Minimax-Verfahrens
Die Qualität des Verfahrens ist abhängig von: der gewählten Bewertungsfunktion der Tiefe des unvollständigen Spielbaums Die Anzahl der Zustände wächst exponentiell mit der Tiefe des Baums! Verbesserung des Minimax-Verfahrens mit der Alpha-Beta-Strategie

14 Alpha-Beta-Strategie - Maximum bestimmen
Die weiteren Teilbäume unter zj brauchen nicht mehr betrachtet zu werden!

15 Alpha-Beta-Strategie - Minimum bestimmen
Die weiteren Teilbäume unter zj brauchen nicht mehr betrachtet zu werden!

16 Methoden für die Erzeugung eines Spielbaums
class ReversiBoard { . . . public int assess () {...} public int searchMax(int depth,BoardPos bestMove) {...} public int searchMin(int depth,BoardPos bestMove) public int bestMoveMinMax(byte col,int depth,BoardPos bestMove) {...} }

17 Implementierung des Spielbaums


Herunterladen ppt "Spielbäume Richard Göbel."

Ähnliche Präsentationen


Google-Anzeigen