Informacje i teoria
Monte Carlo Tree Search (MCTS) buduje drzewo przeszukiwań przyrostowo, powtarzając cztery fazy i wykorzystując losowe symulacje zamiast ręcznie zaprojektowanej funkcji oceny.
Cztery fazy
- Selekcja — zaczynając od korzenia, schodzimy w dół drzewa, wybierając za każdym razem dziecko maksymalizujące wartość UCB1, aż dotrzemy do węzła z niewypróbowanymi ruchami lub bez dzieci.
- Ekspansja — dodajemy jeden nowy węzeł-dziecko dla niewypróbowanego ruchu.
- Symulacja (rollout) — rozgrywamy losowe, ale legalne ruchy od nowego węzła aż do zakończenia gry.
- Propagacja wsteczna (backpropagation) — wracamy do korzenia, aktualizując liczbę odwiedzin i wygranych na każdym węźle wzdłuż ścieżki.
UCB1: równowaga między eksploracją a eksploatacją
Upper Confidence Bound zastosowany do drzew (UCB1) wybiera
dziecko maksymalizujące wyrażenie
winRate + C·√(ln(parentVisits) / childVisits).
Pierwszy człon faworyzuje ruchy, które często wygrywały
(eksploatacja); drugi człon rośnie dla rzadko odwiedzanych
dzieci (eksploracja), dzięki czemu przeszukiwanie wciąż
próbkuje obiecujące, lecz słabo zbadane gałęzie zamiast
skupiać się wyłącznie na wczesnych wynikach.
C = √2 ≈ 1,41 to teoretycznie uzasadniona
stała dla nagród z przedziału [0,1].
Bez potrzeby heurystycznej oceny
W przeciwieństwie do minimax, który wymaga ręcznie zaprojektowanej funkcji oceny do punktowania pozycji nieterminalnych, MCTS szacuje wartość pozycji wyłącznie na podstawie wyników losowych symulacji. Dzięki temu nadaje się do gier, w których trudno jest zaprojektować dobre heurystyki.
Zbieżność i zastosowania praktyczne
Wraz ze wzrostem liczby symulacji liczba odwiedzin koncentruje się na najsilniejszych ruchach, a oszacowania współczynnika wygranych zbiegają do rzeczywistych wartości gry. MCTS dobrze skaluje się przy dużych współczynnikach rozgałęzienia, dlatego napędzał systemy AlphaGo i AlphaZero, w których połączono go z głębokimi sieciami neuronowymi zastępującymi losowe symulacje wyuczonymi oszacowaniami wartości i polityki.