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.

68 Optimering af Minimax<br />

vigtigt at være opmærksom p˚a præcis hvilken information der er gemt i værdien<br />

for bræt<strong>til</strong>standen. Uanset hvilke kriterier undersøgelsen af bræt<strong>til</strong>standen tidligere<br />

er blevet foretaget med, vil værdien være et minimum for hvor godt enten<br />

Min eller Max vil klare sig for denne bræt<strong>til</strong>stand. Om det er Min eller Max<br />

afhænger af bræt<strong>til</strong>standens generation. Er generationen over bræt<strong>til</strong>standen en<br />

Min-generation er bræt<strong>til</strong>standen selv af en Max-generation og omvendt.<br />

Værdien gemt i bræt<strong>til</strong>standen kommer alts˚a ikke <strong>til</strong> at blive bedre end den allerede<br />

er set fra Max eller Min’s syn generationen over bræt<strong>til</strong>standen. S˚a hvis Min<br />

generationen over arbejder med en beta-værdi, der er lige s˚a stor eller større end<br />

den gemte værdi, behøver den ikke lave en nye undersøgelse af bræt<strong>til</strong>standen,<br />

da der allerede findes en lige s˚a god eller bedre løsning. Er det ikke <strong>til</strong>fældet,<br />

bliver den nødt <strong>til</strong> at starte en ny undersøgelse af bræt<strong>til</strong>standen med de nye<br />

alpha og beta værdier, da det ikke kan garanteres at værdien for bræt<strong>til</strong>standen<br />

ikke reelt er højere end hvad den forrige undersøgelse var kommet frem <strong>til</strong>, da<br />

den blev afsluttet.<br />

Er det Max, der er i gang generationen før bræt<strong>til</strong>standen, skal der i stedet<br />

checkes om alpha-værdien er mindre end eller lige s˚a stor som den gemte værdi.<br />

Er den mindre end eller lige s˚a stor er der ingen grund <strong>til</strong> at undersøge bræt<strong>til</strong>standen<br />

igen.<br />

Normalt checker Min- eller Max-funktionen om et træk resultere i en bræt<strong>til</strong>stand<br />

der allerede eksisterer, hvis den gør det <strong>til</strong>føjer den bræt<strong>til</strong>stand som et<br />

barn og <strong>til</strong>føjer sig selv som forældre p˚a bræt<strong>til</strong>standen, og s˚a gøres der ellers<br />

ikke mere ved den. Men med alpha beta-pruning inde i billedet, stopper den<br />

ikke længere. Ligesom hvis den ikke havde konstateret at der allerede fandtes<br />

en s˚adan bræt<strong>til</strong>stand, kører den enten Max eller Min p˚a <strong>til</strong>standen, dog med<br />

den lille forskel, at udover at sende alpha og beta værdierne med, sender den en<br />

værdi der indikere om bræt<strong>til</strong>stand fandtes i forvejen eller ej.<br />

Det første Min eller Max gør, i <strong>til</strong>fælde af at bræt<strong>til</strong>standen allerede eksisterede,<br />

er at sammenligne henholdsvis alpha og beta med bræt<strong>til</strong>standens gemte værdi.<br />

Er værdien for Min’s vedkommende mindre end eller lig med alpha eller for<br />

Max’s vedkommende større end lig med beta, stoppes processen der og værdien<br />

gemt i bræt<strong>til</strong>standen returneres. Er det ikke <strong>til</strong>fældet fortsætter Min og Max<br />

p˚a sædvanligvis.<br />

5.4.4 Fordele og ulemper:<br />

Sammenlignet med en almindelige Minimax algoritme har Alpha-Beta versionen<br />

ingen ulemper, da den altid vil kom frem <strong>til</strong> samme løsning, bare hurtigere. Den<br />

eneste forskel der kan komme <strong>til</strong> syne er, at der kan være mindre variation i<br />

Alpha-Beta versionens træk. Dette skyldes at den kunstige intelligens er sat

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

Saved successfully!

Ooh no, something went wrong!