09.09.2013 Views

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

SHOW MORE
SHOW LESS

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 , ß )

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!