archetype | title | author | readings | tldr | outcomes | assignments | youtube | fhmedia | |||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
lecture-cg |
Heuristiken |
Carsten Gips (HSBI) |
|
Minimax entwickelt den gesamten Spielbaum. Wenn nicht genug Zeit dafür zur Verfügung steht, kann man die
Suchtiefe begrenzen. Für die Bewertung der Zustände benötigt man eine `Eval`-Funktion, die die Knoten in
der selben Reihenfolge sortieren sollte wie es in der vollständigen Version über die `Utility`-Funktion
geschieht. Die `Eval`-Funktion sollte zudem schnell zu berechnen sein. Typische Varianten für die
`Eval`-Funktion sind gewichtete Features oder ein Nachschlagen in Spieldatenbanken (Spielzustand plus
Bewertung).
Minimax kann auf Spiele mit mehr als zwei Spielern erweitert werden. Dabei versucht dann jeder Spieler für
sich, das Ergebnis des Spiels (aus seiner Sicht) zu maximieren.
Bei Spielen mit Zufall (Würfelereignisse) kann man jedem Würfelereignis eine Wahrscheinlichkeit zuordnen
und damit den jeweils erreichbaren `Max`- oder `Min`-Wert gewichten. Die Summe dieser gewichteten Bewertungen
ist die Bewertung des entsprechenden "Chance"-Knotens, der dann in der darüberliegenden Ebene nach dem
Minimax-Prinzip ausgewertet wird (=> *Expectimax*).
|
|
|
|
-
Einführung neuer Funktionen:
-
Cutoff-Test
stattTerminal-Test
Beispielsweise bei erreichter Tiefe oder Zeitüberschreitung
\smallskip
-
Eval
stattUtility
Bewertung der erreichten Position (statt nur Bewertung des Endzustandes)
-
\bigskip
- Bedingungen an
Eval
:- Endknoten in selber Reihenfolge wie bei
Utility
- Schnell zu berechnen (!)
- Endknoten in selber Reihenfolge wie bei
- Mögliche Evaluierungskriterien:
- Materialwert: Bauer 1, Läufer/Springer 3, Turm 5, Dame 9
- Stellungsbewertung: Sicherheit des Königs, Stellung der Bauern
- Daumenregeln: 3 Punkte Vorteil => sicherer Sieg
\smallskip
-
Nutzung gewichteter Features
$f_i$ : \quad$\operatorname{Eval}(s) = w_1f_1(s) + w_2f_2(s) + \ldots$ - [Beispiel: ]{.notes}
$w_1 = 9$ und$f_1(s)$ = (# weiße Königinnen) - (# schwarze Königinnen)
- [Beispiel: ]{.notes}
\bigskip
-
Alternativ: Speicherung von Positionen plus Bewertung in Datenbanken \newline
=> Lookup mit
$\operatorname{Eval}(s)$ [(statt Berechnung zur Laufzeit)]{.notes}
::: slides \bigskip {width="90%"} :::
[[Tafelbeispiel]{.bsp}]{.slides}
::: notes Hier maximiert jeder Spieler sein eigenes Ergebnis. Im Grunde müsste diese Variante dann besser "Maximax" heissen ...
Wenn es an einer Stelle im Suchbaum mehrere gleich gute (beste) Züge geben sollte, kann der Spieler Allianzen bilden: Er könnte dann einen Zug auswählen, der für einen der Mitspieler günstiger ist. :::
[Quelle: "position-backgammon-decembre" by serialgamer_fr on Flickr.com (CC BY 2.0)]{.origin}
Backgammon: Was ist in dieser Situation der optimale Zug?
::: slides \bigskip {width="90%"} :::
::: notes
Zusätzlich zu den MIN- und MAX-Knoten führt man noch Zufalls-Knoten ein, um
das Würfelergebnis repräsentieren zu können. Je möglichem Würfelergebnis
=> Für Zufallsknoten erwarteten Minimax-Wert (Expectimax) nutzen
[[Tafelbeispiel]{.bsp}]{.slides}
Expectimax-Wert für Zufallsknoten
\bigskip
-
$i$ mögliches Würfelergebnis -
$P(i)$ Wahrscheinlichkeit für Würfelergebnis -
$s_i$ Nachfolgezustand von$C$ gegeben Würfelergebnis$i$
::: notes
Für die normalen Min- und Max-Knoten liefert Expectimax()
die üblichen
Aufrufe von Min-Value()
bwz. Max-Value()
.
Auf wikipedia.org/wiki/Expectiminimax
finden Sie eine Variante mit einem zusätzlichen Tiefenparameter, um bei einer bestimmten
Suchtiefe abbrechen zu können. Dies ist bereits eine erweiterte Version, wo man beim
Abbruch durch das Erreichen der Suchtiefe statt Utility()
eine Eval()
-Funktion
braucht. Zusätzlich kombiniert der dort gezeigte Algorithmus die Funktionen
Expectimax()
, Min-Value()
und Max-Value()
in eine einzige Funktion.
Eine ähnliche geschlossene Darstellung finden Sie im [@Russell2020, S. 212].
Hinweis: Üblicherweise sind die Nachfolger der Zufallsknoten gleich wahrscheinlich. Dann kann man einfach mit dem Mittelwert der Bewertung der Nachfolger arbeiten. :::
- Minimax:
- Kriterien zur Begrenzung der Suchtiefe, Bewertung
Eval
stattUtility
- Erweiterung auf
$>2$ Spieler - Erweiterung auf Spiele mit Zufall: Expectimax
- Kriterien zur Begrenzung der Suchtiefe, Bewertung
::: slides
Unless otherwise noted, this work is licensed under CC BY-SA 4.0.
- Image "position-backgammon-decembre" by serialgamer_fr on Flickr.com (CC BY 2.0) :::