Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet
Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet
Kunstig Intelligens til Brætspillet Taiji - Danmarks Tekniske Universitet
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
5.4 Alpha-beta pruning 61<br />
Alpha-beta pruning kan anvendes sammen med minimax algorithmen <strong>til</strong> at begrænse<br />
mængden af grene, der er skal søges i gennem i spiltræet. Ved hjælp af<br />
alpha beta pruning er det muligt at afgøre om det er værd at fortsætte søgningen<br />
ned af en gren, eller om det allerede kan ses at et bedre resultat kan opn˚as anden<br />
steds. Dette gøres ved at de henholdsvis bedste værdier for max og min gemmes<br />
som alpha og beat-værdier. N˚ar en søgning n˚ar enden af en gren, er det muligt<br />
at sammenligne værdien af denne med alpha eller beta-værdien, og afgøre om<br />
der er grund <strong>til</strong> at fortsætte søgningen eller ej. Disse afbrydelser kan forsætte<br />
længere op gennem træet, men minimum et blad skal være besøgt før en gren<br />
kan klippes fra i søgningen.<br />
Alpha anvendes <strong>til</strong> at gemme den hid<strong>til</strong> bedste løsning for Max p˚a vejen <strong>til</strong> det<br />
p˚agældende stadie, mens beta anvendes ligeledes for min. Hvis Max-funktionen<br />
et sted inde i søgningen modtager en værdi fra et af børnene, som er større end<br />
eller lige s˚a stor som beta-værdien for Min en generation over den nuværende<br />
Max, s˚a afbryder Max sin igangværende søgning og returnere den fundne værdi<br />
<strong>til</strong> den igangværende Min-funktion generationen højere oppe. Max afbryder<br />
her fordi, det lige er blevet bekræftet, at denne gren kun er p˚a niveau med<br />
eller d˚arligere end overst˚aende Min-funktions hid<strong>til</strong> bedste løsning, og det at<br />
forstsætte søgningen vil kun vise hvor meget d˚arligere grenen er. Hvilket er irrelevant,<br />
da Min-funktionen under alle omstændigheder aldrig vil vælge denne<br />
gren, n˚ar der allerede er fundet en bedre mulighed.<br />
5.4.1 Pseudo-kode for Minimax med Alpha-Beta pruning:<br />
Funktion : AI−AlphaBeta ( s p i l l e r , s t a d i e ) , r e t u r n e r e et træk<br />
Input : s p i l l e r , s p i l l e r n e som s t˚a r f o r tur .<br />
s t a d i e , s p i l l e t s nuværende s t a d i e .<br />
IF s p i l l e r = hvid THEN Max( s t a d i e , −i n f , i n f )<br />
ELSE Min( s t a d i e , −i n f , i n f )<br />
Funktion : Max(S , a , ß ) , r e t u r n e r e en værdi f o r s t a d i e t<br />
Input : S , det a k t u e l l e s t a d i e i s p i l l e t .<br />
a , den a k t u e l l e Alpha værdi .<br />
ß , den a k t u e l l e Beta værdi .<br />
IF S er et e n d e l i g t s t a d i e<br />
THEN v = e v a l u e r i n g a f S RETURN v<br />
v = −i n f<br />
FOR a l l e efterkommere a f S ( s )<br />
m = Min( s , a , ß )