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.3 Hash funktioner 59<br />

5.3.1 Test af hashfunktioner<br />

Køretiderne er efter at den menneskelige spiller har foretaget første træk, da<br />

nogle af de kunstige intelligenser sætter en brik i midten uden at tænke sig om,<br />

hvis de har første træk, og derfor ikke kan bruges <strong>til</strong> sammenligning. Gældende<br />

træk er alts˚a andet træk i spillet, dette er blevet taget ti gange for hver størrelse<br />

af hver af kunstig intelligens og gennemsnittet af disse ti er hvad der ses i tabellen<br />

her under:<br />

4x4 Kun dybde hashFunction hashFunction2 hashFunction3<br />

AlphaBeta 5,040 1,127 1,555 1,178<br />

LocalArea 2,997 1,398 1,333 1,348<br />

Growth 0,183 0,144 0,092 0,096<br />

For et spillebræt p˚a fire gange fire ses det at de kunstige intelligenser kører<br />

betydeligt hurtigere n˚ar de tre hash funktioner anvendes sammen med dybden<br />

end n˚ar dybden anvendes alene. Der er ikke blevet lavet forsøg uden dybden som<br />

hash værdi, da denne er dybere integreret i koden og derfor ikke lige s˚a nem<br />

at fjerne i test henseende som de andre hashfunktioner. Overraskende er det<br />

hashFunction, som kun er baseret p˚a scoren, der klare sig bedst for AlphaBeta<br />

p˚a et fire gange fire bræt. Det kunne forventes at dette skyldes beregningstiden<br />

for værdigrafs metoden i hashFunction2 var større end den score baserede<br />

metode i hashFunction, men var dette <strong>til</strong>fældet ville hashFunction3’s resultat<br />

være d˚arligere en b˚ade hashFunction og hashFunction2, da denne anvender begge<br />

metoder, hvilket ikke er <strong>til</strong>fældet. HashFunction3 klarer sig stort set lige s˚a<br />

godt som hashFunction, hvilket m˚a betyde at problemet ligger i hashFunction2.<br />

HashFunction2 anvender som sagt værdigrafs metoden alene og heri opst˚ar problemet,<br />

da der ikke er meget variation i værdierne i en værdigraf af den størrelse:<br />

4 2 2 4<br />

2 1 1 2<br />

2 1 1 2<br />

4 2 2 4<br />

Mange spilstadier vil derfor f˚a samme hash-værdi og der vil s˚aledes være flere<br />

stadier, der skal søges igennem per søgning.<br />

9x9 Kun dybde hashFunction hashFunction2 hashFunction3<br />

AlphaBeta 62,56 41,34 4,22 3,95<br />

LocalArea 2,997 1,398 1,333 1,348<br />

Growth 20,12 1,82 1,34 0,82<br />

Den oprindelige frygt for at en hashfunktion baseret p˚a score ville give meget<br />

lille variation i starten af spillet, viser sig her begrundet. HashFunction klarer<br />

sig næsten lige s˚a d˚arligt som dybden anvendt alene. Mens hashFunction2 og 3

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

Saved successfully!

Ooh no, something went wrong!