Spielbäume Richard Göbel.

Slides:



Advertisements
Ähnliche Präsentationen
Der R-Baum Richard Göbel.
Advertisements

Der k-d-Baum Richard Göbel.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (26-Graphenalgorithmen: Wiederholung und Übung) Prof. Th. Ottmann.
Schwierigkeit von Aufgabenstellungen
GIN2 SS05 Prof. Dr. W. Conen, Nullsummen-Spiele - Min-Max-Suche - Alpha-Beta-Pruning (späterer Termin)
Constraint Satisfaction Problems
FH-Hof Der B-Baum Richard Göbel. FH-Hof Wahl des Verzweigungsgrad Verzweigungsgrad kann größer als 2 sein v Nachfolger für einen Knoten v-1 Werte in einem.
Der B-Baum Richard Göbel.
7. Natürliche Binärbäume
Suche in Texten (Stringsuche )
Prinzipal-Agenten Beziehungen
Mathematik des Bridge Tanja Schmedes.
Threads Richard Göbel.
Binäre Bäume Richard Göbel.
Java: Reversi Spielbrett
Sortieren mit Binären Bäumen
FH-Hof Extensible Markup Language Richard Göbel. FH-Hof Extensible Markup Language XML XML ist universeller Ansatz für die Strukturierung von Zeichenketten.
Suchbäume Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Grammatiken Richard Göbel. FH-Hof Begriffe Eine Grammatik definiert die Struktur (Syntax) einer Zeichenkette Eine Grammatik definiert nicht die.
FH-Hof Künstliche Intelligenz - Suchbäume Richard Göbel.
FH-Hof Deadlocks Richard Göbel. FH-Hof Deadlock - Definition Menge von Prozessen ist an einem Deadlock beteiligt: wenn jeder Prozess in dieser Menge auf.
Java: Dynamische Datentypen
FH-Hof Reversi: Erweiterungen für den AutoClient Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Effizienz - Grundlagen Richard Göbel. FH-Hof Inhalt Einführung Aufwand für Anfragen ohne Indexierung Indexstrukturen für Anfragen an eine Tabelle.
Parser für CH3-Sprachen
Motivation Richard Göbel.
Der R-Baum Richard Göbel.
FH-Hof Verwaltung von Zeichenketten Richard Göbel.
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Effizienz: Indexstrukturen
FH-Hof Analyse des R-Baums Richard Göbel. FH-Hof Ansatz Annahme: Die Bearbeitungszeit für eine Anfrage wird dominiert von der Ladezeit der Knoten von.
Java: Referenzen und Zeichenketten
Baumstrukturen Richard Göbel.
Java: Grundlagen der Objektorientierung
REKURSION + ITERATION. Bemerkung: Die in den folgenden Folien angegebenen "Herleitungen" sind keine exakten Beweise, sondern Plausibilitätsbetrachtungen.
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.
Minimum Spanning Tree: MST
Teil 5: Kollisionsvermeidung & Wegplanung
Teil I: Uninformierte Suche
Analyse eines Handballspielzuges
FH-Hof Analyse des R-Baums - Teil 1 Richard Göbel.
Template Pattern Richard Göbel.
FH-Hof 1 XML-Parser Richard Göbel. FH-Hof 2 XML-Parser- DOM Object Tree Parser Objekt der Klasse 'DocumentBuilderFactory' mit 'newInstance()' erzeugen.
FH-Hof Algorithmen und Datenstrukturen - Einführung Richard Göbel.
FH-Hof Adapter & Facade Pattern Richard Göbel. FH-Hof Motivation Gegeben ist eine Klasse mit vorhandenen Methoden Gefordert ist eine Klasse, die ein bestimmtes.
Das Nim-Spiel es wird auf der ganzen Welt gespielt
Computational Thinking Wie spielen Computer? [Sind sie unbesiegbar?]
Splay Trees Von Projdakov Benjamin.
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 05/ /23.1.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Informatik Datenstruktur Graph 3.3 Durchlaufen von Graphen
Das Traveling Salesman Problem (TSP)
Inhalt Einordnung und Funktion der lexikalische Analyse Grundlagen
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Datenstrukturen für den Algorithmus von.
Suche in Spielen mit unvollständiger Information.
Der A*-Algorithmus.
Gliederung der Vorlesung
Programmiersprachen II Fortsetzung Datenstrukturen Balancierte Bäume 3 Prof. Dr. Reiner Güttler Fachbereich GIS HTW.
DER LETZTE STRICH Michael Plattner; Simon Hofer. Spielregeln Es werden fünf Zeilen lang Striche angeordnet In der untersten fünf Striche, dann vier, dann.
Raphael Fischer Informatik II - Übung 07 Raphael Fischer
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Spielbäume Richard Göbel

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

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

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)

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

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

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

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

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

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!

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

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

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

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

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

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) {...} }

Implementierung des Spielbaums