Spiele und adversarielle Suche
MittelEinheit 4 von 10 in Kurs: Künstliche Intelligenz – Suche, Logik, Wahrscheinlichkeit und Lernen
Was du lernst
- Formuliere ein Spiel mit abwechselnden Zügen präzise, ordne es anhand der Eigenschaften ein, die über das passende Suchverfahren entscheiden, und stelle seine möglichen Spielverläufe als Spielbaum dar.
- Formuliere ein Spiel und ordne es einem Spieltyp zuNotiere die Bestandteile, die ein Spiel definieren, und unterscheide deterministische und stochastische Spiele, Spiele mit perfekter und imperfekter Information sowie Nullsummen- und Nichtnullsummenspiele.
- Erstelle und interpretiere einen SpielbaumZeichne den Baum der Züge eines Spiels, verwende Halbzüge, Tiefe und Verzweigungsfaktor korrekt und schätze die Größe eines vollständigen Spielbaums.
- Formuliere ein Spiel und ordne es einem Spieltyp zu
- Berechne Minimax-Werte, um den besten Zug gegen einen perfekt spielenden Gegner zu finden, implementiere den Algorithmus und erweitere die Idee auf Spiele mit mehreren Spielern und jeweils eigenem Nutzen.
- Berechne Minimax-Werte und die Minimax-EntscheidungÜbertrage Werte von den Blättern eines Spielbaums nach oben, um den Minimax-Wert jeder Stellung und den Zug zu bestimmen, den MAX spielen sollte.
- Implementiere die Minimax-SucheSetze die Minimax-Definition in einen rekursiven Tiefensuche-Algorithmus um, gib seinen Zeit- und Speicherbedarf an und vermeide die üblichen Implementierungsfehler.
- Durchsuche Spielbäume für mehrere Spieler mit jeweils eigenem NutzenNutze Nutzenvektoren zur Zugauswahl, wenn mehr als zwei Spieler teilnehmen oder die Interessen der Spieler nicht strikt entgegengesetzt sind.
- Berechne Minimax-Werte und die Minimax-Entscheidung
- Überspringe Teile des Spielbaums, die die Entscheidung nicht ändern können, vollziehe Alpha-Beta von Hand nach und sortiere Züge so, dass die Beschneidung möglichst viel Arbeit spart.
- Vollziehe die Alpha-Beta-Beschneidung nachVerfolge bei der Suche Alpha und Beta, erkenne, wann ein Teilbaum beschnitten werden kann, und erkläre, warum das Ergebnis mit Minimax übereinstimmt.
- Sortiere Züge für eine wirksame BeschneidungErkläre, wie die Zugreihenfolge bestimmt, wie viel Alpha-Beta einspart, und nutze Sortierheuristiken, iterative Vertiefung und Transpositionstabellen.
- Vollziehe die Alpha-Beta-Beschneidung nach
- Beende die Suche vor dem Spielende, schätze den Wert nicht beendeter Stellungen mit einer Bewertungsfunktion und gehe mit den Fehlern um, die eine Tiefenbeschränkung verursacht.
- Entwickle eine BewertungsfunktionErstelle eine Bewertungsfunktion aus Merkmalen einer Stellung, berechne sie für konkrete Stellungen und prüfe, ob sie die Anforderungen an eine gute Bewertung erfüllt.
- Beende die Suche an geeigneten StellenErsetze den Terminaltest durch einen Abbruchtest, suche innerhalb einer Zeitgrenze tiefer und erkenne und verringere den Horizonteffekt und andere Fehler einer Tiefenbeschränkung.
- Entwickle eine Bewertungsfunktion
- Ergänze Spielbäume um Zufallsknoten, berechne Expectiminimax- und Expectimax-Werte und entwickle Bewertungsfunktionen, die beim Mitteln von Ergebnissen ihre Bedeutung behalten.
- Durchsuche Bäume mit ZufallsknotenModelliere Würfelwürfe und zufällig spielende Gegner mit Zufallsknoten, berechne Expectiminimax-Werte Schritt für Schritt und erkenne, wann Beschneidung weiterhin möglich ist.
- Skaliere Bewertungen und wähle zwischen Minimax und ExpectimaxErkläre, warum Erwartungswerte korrekt skalierte Bewertungen benötigen, prüfe, welche Transformationen Entscheidungen erhalten, und wähle ein zur Situation passendes Gegnermodell.
- Durchsuche Bäume mit Zufallsknoten
- Schätze Zugwerte anhand simulierter Spiele, bringe mit UCB1 das Erkunden neuer Züge und das Ausnutzen guter Züge ins Gleichgewicht und beurteile, wann Monte-Carlo-Baumsuche oder Alpha-Beta besser zu einem Spiel passt.
- Führe die vier Phasen der Monte-Carlo-Baumsuche durchBaue durch Selektion, Expansion, Simulation und Rückpropagation einen Suchbaum auf, aktualisiere Besuchs- und Gewinnzahlen und wähle den endgültigen Zug.
- Bringe Exploration und Exploitation mit UCB1 ins GleichgewichtWende die UCB1-Formel bei der Selektion an, berechne sie für konkrete Zählwerte und erkenne, wie die Explorationskonstante die Wahl verändert.
- Vergleiche MCTS mit Alpha-Beta-Beschneidung und wähle ein VerfahrenWäge die Stärken und Schwächen von Alpha-Beta und Monte-Carlo-Baumsuche ab, verbinde sie mit wegweisenden Spielprogrammen und wähle anhand der Eigenschaften eines Spiels ein Verfahren.
- Führe die vier Phasen der Monte-Carlo-Baumsuche durch
Adversarielle Suche einfach erklärt
1Ein Spiel als Suchproblem formulieren
Ein Programm braucht eine präzise Beschreibung eines Spiels, bevor es einen Zug wählen kann. Die Beschreibung muss angeben, wer handelt, was als Nächstes geschehen kann und wie ein beendetes Spiel bewertet wird. Der Spielbaum stellt anschließend die möglichen Fortsetzungen dar. Um ihn zu interpretieren, musst du verfolgen, wer am Zug ist, welche Tiefe erreicht wurde und welche Stellungen sich wiederholen. Denk dabei daran, dass der Gegner einige Zweige kontrolliert.
1.1 Zustände, Regeln und Spieler
Eine Spielsuche beginnt mit einem Zustand: genügend Information, um zu bestimmen, was als Nächstes geschehen kann. Bei Tic-Tac-Toe sind das das Spielfeld und der Spieler am Zug. Das Spielfeld allein ist unvollständig, weil das nächste Zeichen davon abhängt, wer am Zug ist.
Die sechs Bestandteile definieren
Ein Spielmodell enthält:
- Einen Anfangszustand, .
- Eine Funktion , die den Spieler nennt, der im Zustand handelt.
- Die zulässigen Züge, .
- Ein Übergangsmodell , das den Zustand nach Aktion angibt.
- Einen Terminaltest , der das Spielende erkennt.
- Eine Nutzenfunktion , die Spieler in einem Terminalzustand eine numerische Auszahlung zuweist.
Bei Tic-Tac-Toe beginnt das Spiel mit einem leeren 3×3-Feld und X am Zug. Eine Aktion wählt ein leeres Feld. Der Übergang setzt das Zeichen des aktuellen Spielers und wechselt den Spieler am Zug. Das Spiel endet, sobald jemand eine Zeile, Spalte oder Diagonale aus drei Zeichen bildet oder das volle Spielfeld ein Unentschieden ergibt. Bewerte aus Sicht von X einen Sieg mit +1, ein Unentschieden mit 0 und eine Niederlage mit −1. Der Terminaltest muss ausgeführt werden, bevor ein weiteres Zeichen gesetzt wird: Nach einem Sieg geht das Spiel nicht weiter.
Das Spiel anhand getrennter Merkmale einordnen
| Eigenschaft | Bedeutung | Beispiel |
|---|---|---|
| Deterministisch | Zustand und Zug bestimmen den nächsten Zustand ohne Zufallsereignis. | Schach |
| Stochastisch | Zufallsereignisse bestimmen mit, was geschieht. | Backgammon |
| Perfekte Information | Jeder Spieler kann den vollständigen Spielzustand beobachten. | Go |
| Imperfekte Information | Ein Teil des relevanten Zustands ist verborgen. | Poker |
| Zwei oder mehrere Spieler | Die Anzahl der Spieler bestimmt, wie viele Interessen modelliert werden müssen. | Schach oder ein Spiel mit drei Spielern |
| Nullsummen- oder Nichtnullsummenspiel | Die Interessen sind strikt entgegengesetzt oder Spieler können gemeinsam gewinnen. | Spiel mit Sieg und Niederlage oder gemeinsame Belohnungen |
Diese Merkmale sind unabhängig voneinander. Die Würfel machen Backgammon stochastisch, obwohl das Brett sichtbar ist. Verborgene Karten betreffen die Information, nicht die Frage, ob eine Aktion selbst zufällig ist. In einem Spiel mit verborgener Information denkt ein Spieler über die möglichen Zustände nach, die mit seinen Beobachtungen vereinbar sind. Diese bilden einen Glaubenszustand.
Den Blickwinkel auf die Auszahlung beibehalten
In einem Zwei-Personen-Nullsummenspiel ist der Gewinn des einen der Verlust des anderen. Punktestände mit konstanter Summe verhalten sich genauso: Sieg 1, Niederlage 0 und Unentschieden je ½ ergeben zusammen immer 1. Eine Zahl genügt, um den Gegensatz auszudrücken. Nenne den Spieler, der einen größeren Wert anstrebt, MAX und den Spieler, der einen kleineren Wert anstrebt, MIN. Das sind Rollen; MAX muss nicht immer Weiß oder X sein.
Bei einer gewöhnlichen Suche kann jede Aktion entlang eines Pfads gewählt werden. Ein spielender Agent muss auf Züge reagieren, die er nicht kontrolliert. Seine Lösung ist eine Strategie, die für jede Situation, in die er geraten könnte, festlegt, was zu tun ist. Ein Plan, der nur funktioniert, wenn der Gegner hilfreich antwortet, genügt nicht.
Wichtige Erkenntnisse
- Halte den Spieler am Zug als Teil des Zustands fest.
- Definiere zulässige Aktionen, Übergänge, Spielende und Nutzen vor der Suche.
- Zufall und verborgene Information sind getrennte Eigenschaften.
- MAX und MIN vergleichen einen Nutzen, der aus Sicht von MAX gemessen wird.
- Eine Strategie muss die möglichen Antworten des Gegners berücksichtigen.
1.2 Größe und Form eines Spielbaums interpretieren
Ein Spielbaum beginnt beim aktuellen Zustand. Jede ausgehende Kante steht für einen zulässigen Zug, und ihr Kind ist der entstehende Zustand. Beschrifte jeden nicht terminalen Knoten mit dem Spieler, der dort handelt. In einem Spiel mit zwei Spielern, die abwechselnd ziehen, wechseln sich MAX- und MIN-Ebenen ab.
Einzelne Züge zählen
Ein Halbzug ist ein Zug eines Spielers. Im Schach umfasst ein vollständiger Zug gewöhnlich einen Zug von Weiß und einen von Schwarz, also zwei Halbzüge. Eine Suche der Tiefe 4, die bei Weiß am Zug beginnt, erreicht Stellungen, nachdem Weiß, Schwarz, Weiß und Schwarz gehandelt haben. Zähle die Kanten von der Wurzel aus, deren Tiefe null ist.
Sei der Verzweigungsfaktor und die maximale Tiefe. Ein gleichmäßiger Baum hat Knoten auf der Tiefe und Blätter. Seine Gesamtzahl an Knoten beträgt:
Für überwiegen die tiefsten Ebenen, was zu exponentiellem Wachstum führt. Bei vier Zügen pro Stellung hat Tiefe 3 insgesamt 64 Blätter und Tiefe 4 insgesamt 256. Ein zusätzlicher Halbzug vervierfacht die Blattzahl, statt sie mit eins zu multiplizieren.
Spiele und Stellungen unterscheiden
Bei Tic-Tac-Toe gibt es höchstens Reihenfolgen, um das Spielfeld zu füllen. Viele Reihenfolgen würden nach einem früheren Sieg fortgesetzt und sind keine vollständigen zulässigen Spiele. Endet jedes Spiel sofort bei einem Sieg, ergeben sich 255.168 vollständige Spiele: 131.184 Siege von X, 77.904 Siege von O und 46.080 Unentschieden. Bei zulässigem Spiel gibt es insgesamt nur 5.478 verschiedene Spielfeldstellungen, einschließlich des leeren Spielfelds.
Der Unterschied entsteht unter anderem durch Zugumstellungen: verschiedene Zugfolgen, die denselben Zustand erreichen. X kann eine Ecke spielen, O die Mitte und X die gegenüberliegende Ecke, oder X kann die beiden Ecken in umgekehrter Reihenfolge spielen. Beide Pfade enden beim selben Spielfeld und demselben Spieler am Zug. Ein Baum behält beide Pfade; ein Spielgraph kann ihren gemeinsamen Zustand einmal speichern. Um Arbeit wiederzuverwenden, müssen vollständige Zustände erkannt werden, nicht nur optisch ähnliche Spielfelder.
Warum eine vollständige Suche scheitert
Schach wird oft mit etwa 35 zulässigen Zügen pro Stellung und einer Partie von 100 Halbzügen modelliert, also 50 Zügen pro Spieler. Das ergibt die ungefähre Größenordnung:
Reale Zweige enden auf unterschiedlichen Tiefen und haben unterschiedliche Anzahlen von Zügen. Doch bereits diese Schätzung erklärt, warum es unpraktikabel ist, einen gesamten Schachspielbaum aufzuzählen. Auf einem leeren 19×19-Go-Brett hat allein der erste Stein 361 mögliche Punkte.
Der Suchbaum ist das, was ein Algorithmus tatsächlich erzeugt. Einfaches Minimax erzeugt bei einem endlichen Spiel, das es bis zum Ende durchsucht, den vollständigen Spielbaum unterhalb des Zustands. Beschneidung, Tiefenbeschränkungen und selektive Simulation erzeugen weniger. Ein Blatt am Suchabbruch kann daher eine nicht beendete Stellung sein, obwohl ein Blatt des vollständigen Spielbaums terminal ist.
Eine Strategie im Baum darstellen
Ein Strategieteilbaum für MAX behält an jedem MAX-Knoten eine ausgewählte Kante und an jedem MIN-Knoten jede zulässige Kante. MAX wählt seine eigene Aktion, muss aber eine Antwort auf jeden gegnerischen Zug bereithalten. Ein einzelner Pfad von der Wurzel zu einem Blatt beschreibt nur einen möglichen Spielverlauf. Er kann nicht zeigen, dass der gewählte Plan auch den anderen Antworten standhält.
Wichtige Erkenntnisse
- Ein Halbzug ist der Zug eines Spielers; die Wurzel hat Tiefe null.
- Ein gleichmäßiger Baum hat etwa b hoch m Blätter.
- Zugumstellungen wiederholen Zustände, die durch verschiedene Zugfolgen erreicht werden.
- Eine Strategie hält für jede Antwort des Gegners eine Reaktion bereit.
2Züge gegen einen Gegner wählen
Das am besten aussehende Endergebnis kann unerreichbar sein, weil ein Gegner eine andere Antwort wählen kann. Minimax arbeitet von den Ergebnissen aus rückwärts, um zu bestimmen, was jeder Spieler durchsetzen kann. Seine rekursive Form setzt diese Überlegung in ein Programm um. Haben Spieler unterschiedliche Interessen, muss derselbe Rückwärtsprozess für jeden Spieler eine Auszahlung mitführen und die Präferenz desjenigen berücksichtigen, der als Nächstes handelt.
2.1 Minimax-Werte zurückführen
Minimax wählt das beste Ergebnis, das MAX gegen einen optimal spielenden Gegner sichern kann. Jeder Nutzen an einem Blatt wird für MAX gemessen. Eine große Zahl begünstigt MAX, auch wenn der bewertete Knoten zu MIN gehört.
Von den Blättern zur Wurzel arbeiten
Gib an einem terminalen Knoten seinen Nutzen zurück. Gib an einem MAX-Knoten den größten Wert seiner Kinder zurück. Gib an einem MIN-Knoten den kleinsten zurück. Fahre fort, bis die Wurzel einen Wert erhält:
Der Wert eines Kindes fasst bereits die optimale Fortsetzung ab diesem Kind zusammen. Deshalb vergleicht ein Elternknoten die zurückgegebenen Werte, statt jedes darunterliegende Blatt erneut zu öffnen. Die Rekursion funktioniert über beliebig viele wechselnde Ebenen.
Eine Entscheidung über zwei Halbzüge nachvollziehen
MAX hat drei Züge, die jeweils zu einem MIN-Knoten führen:
| Zug von MAX | Für MIN verfügbare terminale Nutzen | Zurückgeführter Wert |
|---|---|---|
| A | 4, 9, 6 | 4 |
| B | 2, 15, 13 | 2 |
| C | 5, 8, 10 | 5 |
Bilde zuerst das Minimum jeder Zeile. MIN kann dafür sorgen, dass A den Wert 4, B den Wert 2 und C den Wert 5 hat. Dann bildet MAX das Maximum dieser drei Ergebnisse:
Der Minimax-Wert ist 5. Die Minimax-Entscheidung ist der Zug zu C. Das eine ist eine Zahl, die die Stellung beschreibt; das andere ist eine Aktion, die das Programm spielen kann.
Das größte Blatt, 15, liegt unter B, aber MAX kontrolliert nicht die Antwort, die dorthin führt. MIN würde 2 wählen. Der Mittelwert der Blätter von B ist 10, was ebenfalls attraktiv aussieht. Das Mitteln modelliert aber eine zufällige Wahl mit passenden Wahrscheinlichkeiten. Bei optimalem Gegenspiel ist ein Minimum gefragt.
Die Hauptvariante lesen
Die Hauptvariante ist die Zugfolge, die entsteht, wenn die Spieler optimal wählen. Hier spielt MAX nach C und MIN wählt dessen Blatt mit dem Wert 5. Folge in einem tieferen Baum auf jeder Ebene dem gewählten Maximum oder Minimum. Der terminale Nutzen am Ende dieser Variante entspricht dem Wert der Wurzel. Bei mehreren gleichwertigen Zügen kann es mehr als eine optimale Variante geben.
Die Garantie verstehen
Bei einem endlichen deterministischen Zwei-Personen-Nullsummenspiel mit perfekter Information garantiert die Minimax-Strategie mindestens den Wert der Wurzel. Ein optimaler Gegner begrenzt MAX auf diesen Wert. Ein Fehler des Gegners kann ein besseres Ergebnis ermöglichen; 5 ist also eine Untergrenze und keine Vorhersage, dass jedes Spiel mit genau 5 enden muss.
Ein Programm kann Schwächen ausnutzen und diese Untergrenze dabei erhalten. Haben zwei Züge beide den Minimax-Wert 5, kann es denjenigen bevorzugen, der dem Gegner mehr Fehlermöglichkeiten bietet. Wählt es einen Zug mit Minimax-Wert 2, weil dieser eine verlockende 15 enthält, gibt es die Garantie von 5 auf. Entscheidend ist, ob der Zug den besten Wert für den ungünstigsten Fall erhält.
Wichtige Erkenntnisse
- Führe an MIN-Knoten ein Minimum und an MAX-Knoten ein Maximum zurück.
- Der Minimax-Wert ist eine Zahl; die Entscheidung ist ein Zug.
- Das größte Blatt allein zeigt nicht, welcher Zug der beste ist.
- Eine Hauptvariante folgt auf jeder Ebene optimalen Entscheidungen.
- Vollständiges Minimax garantiert seinen Wert gegen optimales Gegenspiel.
- Ein schwächerer Gegner kann ein Ergebnis über diesem garantierten Wert ermöglichen.
2.2 Ein rekursives Minimax-Programm schreiben
Die Minimax-Definition ist bereits ein rekursives Programm. Eine Wertfunktion nimmt einen Zustand entgegen und gibt eine Zahl zurück. Eine Suchfunktion vergleicht die möglichen ersten Züge und gibt die zu spielende Aktion zurück.
Zugauswahl und Wertberechnung trennen
Der folgende Pseudocode setzt voraus, dass MAX an der Wurzel handelt und die Spieler abwechselnd ziehen:
MINIMAX-SEARCH(s):
if Is-Terminal(s): return no action
bestMove = no action
bestValue = -infinity
for a in Actions(s):
value = MIN-VALUE(Result(s, a))
if value > bestValue:
bestValue = value
bestMove = a
return bestMove
MAX-VALUE(s):
if Is-Terminal(s): return Utility(s, MAX)
v = -infinity
for a in Actions(s):
v = max(v, MIN-VALUE(Result(s, a)))
return v
MIN-VALUE(s):
if Is-Terminal(s): return Utility(s, MAX)
v = +infinity
for a in Actions(s):
v = min(v, MAX-VALUE(Result(s, a)))
return v
Initialisiere MAX mit minus unendlich, sodass jedes Kind den Wert verbessert; initialisiere MIN mit plus unendlich. Prüfe auf ein Spielende, bevor du Nachfolger erzeugst. Ein volles Tic-Tac-Toe-Feld ohne Gewinnreihe ist ein Unentschieden und keine nicht terminale Stellung, deren bester Zug aus einer leeren Liste gewählt werden muss.
Nachvollziehen, was die Rekursion findet
Betrachte dieses Tic-Tac-Toe-Feld, bei dem X am Zug ist und ein Punkt ein leeres Feld bezeichnet:
X O X
. O .
. . .
O droht mit drei Zeichen in der mittleren Spalte. Spielt X irgendwo anders als auf das untere mittlere Feld, kann O im nächsten Zug gewinnen. Diese Züge haben für X den Wert −1. Der Zug auf das untere mittlere Feld blockiert den unmittelbaren Sieg und ermöglicht bei bestem Spiel ein Unentschieden mit dem Wert 0. Die Wurzel gibt das untere mittlere Feld zurück. Der Algorithmus braucht keine gesonderte Anweisung für diese Drohung: Die terminalen Ergebnisse bestimmen die Werte.
Zeit und Speicher einplanen
Minimax mit Tiefensuche untersucht bei Verzweigungsfaktor und maximaler Tiefe insgesamt Knoten. Das Speichern aller erzeugten Geschwister auf jeder aktiven Ebene benötigt Speicher. Werden Nachfolger einzeln erzeugt, sinkt der Speicherbedarf der aktiven Suche abgesehen von der Zustandsrepräsentation auf . Die exponentielle Laufzeit ist gewöhnlich das Haupthindernis, nicht der Rekursionsstapel.
Die Bewertungskonvention beibehalten
Im MAX/MIN-Code gibt jeder Aufruf den Nutzen von MAX zurück. Kehre das Vorzeichen nicht allein deshalb um, weil MIN als Nächstes handelt. Negamax verwendet eine andere Konvention: Jeder Wert gilt aus Sicht des aktuellen Spielers, sodass der Wert eines Kindes negiert wird, bevor der Elternknoten maximiert:
Bei einem Spiel, das in weniger als 100 Halbzügen endet, kann der Zeitpunkt berücksichtigt werden, indem ein Sieg von MAX in Tiefe mit , eine Niederlage mit und ein Unentschieden mit 0 bewertet wird. Schnellere Siege erhalten dann höhere Werte und hinausgezögerte Niederlagen sind weniger negativ. Die strikte Tiefenbeschränkung hält jeden Sieg positiv und jede Niederlage negativ.
Beispielsweise ergeben Siege in den Halbzügen 3 und 7 die Werte 97 und 93, sodass der schnellere Sieg bevorzugt wird. Niederlagen in diesen Tiefen ergeben −97 und −93. Damit ist die spätere Niederlage vorzuziehen, obwohl beide schlechter als ein Unentschieden bleiben.
Wichtige Erkenntnisse
- Prüfe auf Terminalzustände, bevor du Züge expandierst.
- Gib aus der Suchfunktion Aktionen und aus den Wertfunktionen Zahlen zurück.
- Minimax mit Tiefensuche benötigt exponentielle Zeit.
- Alle MAX/MIN-Nutzen behalten den Blickwinkel von MAX bei.
- Negamax wechselt den Blickwinkel und negiert jeden zurückgegebenen Wert eines Kindes.
2.3 Für jeden Spieler eine Auszahlung mitführen
Ein einzelner Nutzen für MAX funktioniert, wenn die Interessen zweier Spieler strikt entgegengesetzt sind. Bei mehreren Spielern oder sich überschneidenden Interessen verwende einen Nutzenvektor. Für die Spieler A, B und C gibt der Vektor (1, 2, 6) ihre Auszahlungen in dieser Reihenfolge an.
Anhand des Eintrags des aktiven Spielers wählen
Vergleiche an einem Knoten, an dem C handelt, die dritten Einträge der Vektoren seiner Kinder. Gib den gesamten Vektor des von C bevorzugten Kindes zurück. Vergleiche an einem B-Knoten die zweiten Einträge dieser zurückgegebenen Vektoren und an einem A-Knoten die ersten.
Maximiere nicht jeden Eintrag unabhängig. Sind die Ergebnisse (1, 2, 6) und (4, 2, 3) verfügbar, wählt C den Vektor (1, 2, 6). Die Kombination (4, 2, 6) ist kein verfügbares Ergebnis und kann nicht zurückgeführt werden.
Bei drei Spielern rückwärts arbeiten
A zieht zuerst, dann B, dann C. Nach dem linken Zug von A wählt B zwischen zwei C-Knoten:
- Der erste hat die Blätter (1, 2, 6) und (4, 2, 3). C wählt (1, 2, 6).
- Der zweite hat die Blätter (6, 1, 2) und (7, 4, 1). C wählt (6, 1, 2).
B vergleicht die zweiten Einträge 2 und 1, sodass der linke Zweig (1, 2, 6) zurückgibt.
Nach dem rechten Zug von A:
- C wählt (5, 4, 5) statt (2, 5, 4), weil 5 im dritten Eintrag größer als 4 ist.
- C wählt (5, 2, 4) statt (7, 7, 1), weil 4 im dritten Eintrag größer als 1 ist.
B vergleicht die zweiten Einträge 4 und 2, sodass der rechte Zweig (5, 4, 5) zurückgibt. Schließlich vergleicht A die ersten Einträge 1 und 5 und wählt rechts. Die Wurzel erhält den gesamten Vektor (5, 4, 5).
Festlegen, wie Gleichstände aufgelöst werden
Kann C zwischen (2, 3, 4) und (6, 1, 4) wählen, erhält C in beiden Fällen 4. Die spätere Auszahlung von A könnte 2 oder 6 sein. Eine Vorhersage braucht eine Auswahlregel bei Gleichstand oder ein Modell für die Wahl von C. Dass einem anderen Spieler die Wahl gleichgültig ist, muss für den Spieler an der Wurzel nicht folgenlos sein.
| Modell | Was jeder andere Spieler bevorzugt |
|---|---|
| Rückführung von Nutzenvektoren | Einen größeren Wert im eigenen Vektoreintrag |
| Mehrere MIN-Gegner | Einen kleineren Wert des einzelnen Nutzens von MAX |
| Paranoide Suche | Jeder andere Spieler wird als Teil einer Koalition gegen den Spieler an der Wurzel modelliert |
Wollen zwei Verfolger beide MAX fangen, hat eine Runde eine MAX-Ebene und für jeden Verfolger eine MIN-Ebene. Bei zwei Verfolgern umfasst eine Runde drei Halbzüge. Dieses Modell unterscheidet sich von drei unabhängigen Spielern, die ihre eigenen Belohnungen verfolgen.
Sich überschneidende Interessen zulassen
In einem Nichtnullsummenspiel können beide Spieler (100, 100) niedrigeren gemeinsamen Auszahlungen vorziehen. Spieler können auch vorübergehend davon profitieren, einen gemeinsamen Führenden anzugreifen. Solches allianzähnliches Verhalten kann aus ihren eigenen Präferenzen folgen und sich ändern, wenn sich die Stellung ändert.
Gewöhnliche Alpha-Beta-Cutoffs beruhen auf entgegengesetzten Interessen und lassen sich nicht direkt auf Nutzenvektoren übertragen. Das paranoide Modell stellt einen Gegensatz zwischen zwei Spielern her und ermöglicht damit Alpha-Beta-Suche. Es kann aber eine koordinierte Feindseligkeit vorhersagen, für die sich die anderen Spieler tatsächlich nicht entscheiden würden.
Wichtige Erkenntnisse
- Ein Nutzenvektor enthält eine Auszahlung pro Spieler.
- Der aktive Spieler wählt anhand seines eigenen Eintrags und gibt den gesamten Vektor zurück.
- Gleichstände brauchen eine Regel, wenn gleichwertige Entscheidungen andere Spieler unterschiedlich betreffen.
- Mehrere MIN-Ebenen passen zu Gegnern, die gemeinsam den Nutzen von MAX senken wollen.
- Das paranoide Modell nimmt eine Koalition gegen den Spieler an der Wurzel an.
3Zweige überspringen, die die Wahl nicht ändern können
Minimax kann den größten Teil seiner Zeit damit verbringen, Entscheidungen zu bestätigen, die ein Spieler nie zulassen würde. Alpha-Beta führt Schranken entlang des aktuellen Pfads mit, um solche Suchläufe früh zu beenden. Die Zugreihenfolge bestimmt, wie bald nützliche Schranken entstehen. Iterative Vertiefung und gespeicherte Ergebnisse helfen einem Programm, diese Reihenfolge zu finden und frühere Arbeit wiederzuverwenden, ohne eine unvollständige Schätzung für einen exakten Wert zu halten.
3.1 Alpha und Beta durch den Baum verfolgen
Alpha-Beta-Beschneidung liefert auf demselben Baum mit denselben Blattwerten denselben Wert der Wurzel wie Minimax. Sie spart Arbeit, indem sie nachweist, dass manche Zweige die Wahl nicht verbessern können. Gleichwertige optimale Züge können in anderer Reihenfolge zurückgegeben werden.
Ein Suchfenster entlang des Pfads weitergeben
Zwei Schranken beschreiben die oberhalb des aktuellen Knotens verfügbaren Möglichkeiten:
- ist der beste für MAX entlang des Pfads verfügbare Wert: MAX kann bereits mindestens diesen Wert erreichen.
- ist der beste für MIN entlang des Pfads verfügbare Wert: MIN kann den Wert für MAX bereits auf höchstens diesen Wert begrenzen.
Beginne an der Wurzel mit minus und plus unendlich. Jedes rekursive Kind erhält die aktuellen Schranken. Sie sind lokale Argumente und keine globalen Zahlen, die von nicht zusammengehörigen Suchen in benachbarten Teilbäumen geteilt werden.
Behalte an einem MAX-Knoten den größten bisher gesehenen Wert eines Kindes. Brich ab, sobald er Beta erreicht oder übersteigt: MIN weiter oben hat bereits eine Alternative, die höchstens Beta beträgt. Erhöhe andernfalls Alpha, wenn MAX eine Verbesserung findet. Behalte an einem MIN-Knoten den kleinsten bisher gesehenen Wert eines Kindes. Brich ab, sobald er Alpha erreicht oder unterschreitet: MAX weiter oben hat bereits eine mindestens ebenso gute Alternative. Senke andernfalls Beta.
MAX-VALUE(s, alpha, beta):
if Is-Terminal(s): return Utility(s, MAX)
v = -infinity
for a in Actions(s):
v = max(v, MIN-VALUE(Result(s, a), alpha, beta))
if v >= beta: return v
alpha = max(alpha, v)
return v
MIN-VALUE(s, alpha, beta):
if Is-Terminal(s): return Utility(s, MAX)
v = +infinity
for a in Actions(s):
v = min(v, MAX-VALUE(Result(s, a), alpha, beta))
if v <= alpha: return v
beta = min(beta, v)
return v
Die Wurzel vergleicht Aktionen und behält Alpha zwischen ihnen bei:
ALPHA-BETA-SEARCH(s):
if Is-Terminal(s): return no action
alpha = -infinity
beta = +infinity
bestMove = no action
for a in Actions(s):
v = MIN-VALUE(Result(s, a), alpha, beta)
if v > alpha:
alpha = v
bestMove = a
return bestMove
Einen MIN-Cutoff nachvollziehen
Durchsuche die MIN-Zweige A = (4, 9, 6), B = (2, 15, 13) und C = (5, 8, 10) von links nach rechts. A muss alle drei Blätter untersuchen und gibt 4 zurück. Die Wurzel hat nun Alpha 4. Das erste Blatt von B ist 2. Das endgültige Minimum kann nur bei 2 bleiben oder sinken, sodass B nicht besser als A sein kann. Überspringe die beiden übrigen Blätter von B. C untersucht alle drei Blätter und gibt 5 zurück. Die Wurzel wählt C, nachdem sieben von neun Blättern untersucht wurden.
Einen MAX-Cutoff nachvollziehen
Angenommen, ein MIN-Elternknoten hat bereits ein Kind mit dem Wert 3, wodurch Beta auf 3 gesetzt wird. Sein nächstes MAX-Kind findet ein Blatt mit dem Wert 6. Der Wert dieses Kindes beträgt mindestens 6, sodass MIN seine vorhandene 3 bevorzugen wird. Überspringe die übrigen Kinder dieses MAX-Knotens. Die Begründung für den Cutoff beruht auf der Alternative von MIN, obwohl der aktuelle Knoten ein MAX-Knoten ist.
Ein beschnittener MIN-Knoten kann eine obere Schranke zurückgeben; ein beschnittener MAX-Knoten kann eine untere Schranke zurückgeben. Ihre exakten Werte bleiben unbekannt. Der abschließend ermittelte Wert der Wurzel ist für den durchsuchten Baum exakt. Auch Gleichheit erlaubt einen Cutoff, weil ein Zweig, der höchstens gleichziehen kann, den aktuellen Bestwert nicht verbessern kann.
Wichtige Erkenntnisse
- Alpha ist die für MAX verfügbare untere Schranke; Beta ist die für MIN verfügbare obere Schranke.
- MAX erhöht Alpha und bricht bei Beta ab.
- MIN senkt Beta und bricht bei Alpha ab.
- Gib Schranken als lokale Argumente nach unten weiter.
- Das Ergebnis eines Cutoffs kann eine Schranke statt eines exakten Knotenwerts sein.
- Die Beschneidung erhält den Minimax-Wert der Wurzel, auch bei Cutoffs wegen Gleichheit.
3.2 Nützliche Schranken früh finden und Suchergebnisse wiederverwenden
Alpha-Beta spart die meiste Arbeit, wenn starke Züge früh durchsucht werden. Die Werte ändern sich durch die Zugreihenfolge nicht; sie beeinflusst, ab wann die Suche einen Cutoff nachweisen kann.
Zwei Reihenfolgen vergleichen
Bei den drei MIN-Zweigen A = (4, 9, 6), B = (2, 15, 13) und C = (5, 8, 10) werden sieben Blätter untersucht, wenn mit A begonnen wird. Beginne stattdessen mit C. Seine drei Blätter ergeben Alpha 5. A findet dann sofort 4 und bricht ab; B findet sofort 2 und bricht ab. Nur fünf Blätter werden bewertet, und die Antwort bleibt C mit dem Wert 5.
Für einen gleichmäßigen Baum mit perfekter Sortierung beträgt die Blattzahl:
Das entspricht etwa statt bei Minimax. Der effektive Verzweigungsfaktor sinkt auf etwa , sodass bei vergleichbarem Aufwand ungefähr die doppelte Tiefe möglich ist. Bei werden mit perfekter Sortierung bis Tiefe 8 insgesamt 3.001.249 Blätter bewertet; gewöhnliches Minimax bis Tiefe 4 hat 1.500.625 Blätter. Der Vergleich betrifft die Größenordnung, nicht eine identische Laufzeit.
| Sortierung | Ungefährer Aufwand in Blättern |
|---|---|
| Perfekt | |
| Zufällig, bei moderaten Verzweigungsfaktoren | Ungefähr |
| Ungünstigster Fall |
Bei der ungünstigsten Reihenfolge kann Alpha-Beta jedes Minimax-Blatt untersuchen. Seine zusätzlichen Schrankenprüfungen verursachen auch dann Mehraufwand, wenn sie keine Blätter einsparen.
Kostengünstige Hinweise für die Sortierung nutzen
Der genaue beste Zug ist vor der Suche unbekannt. Programme verwenden schnelle Schätzungen. Im Schach können sie Schlagzüge, dann Drohungen und dann ruhige Züge ausprobieren. Ein Killerzug hat anderswo auf derselben Suchtiefe einen Cutoff ausgelöst und wird in einer anderen Stellung früh ausprobiert. Diese Hinweise beeinflussen die Effizienz; sie rechtfertigen nicht, die anderen zulässigen Züge zu verwerfen.
Die iterative Vertiefung sucht bis Tiefe 1, dann 2, dann 3 und so weiter. Ein starker Zug aus der vorherigen Iteration wird in der nächsten früh geprüft. Das Ergebnis der tiefsten abgeschlossenen Iteration liegt auch bereit, wenn die Zeit abläuft.
Der Aufwand der wiederholten Arbeit hängt von der Beschneidung ab. Bei unbeschnittener gleichmäßiger Suche mit Verzweigungsfaktor 35 erhöhen alle flacheren Iterationen den Aufwand der letzten Suche um etwa . Bei Alpha-Beta mit perfekter Sortierung bewerten die Tiefen 1 bis 7 zusammen 1.677.159 Blätter, etwa 56 % der Anzahl bei Tiefe 8. Eine bessere Sortierung kann den Gesamtprozess trotzdem lohnend machen.
Stellungen mit der Bedeutung ihrer Werte zwischenspeichern
Eine Transpositionstabelle speichert Ergebnisse, die über den vollständigen Spielzustand auffindbar sind. Erreicht eine andere Zugfolge diesen Zustand, kann das Programm einen passenden Eintrag wiederverwenden. Speichere die durchsuchte Tiefe und ob das Ergebnis exakt, eine untere oder eine obere Schranke ist. Ein Eintrag aus einer flachen Suche ersetzt nicht die benötigte Information einer tieferen Suche. Eine Schranke kann ein Fenster verengen oder einen Cutoff rechtfertigen, darf aber nicht als exakter Wert behandelt werden.
Wichtige Erkenntnisse
- Die Zugreihenfolge verändert den Aufwand von Alpha-Beta, nicht den Wert der Wurzel.
- Perfekte Sortierung verringert den exponentiellen Aufwand auf etwa b hoch m/2.
- Iterative Vertiefung liefert einen Zug aus einer abgeschlossenen Suche und verbessert die Sortierung.
- Ein Transpositionstabelleneintrag benötigt die Tiefe und eine Kennzeichnung als exakter Wert, untere oder obere Schranke.
4Nicht beendete Stellungen unter Zeitbeschränkung bewerten
Bei großen Spielen muss eine Suche beendet werden, während das Spiel noch läuft. Eine Bewertungsfunktion weist diesen Stellungen an der Suchfront brauchbare Werte zu, und die Suche führt sie anhand der Entscheidungen der Spieler zurück. Die Abbruchregel ist ebenso wichtig wie der Wert: Eine Stellung mitten in einer Schlagfolge kann irreführend stark aussehen. Selektive Erweiterungen und exaktes Nachschlagen helfen einem Programm, seine begrenzte Zeit dort einzusetzen, wo das Ergebnis am empfindlichsten auf Änderungen reagiert.
4.1 Eine Bewertungsfunktion erstellen und interpretieren
Eine Bewertungsfunktion schätzt, wie günstig eine nicht beendete Stellung für MAX ist. Sie ermöglicht eine tiefenbeschränkte Suche: Die Suchfront erhält geschätzte Werte, die durch Minimax oder Alpha-Beta zurückgeführt werden können.
Werte für die Suche nutzbar machen
Eine gute Bewertungsfunktion ist schnell, stimmt mit der Reihenfolge tatsächlicher terminaler Ergebnisse überein und korreliert bei nicht terminalen Stellungen mit dem Erfolg. Terminalzustände selbst sollten ihren exakten Nutzen erhalten. Ein Sieg von MAX muss höher bewertet werden als jede Schätzung für eine nicht terminale Stellung, damit das Sammeln von Figuren nicht attraktiver als ein Sieg werden kann.
Eine Möglichkeit, Bewertung zu betrachten, besteht darin, Stellungen nach gemeinsamen Merkmalen zu gruppieren. Ergibt eine solche Gruppe 72 % Siege, 8 % Unentschieden und 20 % Niederlagen bei den Nutzen 1, ½ und 0, beträgt ihr durchschnittlicher Nutzen:
Diese Deutung hängt davon ab, wie Stellungen und Fortsetzungen ausgewählt wurden. Sie ist eine Schätzung der Ergebnisqualität und kein Beweis für einen erzwungenen Sieg.
Gewichtete Merkmale addieren
Ein verbreiteter Ansatz ist eine gewichtete Summe:
Jedes Merkmal misst eine Eigenschaft der Stellung; jedes Gewicht gibt an, wie viel es beiträgt. Unterschiede zwischen den Seiten halten den Blickwinkel eindeutig. Ein positiver Materialunterschied bedeutet, dass MAX mehr Material hat.
Die traditionellen Schachwerte sind Bauer 1, Springer 3, Läufer 3, Turm 5 und Dame 9. Dem König wird kein Materialwert als schlagbare Figur zugewiesen. Angenommen, MAX ist Weiß. Weiß hat eine Dame, zwei Türme, einen Läufer und sechs Bauern:
Schwarz hat zwei Türme, zwei Springer, einen Läufer und sieben Bauern:
Das Materialmerkmal ist daher . Hat Weiß 30 zulässige Züge und Schwarz 24, beträgt der Mobilitätsunterschied 6. Mit dem Materialgewicht 1 und dem Mobilitätsgewicht 0,1 ergibt sich:
Diese 2,6 ist ein Merkmalswert und keine Gewinnwahrscheinlichkeit von 260 %. Die Gewichte bestimmen seine Skala.
Wechselwirkungen zwischen Merkmalen berücksichtigen
Eine einfache lineare Summe weist jedem Merkmal einen festen Beitrag unabhängig von den anderen zu. Der tatsächliche Wert im Spiel kann von Kombinationen abhängen: Ein Läuferpaar kann mehr wert sein als die Summe seiner einzelnen Beiträge, und die Bedeutung eines Bauern kann sich im Endspiel ändern. Kombinierte Merkmale, von der Spielphase abhängige Gewichte oder nichtlineare Bewertungsfunktionen können diese Effekte erfassen. Gewichte können nach Ermessen gewählt oder an Ergebnisse aufgezeichneter Partien angepasst werden.
Mehr Merkmale kosten auch Zeit. Eine aufwendige Bewertungsfunktion, die einen zusätzlichen nützlichen Suchhalbzug verhindert, kann die Entscheidung verschlechtern, selbst wenn ihre einzelnen Schätzungen besser werden.
Die Skala an die Rückführungsregel anpassen
Bei deterministischem Minimax erhalten einheitlich angewendete streng monoton steigende Transformationen die Reihenfolge bei der Bildung von Maxima und Minima. Das Quadrieren ausschließlich positiver Werte erhält beispielsweise deren Reihenfolge. Das Quadrieren beliebiger vorzeichenbehafteter Werte tut dies nicht. An Zufallsknoten sind die tatsächlichen Abstände zwischen Nutzenwerten wichtig, weil die Werte gemittelt werden. Ein Wert, der nur zur Einordnung von Stellungen entwickelt wurde, muss kalibriert werden, bevor er den erwarteten Nutzen darstellen kann.
Wichtige Erkenntnisse
- Bewerte nicht terminale Zustände an der Suchfront und verwende bei Terminalzuständen den exakten Nutzen.
- Ein tatsächlicher Sieg muss höher bewertet werden als jede Schätzung für eine nicht terminale Stellung.
- Eine gewichtete Bewertungsfunktion addiert gemessene Merkmale, die mit ihren Gewichten multipliziert werden.
- Merkmalswerte müssen keine Wahrscheinlichkeiten sein.
- Wechselwirkungen können kombinierte Merkmale oder veränderliche Gewichte erfordern.
- Zufallsknoten benötigen Nutzenwerte auf einer aussagekräftigen Skala.
4.2 Entscheiden, wo die Suche endet und wo sie tiefer geht
Heuristisches Minimax beendet die Suche, bevor das Spiel endet. Seine Antwort ist für den durchsuchten Baum mit den zugewiesenen Werten an der Suchfront optimal. Es kann im tatsächlichen Spiel trotzdem einen Zug wählen, der zur Niederlage führt, wenn diese Schätzungen das weitere Geschehen nicht erfassen.
Terminalzustände und Suchabbrüche unterscheiden
Ein Terminalzustand hat ein bekanntes Ergebnis. Ein Abbruch wegen der Tiefenbeschränkung lässt das Spiel unvollendet und benötigt eine Schätzung. Prüfe beides in dieser Reihenfolge:
H-MINIMAX(s, d):
if Is-Terminal(s): return Utility(s, MAX)
if Is-Cutoff(s, d): return Eval(s)
if To-Move(s) == MAX:
return max over a of H-MINIMAX(Result(s, a), d + 1)
return min over a of H-MINIMAX(Result(s, a), d + 1)
Der Abbruchtest prüft gewöhnlich, ob die Tiefe eine Schranke erreicht hat. Alpha-Beta kann denselben heuristischen Baum beschneiden. Die Beschneidung bleibt bezogen auf diese Werte an der Suchfront exakt; sie macht aus Schätzungen keine tatsächlichen Spielergebnisse.
Unter einer Zeitbeschränkung behält die iterative Vertiefung die Aktion aus der tiefsten abgeschlossenen Iteration. Eine teilweise durchsuchte Wurzel auf größerer Tiefe kann den ersten Zweig bevorzugen, nur weil seine Konkurrenten noch nicht bewertet wurden.
Einen taktischen Abtausch abschließen
Eine ruhige Stellung ist so stabil, dass eine kurze erzwungene Fortsetzung ihre Bewertung wahrscheinlich nicht stark verändert. Die Ruhesuche sucht in unruhigen Stellungen über die normale Tiefe hinaus weiter und folgt dabei gewöhnlich Schlagzügen, bis der Abtausch abgeschlossen ist.
Angenommen, die weiße Dame schlägt genau an der Tiefenbeschränkung einen Bauern. Der Materialwert verbessert sich um 1. Schwarz kann aber im nächsten Halbzug die Dame zurückschlagen. Die Nettoveränderung des Materials ist:
Ein Abbruch nach dem ersten Schlagzug meldet +1; eine kurze Erweiterung um Schlagzüge zeigt −8. Das Problem ist die Bewertung mitten in einem Abtausch, nicht ein Versagen der Rückführungsregel von Minimax.
Hinausgezögerte Verluste erkennen
Der Horizonteffekt tritt auf, wenn ein Programm einen unvermeidbaren Verlust über die Suchtiefe hinauszögert. Ein gefangener Läufer kann nach mehreren Schachgeboten mit Bauern trotzdem verloren gehen. Sieht die Suche die Schachgebote, endet aber vor dem Schlagen des Läufers, kann sie Bauern opfern, um diesen zukünftigen Verlust zu verbergen.
Eine singuläre Erweiterung sucht entlang eines Zugs tiefer, der deutlich besser als seine Alternativen ist. Programme erweitern auch zwingende Schachgebote oder das Zurückschlagen. Erweiterungen investieren zusätzliche Tiefe in ausgewählte Varianten; sie brauchen ein Budget, damit die Suche noch abgeschlossen werden kann.
| Verfahren | Grundlage für weniger oder mehr Arbeit |
|---|---|
| Alpha-Beta | Eine Schranke beweist, dass ein Zweig die Entscheidung nicht verbessern kann. |
| Vorwärtsbeschneidung | Eine Heuristik sagt voraus, dass manche Züge unwichtig sind. |
| Ruhesuche oder taktische Erweiterung | Eine unruhige oder zwingende Variante braucht mehr Tiefe. |
Vorwärtsbeschneidung, etwa wenn nur die besten wenigen Züge behalten werden, kann den Gewinnzug verwerfen. Ihre Einsparungen bieten nicht die Garantie von Alpha-Beta.
Suche durch exakt gespeichertes Wissen ersetzen
Ein Eröffnungsbuch liefert untersuchte frühe Züge. Endspieldatenbanken arbeiten durch retrograde Analyse von bekannten Ergebnissen aus rückwärts. Schach-Endspieldatenbanken für sieben Figuren schließen die beiden Könige ein und liefern exakte Ergebnisse für die abgedeckten Endspiele. Die Regeln und Zustandsinformationen beim Nachschlagen müssen zum gespielten Spiel passen.
Wichtige Erkenntnisse
- Verwende bei Terminalzuständen den exakten Nutzen und bei nicht beendeten Stellungen am Suchabbruch eine Bewertung.
- Spiele die beste Aktion aus der tiefsten abgeschlossenen Iteration.
- Die Ruhesuche schließt taktische Abtausche vor der Bewertung ab.
- Der Horizonteffekt kann dazu führen, dass eine verschwenderische Verzögerung eines unvermeidbaren Verlusts belohnt wird.
- Vorwärtsbeschneidung kann den besten Zug verwerfen; Alpha-Beta beweist, dass seine Cutoffs sicher sind.
- Eröffnungsbücher und Endspieldatenbanken liefern gespeichertes Wissen statt einer neuen Suche.
5Zufallsergebnisse mit Wahrscheinlichkeiten zurückführen
Einige Zweige werden von einem Spieler gewählt, andere durch Zufall bestimmt. Die Rückführungsregel muss diesen Unterschied an jedem Knoten berücksichtigen. Gewichtete Mittelwerte ermöglichen es einem Programm, Würfel oder ein Modell unvorhersehbaren Verhaltens zu berücksichtigen. Sie machen aber auch die numerische Skala der Bewertungsfunktion wichtig. Die richtige Wahl hängt sowohl von den Spielregeln als auch davon ab, wie genau das Programm seinen Gegner modelliert.
5.1 Werte über Zufallsknoten berechnen
Ein Zufallsknoten stellt ein Zufallsereignis dar. Seine Zweige führen mögliche Ergebnisse und deren Wahrscheinlichkeiten auf, die zusammen 1 ergeben. Kein Spieler wählt den für ihn günstigsten Zweig.
Die zu jedem Knoten gehörende Regel anwenden
| Knoten | Zurückgeführter Wert |
|---|---|
| Terminal | Sein Nutzen |
| MAX | Der maximale Wert der Kinder |
| MIN | Der minimale Wert der Kinder |
| Zufall | Der wahrscheinlichkeitsgewichtete Mittelwert der Werte der Kinder |
Für Ergebnisse hat ein Zufallsknoten den Wert:
Expectiminimax kombiniert alle vier Regeln. Expectimax verwendet MAX und Zufall, wenn es keinen minimierenden Spieler gibt. Ein Wahrscheinlichkeitsmodell eines zufällig spielenden Gegners kann auch in einem Spiel Zufallszweige liefern, dessen Zugregeln deterministisch sind.
Über Zufall und Gegenspiel rückwärts arbeiten
MAX wählt L oder R. Auf jeden Zug folgen ein Zufallsereignis und dann eine Wahl von MIN.
Nach L ergibt eine faire Münze zwei MIN-Knoten. Ihre Blätter sind (3, 7) und (8, 4). MIN gibt 3 und 4 zurück. Der Zufallsknoten ergibt dann:
Nach R führen die Wahrscheinlichkeiten 0,25 und 0,75 zu MIN-Knoten mit den Blättern (10, 1) und (6, 5). Ihre Werte sind 1 und 5, also:
MAX wählt R, weil 4 größer als 3,5 ist. Würde man zuerst die terminalen Blattwerte mitteln, träte der Zufall an die Stelle der Entscheidung von MIN. Verarbeite jeden Knoten, nachdem seine Kinder ausgewertet wurden.
Die richtigen Wahrscheinlichkeiten zuweisen
Zwei faire Würfel haben 36 gleich wahrscheinliche geordnete Ergebnisse. Beim Backgammon werden umgekehrte Reihenfolgen wie 3-5 und 5-3 zu demselben Wurf zusammengefasst. Das ergibt 21 verschiedene Würfe: sechs Pasche mit je der Wahrscheinlichkeit 1/36 und 15 Würfe ohne Pasch mit je der Wahrscheinlichkeit 1/18. Die Probe lautet:
Würde man allen 21 Würfen die Wahrscheinlichkeit 1/21 geben, würden Pasche zu stark und Würfe ohne Pasch zu schwach gewichtet. Gleich aussehende Zweige müssen nicht gleich wahrscheinlich sein.
Hat jede Entscheidungsstufe zulässige Züge und ein Zufallsereignis mit Ergebnissen, kostet die Suche über solcher Stufen etwa . Die Tiefenkonvention muss berücksichtigen, wie oft Zufall auftritt. Bei ungefähr 20 zulässigen Zügen und 21 Würfen begrenzen die zusätzlichen Zufallszweige beim Backgammon den vollständigen Vorausblick schnell.
Beispielsweise ergeben zwei Stufen mit jeweils 21 Zufallsergebnissen und 20 Aktionen insgesamt Pfade. Zähle bei der Schätzung dieses Aufwands Zufallsereignisse getrennt von den Halbzügen der Spieler.
Nur bei beschränkten ungesehenen Ergebnissen beschneiden
Ein teilweiser Mittelwert ist keine Minimax-Schranke. Liegen die Nutzen zwischen 0 und 10 und hat das erste von zwei gleich wahrscheinlichen Ergebnissen den Wert 2, liegt der Wert des gesamten Knotens zwischen 1 und 6. Insbesondere gilt:
Hat MAX bereits einen anderen Zug mit dem Wert 7, kann dieser Zufallsknoten ihn nicht übertreffen und das verbleibende Ergebnis kann übersprungen werden. Ohne eine geeignete Schranke für ungesehene Werte könnte ein extremes Ergebnis den Mittelwert noch so stark verändern, dass sich die Wahl umkehrt.
Wichtige Erkenntnisse
- Zufallsknoten geben gewichtete Mittelwerte zurück, keine Maxima oder Minima.
- Werte Kinder aus, bevor du sie an ihrem Elternknoten kombinierst.
- Prüfe, ob die Zufallswahrscheinlichkeiten zusammen 1 ergeben.
- Pasche und Würfe ohne Pasch haben beim Backgammon unterschiedliche Wahrscheinlichkeiten.
- Zufallsverzweigungen vervielfachen den Suchaufwand.
- Schranken für nicht untersuchte Ergebnisse können einen Cutoff an einem Zufallsknoten rechtfertigen.
5.2 Eine Nutzenskala und ein Gegnermodell wählen
Minimax fragt, welches Ergebnis ein Gegner durchsetzen kann. Expectimax fragt, welcher durchschnittliche Nutzen aus einem Wahrscheinlichkeitsmodell folgt. Ihre Entscheidungen können selbst auf demselben Baum unterschiedlich ausfallen, weil sie unterschiedliches Verhalten darstellen.
Optimales und zufälliges Gegenspiel vergleichen
Bei den MIN-Zweigen A = (4, 9, 6), B = (2, 15, 13) und C = (5, 8, 10) wählt Minimax C mit einer Garantie von 5. Wählt der Gegner stattdessen jede Antwort gleichverteilt, betragen die Erwartungswerte etwa 6,33, 10 und 7,67. Expectimax wählt B.
Unter dem Gleichverteilungsmodell ist das sinnvoll, aber ein geschickter Gegner kann auf B mit 2 antworten. Expectimax nimmt nicht an, dass der Gegner einen Durchschnitt minimiert. Es verwendet die angegebenen Wahrscheinlichkeiten. Bei einem korrekten Modell maximiert es den erwarteten Nutzen; der Schutz für den ungünstigsten Fall ist schwächer als bei Minimax. Im Durchschnitt kann es genauso gut wie Minimax abschneiden, wenn beide denselben Zug empfehlen.
Ein Baum kann Modelle mischen. Der Knoten eines gegnerisch handelnden Agenten bildet ein Minimum, während der Knoten eines zufällig handelnden Agenten einen gewichteten Mittelwert bildet. Verwende die Regel für den Agenten, der an diesem Knoten handelt, statt eine Regel für jede Nicht-MAX-Ebene zu verwenden.
Warum die Reihenfolge allein nicht ausreicht
Angenommen, Zug A ergibt 2 mit Wahrscheinlichkeit 0,6 und 3 mit Wahrscheinlichkeit 0,4. Zug B ergibt 1 mit Wahrscheinlichkeit 0,6 und 4 mit Wahrscheinlichkeit 0,4:
A hat den größeren Erwartungswert. Kubiere nun jeden terminalen Wert. Ihre Rangfolge bleibt gleich, aber die Erwartungswerte werden zu:
B gewinnt nun den Vergleich. Transformierte Ergebnisse zu mitteln ist etwas anderes, als ihren Mittelwert zu transformieren. Das Kubieren verstärkt den Vorteil des hohen Ergebnisses von B so weit, dass sich die Entscheidung ändert.
Entscheidungen mit den richtigen Transformationen erhalten
| Rückführungsregel | Transformation, die Entscheidungen erhält |
|---|---|
| Minimax | Jede einheitlich angewendete streng monoton steigende Transformation |
| Erwarteter Nutzen | Eine positive affine Transformation, mit |
Eine positive affine Transformation multipliziert jeden Erwartungswert mit derselben positiven Zahl und addiert dieselbe Konstante. Die Anwendung von ergibt für A den Wert 29 und für B den Wert 27, sodass A bevorzugt bleibt.
Wären A und B MIN-Knoten, wären ihre Werte vor dem Kubieren 2 und 1 und danach 8 und 1. Ihre Reihenfolge bliebe unverändert. Maxima und Minima wählen einen Wert eines Kindes; Mittelwerte kombinieren die Größen mehrerer Werte.
Eine bei Zufall verwendete Bewertungsfunktion sollte daher den angestrebten erwarteten Nutzen auf einer einheitlichen Skala schätzen, etwa die Gewinnwahrscheinlichkeit oder eine positive affine Transformation davon. Ein nichtlinearer Wert zur Rangordnung kann für deterministisches Minimax geeignet sein, bei Zufall aber zu falschen Abwägungen von Risiken führen.
Wichtige Erkenntnisse
- Wähle Minimax für optimales Gegenspiel und den Erwartungswert für ein Wahrscheinlichkeitsmodell.
- Ein korrektes Zufallsmodell optimiert den durchschnittlichen Nutzen bei schwächerem Schutz für den ungünstigsten Fall.
- Streng monoton steigende Transformationen erhalten Minimax-Entscheidungen.
- Positive affine Transformationen erhalten Entscheidungen nach erwartetem Nutzen.
- Eine nichtlineare Transformation kann eine auf Mittelwerten beruhende Wahl ändern.
6Einen wachsenden Suchbaum durch Simulationen steuern
Wenn der Raum möglicher Züge riesig ist, kann ein Programm Ergebnisse durch Simulation von Fortsetzungen schätzen und spätere Arbeit auf nützliche Zweige lenken. Die Monte-Carlo-Baumsuche speichert diese Ergebnisse in einem wachsenden Baum. Ihre Selektionsregel bringt bereits stark erscheinende Züge mit Zügen ins Gleichgewicht, deren Schätzungen noch unsicher sind. Für die endgültige Aktionswahl müssen die gesammelten Belege beurteilt und taktische Antworten berücksichtigt werden, die eine Simulation übersehen kann.
6.1 Eine Iteration der Monte-Carlo-Baumsuche durchführen
Monte-Carlo-Baumsuche, kurz MCTS, schätzt Züge anhand simulierter Spiele und baut dabei einen Baum auf, der künftige Simulationen steuert. Eine simulierte Fortsetzung bis zum Ende ist ein Playout oder Rollout. Seine Strategie kann zufällige zulässige Züge wählen oder kostengünstiges Wissen nutzen, um ein sinnvolleres Spiel zu erzeugen.
Belege an jedem Knoten speichern
Führe eine Besuchszahl und eine kumulierte Belohnung . Verwende in einem Zwei-Personen-Spiel mit Sieg und Niederlage die Siege des Spielers, dessen Zug zum Knoten geführt hat. Ein Unentschieden fügt gewöhnlich einen halben Sieg hinzu. Dann schätzt die Erfolgsrate dieses Spielers.
Die Wurzel hat keinen eingehenden Zug. Ihre Besuche zählen trotzdem jede Iteration; Siege an der Wurzel können bei Bedarf aus Sicht des Spielers an der Wurzel erfasst werden. Die Werte der Kinder, die die Selektion steuern, müssen einheitlich den Blickwinkel des Spielers verwenden, der den eingehenden Zug gemacht hat.
Die vier Phasen wiederholen
- Selektion: Folge von der Wurzel aus einer Selektionsstrategie durch vorhandene Kinder, bis ein terminaler Knoten oder ein Knoten mit einem noch nicht ausprobierten Zug erreicht ist.
- Expansion: Füge bei einem nicht terminalen Knoten ein Kind für einen noch nicht ausprobierten zulässigen Zug hinzu.
- Simulation: Führe von diesem Kind aus ein Playout bis zu einem terminalen Ergebnis durch.
- Rückpropagation: Aktualisiere Besuche und Belohnungen für die Knoten auf dem gewählten Pfad.
Erreicht die Selektion einen terminalen Knoten, überspringe Expansion und Simulation. Sein bekanntes Ergebnis kann sofort zurückgeführt werden. Die vorübergehende Fortsetzung eines Playouts muss nicht als neue Baumknoten gespeichert werden: Die gewöhnliche Expansion fügt pro Iteration ein Kind hinzu.
Eine Aktualisierung der Belohnung nachvollziehen
Weiß handelt an der Wurzel. Selektion und Expansion folgen:
- n1, erreicht durch den Zug von Weiß;
- n2, erreicht durch den Zug von Schwarz;
- n3, erreicht durch den Zug von Weiß.
Das Playout endet mit einem Sieg von Schwarz. Erhöhe die Besuche an der Wurzel und an n1, n2 und n3 um jeweils eins. Erhöhe unter diesen drei Kindknoten die Siege nur an n2, weil der eingehende Zug zu n2 von Schwarz stammt. Die Kindknoten von Weiß erhalten keinen zusätzlichen Sieg. Wird an der Wurzel aus Sicht des Wurzelspielers gezählt, bleibt auch die eigene Gewinnsumme der Wurzel unverändert.
Ein Unentschieden würde der Belohnung jedes Kindes 0,5 hinzufügen. Würde man den Sieg von Schwarz an jedem Knoten als Erfolg zählen, würde Weiß Züge wählen, die Schwarz helfen.
Den Baum ungleichmäßig wachsen lassen
Wiederholte Iterationen konzentrieren Simulationen auf erfolgversprechende oder unsichere Zweige. Stark aussehende Züge erhalten tendenziell größere Teilbäume, während in schlechte Züge weniger Arbeit fließt. Die Suche legt nicht für jede Variante eine feste Tiefe fest. Sobald ein zulässiger Zug verfügbar ist, kann sie bei einer Zeitbeschränkung beendet werden und ihre gesammelten Statistiken nutzen.
Die endgültige Aktion ist gewöhnlich der Zug zum meistbesuchten Kind der Wurzel. Ein Zug mit zwei Siegen aus zwei Simulationen hat eine perfekte beobachtete Rate, aber wenig Belege. Ein häufig besuchter Zug wurde im Verlauf der Suche viel gründlicher untersucht.
Die reine Monte-Carlo-Suche weist den Zügen an der Wurzel unabhängige Playouts zu, ohne einen Entscheidungsbaum aufzubauen. Sie kann eine starke Antwort des Gegners wiederholt übersehen, weil das spätere Spiel weiterhin von der Playout-Strategie bestimmt wird. MCTS kann tiefere Entscheidungen verfeinern, während es Belege sammelt, auch wenn es weiterhin dauern kann, eine seltene taktische Widerlegung zu entdecken.
Wichtige Erkenntnisse
- MCTS speichert Besuchszahlen und kumulierte Belohnungen in einem wachsenden Baum.
- Verwende Selektion, Expansion, Simulation und Rückpropagation.
- Bei einem ausgewählten terminalen Knoten muss nur sein bekanntes Ergebnis zurückgeführt werden.
- Die Belohnung eines Kindes zählt den Erfolg des Spielers, dessen Zug zu diesem Kind führte.
- Die endgültige Aktion führt gewöhnlich zum meistbesuchten Kind der Wurzel.
6.2 Bekannte Belohnungen und unsichere Züge ins Gleichgewicht bringen
MCTS muss entscheiden, wo eine weitere Simulation am nützlichsten ist. Exploitation besucht erneut Züge, die bereits stark aussehen. Exploration untersucht Züge, für die weniger Belege vorliegen und die sich als besser erweisen könnten. Immer der höchsten beobachteten Gewinnrate zu folgen, kann die Suche auf ein frühes Glücksergebnis festlegen.
Einen UCB1-Wert berechnen
Der Wert der oberen Konfidenzschranke für das Kind lautet:
Der erste Term ist die beobachtete Gewinnrate. Der zweite ist ein Explorationsbonus. Er wächst, wenn der Elternknoten Besuche sammelt, und schrumpft, wenn das Kind mehr Besuche erhält. Der Logarithmus ist natürlich. Wähle bei der Selektion das Kind mit dem größten Gesamtwert.
Behandle ein unbesuchtes Kind als Kind mit unendlicher Priorität, statt durch null zu dividieren. Jeder zulässige Zug an einem Knoten wird ausprobiert, bevor die Selektion wiederholt besuchte Alternativen bevorzugt. MCTS mit dieser Selektionsregel heißt UCT, auf Bäume angewendete obere Konfidenzschranken.
Drei Kinder vergleichen
Ein Elternknoten hat 50 Besuche. Seine Kinder haben die Gewinn- und Besuchszahlen 21/30, 7/12 und 3/8. Mit und :
| Kind | Gewinnrate | Explorationsbonus | Gesamtwert |
|---|---|---|---|
| Erstes | 0,700 | 0,511 | 1,211 |
| Zweites | 0,583 | 0,807 | 1,391 |
| Drittes | 0,375 | 0,989 | 1,364 |
Das zweite Kind wird ausgewählt. Seine aktuelle Gewinnrate liegt unter der des ersten Kindes, aber sein Unsicherheitsbonus ist größer. Das dritte wurde noch seltener besucht, doch seine niedrigere Gewinnrate lässt seinen Gesamtwert knapp unter dem des zweiten liegen.
Mit ergeben sich aus denselben Zahlen Gesamtwerte von etwa 0,881, 0,869 und 0,725. Die Selektion bevorzugt nun das erste Kind. Kein Ergebnis hat sich geändert; das Programm hat geändert, wie stark es Unsicherheit belohnt.
Die Explorationskonstante interpretieren
Ein größeres positives gewichtet Exploration stärker. Setzt du die Konstante auf null, entfällt der Bonus und die Wahl erfolgt allein anhand des beobachteten Mittelwerts. Die Formulierung des Mehrarmigen-Bandit-Problems mit Belohnungen zwischen 0 und 1 begründet in dieser Form der Gleichung; praktische Spielprogramme stimmen die Konstante ab. Eine Änderung der Belohnungsskala verändert auch das Verhältnis zum Explorationsterm.
Bei jedem Elternknoten erfassen seine Kinder Siege für den Spieler, der dort wählt. Dadurch ist die Maximierung von UCB1 bei beiden Spielern am Zug sinnvoll. Würde man im gesamten Baum nur Siege von Weiß speichern und jeden Wert maximieren, würde Schwarz den Erfolg von Weiß bevorzugen.
Suchpriorität und Zugqualität unterscheiden
UCB1 wählt, wo die nächste Simulation eingesetzt wird. Ein großer Unsicherheitsbonus kann dazu führen, dass sich die Untersuchung eines wenig getesteten Zugs lohnt. Wähle am Ende der Suche das meistbesuchte Kind der Wurzel, nicht das Kind mit dem aktuell höchsten UCB1-Wert. Unter den Bedingungen von UCT für endliche Spiele und bei fortgesetzter Exploration nähert sich eine unbegrenzte Suche dem Minimax-Verhalten; ein endliches Budget lässt weiterhin Unsicherheit durch die Stichprobenziehung.
Wichtige Erkenntnisse
- UCB1 addiert einen Explorationsbonus zur beobachteten durchschnittlichen Belohnung.
- Ein größeres C begünstigt mehr Exploration.
- Unbesuchte Kinder erhalten Priorität, ohne durch null zu dividieren.
- Die Selektion maximiert den erwarteten Erfolg des aktiven Spielers.
- UCB1 wählt Simulationen aus; die endgültige Zugwahl nutzt gewöhnlich die Besuchszahl.
- Eine endliche Zahl von Simulationen lässt auch bei korrekter Regel Unsicherheit bestehen.
6.3 Suchverfahren für unterschiedliche Spiele wählen
Ein Suchverfahren muss zur Größe des Zugraums, zur Qualität der verfügbaren Bewertung und zur Art der Unsicherheit im Spiel passen. Dasselbe Zeitbudget kann zu sehr unterschiedlichen Entscheidungen führen, je nachdem, was das Verfahren untersucht.
Taktische Abdeckung und Simulation vergleichen
| Spieleigenschaft | Nützlicher Ansatz | Grund |
|---|---|---|
| Moderate Verzweigung, starke Bewertung, scharfe Taktik | Alpha-Beta mit Zugsortierung | Das Verfahren prüft die relevanten Antworten innerhalb seiner Tiefe. |
| Riesige Verzweigung oder schwache handgeschriebene Bewertung | MCTS | Simulationen lenken den Aufwand auf erfolgversprechende Teile des Baums. |
| Zufall bei einem überschaubaren flachen Baum | Expectiminimax oder Expectimax | Explizite Wahrscheinlichkeiten können direkt zurückgeführt werden. |
| Viele Zufallsergebnisse | MCTS mit Stichprobenziehung an Zufallsknoten | Stichproben schätzen Erwartungswerte, ohne pro Iteration jedes Ergebnis aufzulisten. |
| Unabhängige Präferenzen der Spieler | Nutzenvektoren | Ein einzelner Skalar kann nicht das Interesse jedes Spielers darstellen. |
Alpha-Beta kann innerhalb seiner Suchtiefe eine einzelne taktische Widerlegung finden. MCTS bevorzugt möglicherweise zunächst einen Zug, der die meisten zufälligen Playouts gewinnt, aber gegen eine präzise Antwort verliert. Während der Baum wächst, kann es diese Antwort entdecken, doch bei einem kleinen Simulationsbudget kann sie unentdeckt bleiben. Eine hohe Gewinnrate bei Playouts ist daher keine Garantie für den ungünstigsten Fall.
Verfahren mit wegweisenden Programmen verbinden
1997 nutzte IBMs Deep Blue Alpha-Beta-Suche, Spezialhardware und Schachbewertung, um Weltmeister Garri Kasparow über sechs Partien mit 3½–2½ zu besiegen. Der Erfolg zeigte, wie viel starke Suche und spielspezifische Bewertung zusammen erreichen können.
Bei Go war diese Kombination schwieriger. Ein leeres 19×19-Brett bietet 361 Möglichkeiten, einen Stein zu setzen, und eine Stellung anhand einfacher Merkmale zu beurteilen ist schwierig. MCTS wurde zu einem starken Ansatz, weil es Ergebnisse durch Spielen schätzen und einen selektiven Baum aufbauen konnte, ohne eine handgeschriebene statische Bewertungsfunktion zu benötigen.
AlphaGo kombinierte MCTS mit neuronalen Netzen, die Züge vorschlagen und Stellungen bewerten. Seine Beschreibung in Nature von 2016 ging seinem 4–1-Sieg über Lee Sedol im März 2016 voraus. AlphaZero nutzte später eine Bewertung durch ein neuronales Netz anstelle zufälliger Playouts und erreichte in Schach, Shogi und Go übermenschliche Spielstärke. Diese Programme zeigen, dass ein Suchverfahren unterschiedliche Quellen für Stellungswerte nutzen kann.
Starkes Spiel und das Lösen eines Spiels unterscheiden
Ein Programm kann einen Meister besiegen, ohne den Wert der Anfangsstellung zu beweisen. 2007 stellte Jonathan Schaeffers Team mithilfe von Suche und großen Endspieldatenbanken fest, dass Dame bei perfektem Spiel unentschieden endet. Das Lösen des Spiels bestimmt ein Ergebnis gegen jede mögliche gegnerische Strategie, nicht nur gegen die in Wettkämpfen getesteten Gegner.
Das Verfahren auf das Modell abstimmen
Ziehe in einem stochastischen Spiel während des Durchlaufens des Baums und der Playouts Zufallsergebnisse entsprechend ihren tatsächlichen Wahrscheinlichkeiten. Ein Ereignis mit Wahrscheinlichkeit 0,8 sollte über viele Stichproben etwa viermal so oft auftreten wie eines mit Wahrscheinlichkeit 0,2. So wird derselbe gewichtete Erwartungswert geschätzt, den die explizite Rückführung am Zufallsknoten berechnet.
Jeder Ansatz hängt weiterhin von korrekten Regeln und Zustandsübergängen ab. Tiefenbeschränktes Alpha-Beta hängt von seiner Bewertungsfunktion ab; MCTS hängt von seiner Simulations- oder Bewertungsstrategie und seinem endlichen Stichprobenbudget ab. Einen gegnerisch handelnden Spieler als zufällig zu modellieren, kann kostspielig sein, unabhängig davon, welches Suchverfahren die Antwort dieses Modells berechnet.
Wichtige Erkenntnisse
- Alpha-Beta ist stark bei Taktik innerhalb einer überschaubaren Suchtiefe.
- MCTS eignet sich für große Verzweigungsfaktoren und schwierig zu entwickelnde Bewertungsfunktionen.
- Ein Playout-Durchschnitt kann eine seltene entscheidende Widerlegung übersehen.
- Die Stichprobenziehung bei Zufall muss den Wahrscheinlichkeiten der Ereignisse folgen.
- Spiel auf Meisterniveau und der Beweis, dass ein Spiel gelöst ist, sind unterschiedliche Leistungen.
- Gelernte Bewertung kann mit beiden Suchverfahren kombiniert werden.
Adversarielle Suche: Beispiele
1Modelliere die Regeln und zeichne mögliche Spielverläufe
11 Schritte
- 1EinführungBeginne mit einem Spiel, das das Programm untersuchen kann
Ein Spielprogramm benötigt Regeln, die es auf einen Zustand anwenden kann. Es muss wissen, wer am Zug ist, welche Aktionen zulässig sind, was jede Aktion verändert und wann ein Ergebnis zu bewerten ist.
Sind diese Bestandteile ausdrücklich festgelegt, kann ein Spielbaum die Fortsetzungen zeigen. Einige Zweige gehören dem Programm, andere seinem Gegner. Dieser Unterschied verändert, was als brauchbarer Plan gilt.
- 2BeispielBeschreibe Tic-Tac-Toe
Verwende ein 3×3-Spielfeld und den Spieler am Zug als Zustand. Beginne mit einem leeren Spielfeld und X am Zug.
Eine Aktion wählt ein leeres Feld. Der Übergang setzt dort das aktuelle Zeichen und wechselt den Spieler am Zug. Eine Dreierreihe beendet das Spiel sofort; ein volles Spielfeld ohne Dreierreihe ergibt ein Unentschieden. Bewerte terminale Ergebnisse für X mit +1, 0 oder −1. Diese Regeln liefern die sechs Bestandteile, die ein Suchprogramm benötigt.
- 3KernaussageHalte Zufall und verborgenen Zustand auseinander
Auch bei einem sichtbaren Spielbrett kann es Zufallsereignisse geben: Beim Backgammon kommen Würfelwürfe hinzu. Ein Spiel kann stattdessen einen Teil seines Zustands verbergen, wie Poker die Karten.
Das sind getrennte Einordnungsmerkmale. Der Zufall bestimmt, wie Ergebnisse entstehen; die Information bestimmt, was ein Spieler beobachten kann. Die Anzahl der Spieler und die Frage, ob ihre Auszahlungen strikt entgegengesetzt sind, sind weitere Festlegungen im Modell.
- 4HerausforderungOrdne ein neues Spiel ein
Ein Spiel mit Spielsteinen für zwei Spieler hat einen vollständig sichtbaren Zustand. Vor jedem Zug bestimmt ein Glücksrad, welche Züge erlaubt sind. Jedes terminale Ergebnis gibt einem Spieler 1 und dem anderen 0. Wie lässt sich das Spiel nach Zufall, Information und Auszahlungsstruktur einordnen?
---reveal---
Es ist stochastisch, hat perfekte Information und eine konstante Summe bei strikt entgegengesetzten Interessen. Das Glücksrad fügt Zufall hinzu, ohne den Zustand zu verbergen; die feste Gesamtauszahlung ermöglicht ein MAX/MIN-Modell.
- 5ErklärungZähle Halbzüge von der Wurzel aus
Setze die aktuelle Stellung auf Tiefe null. Jede Kante fügt einen Halbzug hinzu: eine Aktion eines Spielers. Bei abwechselndem Spiel folgt Tiefe 1 auf die Aktion von MAX und Tiefe 2 auf die Antwort von MIN.
Ein vollständiger Schachzug umfasst gewöhnlich beide Züge. Eine Suche, die zwei vollständige Züge pro Spieler erreicht, hat daher Tiefe 4, nicht Tiefe 2. Die Beschriftung der Züge verhindert, dass Tiefe und Rückführungsregeln auseinandergeraten.
- 6BeispielBaue einen kleinen gleichmäßigen Baum auf
Stell dir an jedem nicht terminalen Knoten drei zulässige Aktionen vor. Tiefe 1 hat 3 Stellungen, Tiefe 2 hat 9 und Tiefe 3 hat 27 Blätter.
Jeder neue Halbzug vervielfacht die Anzahl der Pfade. Im tatsächlichen Spiel können Partien früh enden und die Anzahl der Züge kann sich ändern, aber die Schätzung mit einem gleichmäßigen Baum macht den Aufwand zusätzlicher Tiefe sichtbar, bevor ein Algorithmus gewählt wird.
- 7VerbindungErkenne wiederholte Zustände
X kann eine Ecke spielen, O die Mitte und X die gegenüberliegende Ecke. Wird die Reihenfolge der beiden Ecken von X umgekehrt, entsteht dasselbe Spielfeld mit demselben Spieler als Nächstem am Zug.
Der Baum enthält zwei Pfade zu einem Zustand. Das ist eine Zugumstellung. Ein Graph oder Zwischenspeicher kann das Ergebnis dieses Zustands gemeinsam nutzen, sofern der Schlüssel den Spieler am Zug und jeden anderen Teil der Regeln enthält, der das weitere Spiel verändert.
- 8HerausforderungBestimme Baumgröße und Tiefe
Ein Spiel mit abwechselnden Zügen bietet an jedem Knoten zwei Aktionen. Die Suche umfasst zwei Züge von MAX und zwei von MIN. Welche Tiefe und Blattzahl hat der gleichmäßige Baum?
---reveal---
Er hat Tiefe 4 in Halbzügen und Blätter. Jeder Spieler handelt zweimal, sodass entlang jedes Pfads vier einzelne Aktionen liegen. Tiefe 2 würde nur einen Zug pro Spieler umfassen.
- 9KernaussageEine Strategie behält die Antworten
Ein einzelner Pfad beschreibt einen vollständigen Spielverlauf, aber ein Gegner kann einen anderen Zweig wählen. Eine Strategie für MAX behält daher an jedem MAX-Knoten eine ausgewählte Aktion und an jedem MIN-Knoten jede zulässige Antwort.
Die spätere Aktion von MAX kann von der tatsächlich beobachteten Antwort abhängen. Die Strategie kann viele Pfade enthalten, obwohl sie das Verhalten von MAX in jeder erreichbaren Situation festlegt.
- 10HerausforderungVerbessere einen anfälligen Plan
Ein Programm speichert einen geplanten ersten Zug und eine erwartete Antwort des Gegners, gefolgt von einer Fortsetzung zum Sieg. Sein Spielmodell führt drei mögliche Antworten des Gegners auf. Was muss sich am Plan ändern, damit er eine vollständige Strategie beschreibt?
---reveal---
Das Programm braucht eine Aktionsregel nach jeder möglichen Antwort und nach späteren Entscheidungen des Gegners. Eine einzige Gewinnvariante zu kennen, genügt nicht, weil der Gegner bestimmt, welcher dieser Antwortzweige eintritt.
- 11ZusammenfassungVon Regeln zu einem nutzbaren Suchraum
Ein vollständiger Zustand und ein vollständiges Regelmodell bestimmen die möglichen Fortsetzungen. Ordne Zufall, Sichtbarkeit, Spieler und Auszahlungen ein, bevor du den Knoten Regeln zuweist.
Lies die Tiefe in einzelnen Halbzügen ab, schätze das Wachstum durch Verzweigung und erkenne Zugumstellungen als wiederholte Zustände. Eine Strategie wählt die Aktionen des Spielers und hält zugleich Reaktionen auf jede Antwort des Gegners bereit; der Baum macht diese Aufgaben sichtbar.
2Führe Ergebnisse zurück, um einen Zug zu finden
13 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungSchließe von Ergebnissen aus rückwärts
- 2BeispielBeginne mit den Antworten des Gegners
- 3BeispielTriff die Entscheidung an der Wurzel
- 4HerausforderungFühre Werte in einem neuen Baum zurück
- 5ErklärungGib rekursiven Aufrufen je eine Aufgabe
- 6TippBehandle das Spielende vor dem nächsten Zug
- 7HerausforderungRechne einen Negamax-Rückgabewert um
- 8ErklärungGib den gesamten Nutzenvektor zurück
- 9BeispielWerte zuerst den Spieler auf der tiefsten Ebene aus
- 10HerausforderungNutze die Gleichstandsregel eines anderen Spielers
- 11VerbindungWähle das richtige Gegnermodell
- 12HerausforderungKombiniere Vektorentscheidungen an der Wurzel
- 13ZusammenfassungNutze die Präferenz des jeweils Handelnden
3Vollziehe Beschneidung nach und verbessere die Suchreihenfolge
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungBeweise, dass ein Zweig nicht helfen kann
- 2ErklärungHalte die Schranken am Pfad
- 3BeispielFinde eine Alternative für MAX
- 4BeispielBrich einen MIN-Zweig ab
- 5HerausforderungFinde den umgekehrten Cutoff
- 6KernaussageEine Schranke genügt für die Ablehnung
- 7BeispielDurchsuche zuerst den stärksten Zweig der Wurzel
- 8ErklärungFinde kostengünstig Hinweise für die Sortierung
- 9HerausforderungInterpretiere eine zwischengespeicherte Schranke
- 10VerbindungInterpretiere den Aufwand im günstigsten Fall
- 11HerausforderungVerbinde Sortierung mit dem Zählen von Cutoffs
- 12ZusammenfassungBeschneide anhand von Belegen und speichere ihre Bedeutung
4Bewerte eine Suchfront, ohne die nächste Antwort zu verbergen
13 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungGib nicht beendeten Stellungen einen Wert
- 2ErklärungMiss Merkmale aus einem Blickwinkel
- 3BeispielZähle das Schachmaterial
- 4BeispielFüge einen Mobilitätsbeitrag hinzu
- 5HerausforderungBerechne einen weiteren Merkmalswert
- 6ErklärungPrüfe vor der Tiefenbeschränkung auf das Spielende
- 7BeispielErkenne einen irreführenden Schlagzug
- 8BeispielSchließe den Abtausch ab
- 9HerausforderungBewerte einen neuen Abtausch
- 10KernaussageUnterscheide eine Erweiterung von unsicherer Beschneidung
- 11HerausforderungNutze ein abgeschlossenes Suchergebnis
- 12VerbindungNutze gespeichertes Spielwissen
- 13ZusammenfassungSetze Tiefe dort ein, wo der Wert stark schwanken kann
5Berechne Erwartungswerte und prüfe das Modell
12 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungLass jede Knotenart anders handeln
- 2ErklärungVerwende bei Zufall einen gewichteten Mittelwert
- 3BeispielWerte MIN unterhalb des Münzwurfs aus
- 4BeispielVergleiche die zweite Aktion an der Wurzel
- 5HerausforderungKombiniere ein neues Paar von Knotenarten
- 6TippNimm nicht an, dass verschiedene Würfe gleich wahrscheinlich sind
- 7ErklärungWähle, wie du den Gegner modellierst
- 8BeispielÄndere die Skala, ohne die Rangfolge zu ändern
- 9HerausforderungPrüfe eine Transformation
- 10KernaussageNutze Schranken, bevor du Zufallsergebnisse überspringst
- 11HerausforderungBestimme die Wirkung eines falschen Gegnermodells
- 12ZusammenfassungStimme den Mittelwert auf die Entscheidung ab
6Baue einen Simulationsbaum auf und wähle, wo gesucht wird
16 Schritte
Speichere diese Einheit, um jede Interaktive Lektion Schritt für Schritt durchzugehen.
- 1EinführungSammle Belege beim Aufbau des Baums
- 2ErklärungErfasse Besuche und Belohnungen für den Spieler des eingehenden Zugs
- 3ErklärungVollziehe vier Phasen nach
- 4BeispielVerfolge den jedem Kind zugeordneten Spieler
- 5HerausforderungAktualisiere bei einem anderen Ergebnis
- 6ErklärungFüge einen Bonus für Unsicherheit hinzu
- 7BeispielBerechne den ersten Kandidaten
- 8BeispielVergleiche die übrigen Kandidaten
- 9HerausforderungVerändere das Gleichgewicht
- 10KernaussageBeende die Suche anhand der gesammelten Belege
- 11VerbindungAchte auf eine seltene Widerlegung
- 12BeispielErkenne, was hybride Programme verändert haben
- 13HerausforderungWähle für ein neues Spiel
- 14TippZiehe Zufallsergebnisse mit ihren tatsächlichen Gewichten
- 15HerausforderungUnterscheide Versuchspriorität und Zugwahl
- 16ZusammenfassungHalte Belege, Exploration und Spiel auseinander
Adversarielle Suche: Übungsaufgaben
Set 1: Modelliere Spiele und verfolge grundlegende Entscheidungen10 Übungsfragen
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Set 2: Wende Rückführungen an und prüfe Suchannahmen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 3: Kombiniere Suchwerte mit begrenzten Belegen10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 4: Vollziehe weiterreichende Folgen nach und vergleiche Modelle10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Set 5: Diagnostiziere Suchfehler und übertrage die Verfahren10 Übungsfragen
Speichere diese Einheit, um jede Antwort zu sehen und jedes Set zu üben.
Frage 1 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 2 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 3 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 4 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 5 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 6 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 7 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 8 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 9 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Frage 10 von 10
Antwort zeigenAntwort ausblenden
Speichere diese Einheit, um diese Antwort zu sehen.
Hängst du bei deiner eigenen Aufgabe fest? Hausaufgabenhilfe
Schlüsselbegriffe
A
Abbruchschranke
Alpha
Alpha-Beta-Beschneidung
Argmax
Auswahlregel bei Gleichstand
B
Besuchszahl
Beta
Bewertungsfunktion
D
Deterministisches Spiel
E
Endspieldatenbank
Eröffnungsbuch
Erwarteter Nutzen
Expansion
Expectimax
Expectiminimax
Exploitation
Exploration
G
Gegnermodell
Gelöstes Spiel
Gewicht
Glaubenszustand
H
Halbzug
Hauptvariante
Heuristisches Minimax
Horizonteffekt
I
Imperfekte Information
Iterative Vertiefung
K
Killerzugheuristik
M
Merkmal
Merkmalsinteraktion
Minimax
Minimax-Entscheidung
Minimax-Wert
Mobilität
Monte-Carlo-Baumsuche
N
Negamax
Neuronale Bewertung
Nichtnullsummenspiel
Nullsummenspiel
Nutzen
Nutzenvektor
P
Paranoide Annahme
Perfekte Information
Playout
Playout-Strategie
Positive affine Transformation
R
Rekursionsbasis
Retrograde Analyse
Rückpropagation
Ruhesuche
S
Selektion
Singuläre Erweiterung
Spielbaum
Spielzustand
Stichprobenziehung an Zufallsknoten
Stochastisches Spiel
Strategie
Streng monoton steigende Transformation
Suchbaum
T
Taktische Widerlegung
Terminaltest
Tiefensuche
Transpositionstabelle
Ü
Übergangsmodell
U
UCB1
UCT
V
Verzweigungsfaktor
Vorwärtsbeschneidung
Z
Zufallsknoten
Zugsortierung
Zugumstellung
Über diese Einheit
Erstelle deine eigenen Lernmaterialien
Mach aus deinen Notizen, Folien und Dokumenten Lernleitfäden, Übungsfragen, Karteikarten und 6 weitere Tools.