Monte Carlo-tresøk i fire faser
Alfa-beta trenger en evalueringsfunksjon og en forgreningsfaktor som ikke er altfor stor. I go er det hundrevis av lovlige trekk i hver stilling, og det er vanskelig å se på en stilling hvem som leder. Monte Carlo-tresøk (Monte Carlo tree search, MCTS) klarer seg uten evalueringsfunksjon. Verdien av en stilling anslås i stedet med en utspilling (playout): et raskt parti fra stillingen helt til slutt, med trekk valgt av en utspillingspolicy (playout policy) som er billig og gjerne litt tilfeldig. Andelen seire over mange utspillinger er anslaget.
MCTS lagrer to tall i hver node: , antall utspillinger som har gått gjennom noden, og , samlet nytte for spilleren som gjorde trekket inn i noden, med seier som 1 og tap som 0. Én iterasjon har fire faser:
- Seleksjon. Fra roten velger en seleksjonspolicy (selection policy) barn etter barn til søket når en node med trekk som ikke er prøvd.
- Ekspansjon. Søket legger til ett nytt barn under den noden.
- Simulering. En utspilling kjøres fra det nye barnet til spillet er slutt.
- Tilbakepropagering. Resultatet sendes opp langs stien (tilbakepropagering, back-propagation): øker med 1 i alle nodene på stien, og resultatet legges til , sett fra spilleren som gjorde trekket inn i hver node.
Treet under er bygd opp av tolv utspillinger. B har vunnet alle sine fire, og under B har motspilleren prøvd to svar.
Prøv: trykk Neste trinn gjennom første iterasjon og se hvorfor seleksjonen går til B og videre til E, og hvilke tall som endres på vei tilbake til roten.
Iterasjonene gjentas så lenge det er tid. Til slutt spiller MCTS trekket med flest utspillinger, ƒtrekkvalget i MCTS, og ikke trekket med høyest gevinstandel, fordi et trekk med få utspillinger kan ha høy andel ved flaks.
RegneeksempelÉn iterasjon går R → P → Q og legger til den nye noden T. Simuleringen ender med tap for spilleren i roten. Før iterasjonen er P 6/10 og Q 3/5 (U/N). Oppdater tallene.Vis løsningSkjul løsning
Steg 1. Hvem gjorde trekkene? P er et trekk av spilleren i roten, Q et trekk av motspilleren og T igjen et trekk av spilleren i roten.
Steg 2. Resultatet sett fra hver av dem. Tap for rotspilleren gir 0 til ham og 1 til motspilleren.
Steg 3. Oppdater. P får og , altså 6/11. Q får og , altså 4/6. T starter på 0/1, og roten får økt med 1.
I hvilken rekkefølge kjører én iterasjon av Monte Carlo-tresøk fasene sine?
Hva gjør utspillingspolicyen i MCTS?
Én iterasjon av MCTS går R → A → X, legger til et nytt barn under X og simulerer. Simuleringen ender med seier for spilleren i roten. er nytten for spilleren som gjorde trekket inn i noden (seier 1, tap 0). Hva er for X etter tilbakepropageringen? Svar med to desimaler.
R: N = 9
A: U = 4, N = 9
X: U = 5, N = 8
A er rotspillerens trekk,
X er motspillerens trekk.