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.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