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
86 Test og sammenligning af de implementerede AI’er 7.3.1 Test af LocalArea AI p˚a en 4x4 plade: Denne test er i sig selv ikke s˚a interessant, da resultatet skulle være præcist det samme som for AlphaBeta AI’en, da disse fungere ens p˚a en fire gange fire plade. Det er dog vigtigt at konstatere at LocalArea AI’en fungere korrekt inden den slippes løs p˚a de større brætter, hvor det vil være svært at gennemskue forskellen mellem deciderede fejl og generelle problemer med netop den metode. Her gør rammerne det tydeligt hvorvidt AI’en fungere, da en lokal fuld dybde søgning p˚a fire gange fire anvendt p˚a et fire gange fire bræt, ikke m˚a kunne tabe. LocalArea (sort) mod AlphaBeta (hvid): 4x4 Hvid score Sort score stilling for LocalArea 6 6 Uafgjort 2 2 Uafgjort 6 6 Uafgjort 5 5 Uafgjort 6 6 Uafgjort 5 5 Uafgjort 6 6 Uafgjort 8 8 Uafgjort 4 4 Uafgjort 5 5 Uafgjort I alt 53 53 50% LocalArea (hvid) mod AlphaBeta (sort): 4x4 Hvid score Sort score stilling for LocalArea 4 4 Uafgjort 6 6 Uafgjort 5 5 Uafgjort 5 5 Uafgjort 2 2 Uafgjort 4 4 Uafgjort 5 5 Uafgjort 4 4 Uafgjort 4 4 Uafgjort 6 6 Uafgjort I alt 45 45 50% Alle spil endte i uafgjort mellem AlphaBeta og LocalArea, hvilket tyder p˚a at LocalArea udfører sin søgning p˚a sit fire gange fire areal korrekt.
7.4 Test af Growth AI (designet og udviklet af Morten Rask) 87 7.3.2 Test af LocalArea AI p˚a en 9x9 plade: P˚a en plade større end fire gange fire tildeler LocalArea trækmulighederne forkert værdier, i form af enten ∞ eller −∞ . De mulige træk placeres dog korrekt indenfor det p˚agældende fire gange fire omr˚ade. Det interessante ved fejlen for LocalArea AI’en er, udover at den virker fint for et 4x4 bræt, at der er b˚ade negative og positive ”uendelige”værdier, ofte vil der kun være et fortegn, hvis der f.eks. er blevet lavet en fortegnes fejl s˚a en værdi, der skulle være meget lille, er s˚a stor at den overtrumfer alt. Jeg er overbevidst om at forklaring skal findes i, at undersøgelsen af hvorvidt en brættilstand har n˚aet bunden eller ej ikke længere fungerer korrekt, da der stadig kan findes lovlige træk uden for arealet som LocalAera koncentrer sig om. Derfor ender alle værdier med at blive p˚a det minimum eller maksimum de fik tildelt fra start af. De endelige brættilstande bliver ikke vurderet til at være endelige brættilstande, men de f˚ar heller ikke nogle børn, da alle pladser inden for arealet er optaget. Grund til der b˚ade opst˚ar positive og negative værdi er fordi det vil være forskelligt om de endelige brættilstande er af lige eller ulige generation, derfor bliver nogle h˚andteret af Min-funktionen og f˚ar værdien ∞, mens andre af Max-funktionen og f˚ar −∞. En løsning ville være at lave en nye funktion til at vurdere, hvorvidt en brættilstand er endelige ud fra det lokal areal i stedet for hele brættet. 7.4 Test af Growth AI (designet og udviklet af Morten Rask) 7.4.1 Test af Growth AI’en p˚a en 4x4 plade: Det er interessant at se hvordan Growth klare sig mod AlphaBeta, da Growth netop ser bort fra træk der anses som uinteressante, mens AlphaBeta forsøger sig med alle træk. Denne test vil visse om de træk Growth ser bort fra virkeligt er uinteressante eller om det lykkedes AlphaBeta at vinde netop p˚a grund af disse træk. Growth (sort) mod AlphaBeta (hvid):
- Page 46 and 47: 36 Kunstig Intelligens 3.2.1 Nodes:
- Page 48 and 49: 38 Kunstig Intelligens at udvide de
- Page 50 and 51: 40 Minimax først søgningen, da de
- Page 52 and 53: 42 Minimax 4.3 Spilgraf for 3x3 Tai
- Page 54 and 55: 44 Minimax Herunder ses spilgrafen
- Page 56 and 57: 46 Minimax Herunder ses spilgrafen
- Page 58 and 59: 48 Minimax Som det kan ses ender sp
- Page 60 and 61: 50 Minimax Det kan ses at alle de e
- Page 62 and 63: 52 Optimering af Minimax Figur 5.1:
- Page 64 and 65: 54 Optimering af Minimax Figur 5.4:
- Page 66 and 67: 56 Optimering af Minimax som et uni
- Page 68 and 69: 58 Optimering af Minimax Det er der
- Page 70 and 71: 60 Optimering af Minimax klarer sig
- Page 72 and 73: 62 Optimering af Minimax IF v < m T
- Page 74 and 75: 64 Optimering af Minimax er tilfæl
- Page 76 and 77: 66 Optimering af Minimax Figur 5.9:
- Page 78 and 79: 68 Optimering af Minimax vigtigt at
- Page 80 and 81: 70 Optimering af Minimax
- Page 82 and 83: 72 Begrænsning af antallet af unde
- Page 84 and 85: 74 Begrænsning af antallet af unde
- Page 86 and 87: 76 Begrænsning af antallet af unde
- Page 88 and 89: 78 Test og sammenligning af de impl
- Page 90 and 91: 80 Test og sammenligning af de impl
- Page 92 and 93: 82 Test og sammenligning af de impl
- Page 94 and 95: 84 Test og sammenligning af de impl
- Page 98 and 99: 88 Test og sammenligning af de impl
- Page 100 and 101: 90 Test og sammenligning af de impl
- Page 102 and 103: 92 Konklusion selv n˚a igennem et
- Page 104 and 105: 94 Konklusion
- Page 106 and 107: 96 Bilag A 19 20 // i n i t i a l i
- Page 108 and 109: 98 Bilag A 120 nodes [ p [ 0 ] ] [
- Page 110 and 111: 100 Bilag A 218 i f ( n . a > beta
- Page 112 and 113: 102 Bilag A 319 p [2]= nodes [ p [
- Page 114 and 115: 104 Bilag A 419 420 421 422 423 424
- Page 116 and 117: 106 Bilag A 517 n . wr = tModel . n
- Page 118 and 119: 108 Bilag A 61 } 62 } 63 64 // c h
- Page 120 and 121: 110 Bilag A 155 b [ c +1][ r −1]
- Page 122 and 123: 112 Bilag A 251 b [ c −1][ r −1
- Page 124 and 125: 114 Bilag A 347 r e = placePieceMax
- Page 126 and 127: 116 Bilag A 443 r e = placePieceMax
- Page 128 and 129: 118 Bilag A 537 b [ c +1][ r −1]
- Page 130 and 131: 120 Bilag A 633 b [ c −1][ r −1
- Page 132 and 133: 122 Bilag A 729 beta = r e [ 2 ] ;
- Page 134 and 135: 124 Bilag A 825 beta = r e [ 2 ] ;
- Page 136 and 137: 126 Bilag A 916 i f ( n . a > v ) 9
- Page 138 and 139: 128 Bilag A 997 Root . wc=0; // tMo
- Page 140 and 141: 130 Bilag A 1097 n . bc = tModel .
- Page 142 and 143: 132 Bilag A 93 i f ( rowEnd >= tMod
- Page 144 and 145: 134 Bilag A 192 alpha = n . a ; 193
7.4 Test af Growth AI (designet og udviklet af Morten Rask) 87<br />
7.3.2 Test af LocalArea AI p˚a en 9x9 plade:<br />
P˚a en plade større end fire gange fire <strong>til</strong>deler LocalArea trækmulighederne forkert<br />
værdier, i form af enten ∞ eller −∞ . De mulige træk placeres dog korrekt<br />
indenfor det p˚agældende fire gange fire omr˚ade.<br />
Det interessante ved fejlen for LocalArea AI’en er, udover at den virker fint<br />
for et 4x4 bræt, at der er b˚ade negative og positive ”uendelige”værdier, ofte vil<br />
der kun være et fortegn, hvis der f.eks. er blevet lavet en fortegnes fejl s˚a en<br />
værdi, der skulle være meget lille, er s˚a stor at den overtrumfer alt.<br />
Jeg er overbevidst om at forklaring skal findes i, at undersøgelsen af hvorvidt<br />
en bræt<strong>til</strong>stand har n˚aet bunden eller ej ikke længere fungerer korrekt, da der<br />
stadig kan findes lovlige træk uden for arealet som LocalAera koncentrer sig<br />
om. Derfor ender alle værdier med at blive p˚a det minimum eller maksimum de<br />
fik <strong>til</strong>delt fra start af. De endelige bræt<strong>til</strong>stande bliver ikke vurderet <strong>til</strong> at være<br />
endelige bræt<strong>til</strong>stande, men de f˚ar heller ikke nogle børn, da alle pladser inden<br />
for arealet er optaget. Grund <strong>til</strong> der b˚ade opst˚ar positive og negative værdi er<br />
fordi det vil være forskelligt om de endelige bræt<strong>til</strong>stande er af lige eller ulige<br />
generation, derfor bliver nogle h˚andteret af Min-funktionen og f˚ar værdien ∞,<br />
mens andre af Max-funktionen og f˚ar −∞.<br />
En løsning ville være at lave en nye funktion <strong>til</strong> at vurdere, hvorvidt en bræt<strong>til</strong>stand<br />
er endelige ud fra det lokal areal i stedet for hele brættet.<br />
7.4 Test af Growth AI (designet og udviklet af<br />
Morten Rask)<br />
7.4.1 Test af Growth AI’en p˚a en 4x4 plade:<br />
Det er interessant at se hvordan Growth klare sig mod AlphaBeta, da Growth<br />
netop ser bort fra træk der anses som uinteressante, mens AlphaBeta forsøger<br />
sig med alle træk. Denne test vil visse om de træk Growth ser bort fra virkeligt<br />
er uinteressante eller om det lykkedes AlphaBeta at vinde netop p˚a grund af<br />
disse træk.<br />
Growth (sort) mod AlphaBeta (hvid):