3 RJEŠAVANJE ZADATAKA METODAMA PRETRAŽIVANJA
Monte Carlo pretraživanje stabla
Monte Carlo pretraživanje stabla (engl. MCTS – Monte Carlo Tree Search)
je univerzalni
algoritam određivanja poteza kod igre dvaju igrača, a najviše je uspjeha postigao u kompleksnim igrama
kod kojih se MinMax pretraživanje ne bi moglo primijeniti zato što je potencijalni prostor rješenja zadatka
prevelik. Primjer je igra Go. MinMax pretraživanje je bilo uspješno dok se nije došlo do igara čija je
složenost veća od igre šaha. IBM Deep Blue koji je pobijedio Garija Kasparova temeljio se je na
MinMax algoritmu, ali se kod igre Go taj algoritam nije mogao primijeniti pa je stoga razvijena i
predložena MCTS metoda. Temeljni dio ovog postupka je usmjeravanje na otvaranje čvorova koji najviše
obećavaju, šireći stablo pretraživanja slučajnim uzorkovanjem prostora pretraživanja. Najveći problem
ovakvih kompleksnijih zadataka je kombinacijska eksplozija, eksponencijalno širenje broja mogućih
akcija, a to je posebno prisutno u naglom rastu broja poteza koje dva igrača mogu odigrati kako igra
napreduje.
Ideja Monte Carlo metode temelji se na predviđanju kolika je vjerojatnost da neki potez dovede
do pobjede. Ako bismo je mogli odrediti, sigurno bi bilo vjerojatnije da ćemo u igri i pobijediti. Monte Carlo
pretraživanje stabla sastoji se od 4 koraka: izbor – širenje – simuliranje – ažuriranje (engl. Selection
– Expansion – Simulation – Backpropagation)
vrijednosti pojedinih čvorova stabla s ciljem pronalaska
konačnog rješenja koje ima najveću vjerojatnost pobjede.
Temelj metode je virtualno igranje igre od početka do kraja slučajnim izborom sljedećeg poteza.
Na temelju konačnog rezultata, svakom se čvoru pridodaje vjerojatnost koja ovisi o tome koliko je taj čvor(
pridonio pobjedi. Naglasak je na „slučajnom izboru poteza”, a što se više simulacija napravi, to je i veća
šansa pronalaska dobrog poteza. Pogledajmo primjer. Kod igre križić-kružić pretpostavimo da se
nalazimo u situaciji prikazanoj na slici 3-23. Početni čvor prikazan na vrhu je naš korijenski čvor s0, a
čvorovi sljedećeg reda s01, s02 itd. U ovom ćemo primjeru korigirati težine, pa će pobjeda nositi +1,
gubitak -1, a neriješeno 0. Sljedeći na redu je križić (x). Slučajnim izborom odigramo prvu virtualnu
partiju tako da izaberemo prvi potez i vrlo brzo izgubimo. Kod određivanja vjerojatnosti osim ishoda igre
u proračun uzimamo i broj simulacija koje smo napravili startajući iz tog čvora, pa vrijednost ishoda igre
podijelimo s tim brojem. Na primjer, u našem slučaju krenuli smo prvim putem i to samo jedanput, pa je
N = 1. Na kraju smo izgubili i ostvarili W = -1, pa su težine čvorova u
s0
= -1/1 i u
s01
= -1/1. Sada odigramo
još dva slučajna poteza do kraja (slika 3-24) od kojih jedan daje pobjedu, a jedan neriješeno. Sljedeći je
korak unatrag ažuriranje svih težina čvorova koji su prethodili novim simulacijama. Iz početnog čvora
odigrali smo tri igre, pa je N = 3. Jedanput smo dobili, jedanput izgubili, a jedanput igrali neriješeno, pa
je u
s0
= (-1+1+0)/3 = 0/3, ali on i nije toliko bitan s obzirom na to da mi trebamo odlučiti koji potez izabrati
na sljedećoj razini. Potez s01 je ostao na staroj težini u
s01
= -1/1, a kod poteza s02 odigrali smo dvije igre
(N = 2), jedanput dobili i jedanput igrali neriješeno, pa je u
s02
= (1+0)/2 = 1/2 , što je veće od težine za
s01, pa bismo se, bez daljnjih simulacija, odlučili za s02.
Ovo je jednostavni primjer kod kojeg smo napravili samo tri slučajne simulacije. Naravno, što je
broj simulacija veći, to je i veća šansa da smo napravili dobru odluku. Kod Monte Carlo pretraživanja
svakom simulacijom ažuriraju se sve težine na toj grani. Na primjer, da smo napravili sve moguće
simulacije koje smo napravili kod MinMax pretraživanja za stanje s0 prikazane na slici 3-23, čvorovi
druge razine imali bi težine u
s01
= -1/2, u
s02
= 1/2 i u
s03
= 1/1, pa bismo se kao i kod MinMax metode
odlučili za s03 koji vodi u najbržu pobjedu.
U prethodnom primjeru težinu čvora je određivao samo broj pobjeda (W
i
) i broj simulacija (N
i
)
koje su startale od tog i-tog čvora
(3-10)
ali je uobičajeno da se kod Monte Carlo metode težina definira mjerom koja se zove gornja granica
povjerenja (engl. UPC – Upper Confidence Bound):
3
(3-11)