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
102 Bilag A 319 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 320 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r +1, c , r , n ) ) ) ; 321 count++; 322 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 323 i f ( n . a > v ) 324 n . a = v ; 325 i f ( n . a < alpha ) { 326 b [ c ] [ r ] = 2 ; 327 b [ c ] [ r +1] = 2 ; 328 r e t u r n ( n . a ) ; 329 } 330 i f ( beta > n . a ) 331 beta = n . a ; 332 } 333 b [ c ] [ r ] = 2 ; 334 b [ c ] [ r +1] = 2 ; 335 336 337 } 338 } 339 } 340 341 342 f o r ( i n t c =0; c < tModel . noCols −1; c++){ 343 f o r ( i n t r =0; r < tModel . noRows ; r++){ 344 i f ( b [ c ] [ r ] == 2 && b [ c +1][ r ] == 2 ) { 345 b [ c ] [ r ] = 1 ; 346 b [ c +1][ r ] = 0 ; 347 i n t [ ] p = new i n t [ 3 ] ; 348 p = c h e c k B o a r d I n d i v i d u a l i t y ( b , d ) ; 349 i f ( p [ 2 ] >= 0) { 350 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 351 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 352 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 353 i f ( n . a > v ) 354 n . a = v ; 355 i f ( n . a < alpha ) { 356 b [ c ] [ r ] = 2 ; 357 b [ c +1][ r ] = 2 ; 358 r e t u r n ( n . a ) ; 359 } 360 i f ( beta > n . a ) 361 beta = n . a ; 362 } 363 i f ( p [ 2 ] == −1){ 364 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 365 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c , r , c +1, r , n ) ) ) ; 366 count++; 367 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ;
A.1 AITaijiAlphaBeta.java 103 368 i f ( n . a > v ) 369 n . a = v ; 370 i f ( n . a < alpha ) { 371 b [ c ] [ r ] = 2 ; 372 b [ c +1][ r ] = 2 ; 373 r e t u r n ( n . a ) ; 374 } 375 i f ( beta > n . a ) 376 beta = n . a ; 377 } 378 b [ c ] [ r ] = 0 ; 379 b [ c +1][ r ] = 1 ; 380 381 p = c h e c k B o a r d I n d i v i d u a l i t y ( b , d ) ; 382 i f ( p [ 2 ] >= 0) { 383 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ; 384 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) ) ; 385 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 1 ) ; 386 i f ( n . a > v ) 387 n . a = v ; 388 i f ( n . a < alpha ) { 389 b [ c ] [ r ] = 2 ; 390 b [ c +1][ r ] = 2 ; 391 r e t u r n ( n . a ) ; 392 } 393 i f ( beta > n . a ) 394 beta = n . a ; 395 } 396 i f ( p [ 2 ] == −1){ 397 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ; 398 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode . createChildNode ( c +1, r , c , r , n ) ) ) ; 399 count++; 400 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) , alpha , beta , 0 ) ; 401 i f ( n . a > v ) 402 n . a = v ; 403 i f ( n . a < alpha ) { 404 b [ c ] [ r ] = 2 ; 405 b [ c +1][ r ] = 2 ; 406 r e t u r n ( n . a ) ; 407 } 408 i f ( beta > n . a ) 409 beta = n . a ; 410 } 411 b [ c ] [ r ] = 2 ; 412 b [ c +1][ r ] = 2 ; 413 } 414 } 415 } 416 r e t u r n ( n . a ) ; 417 } 418 }
- 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 96 and 97: 86 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 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
- Page 146 and 147: 136 Bilag A 291 } 292 293 // Min−
- Page 148 and 149: 138 Bilag A 391 n . c h i l d r e n
- Page 150 and 151: 140 Bilag A 493 i f ( Root . c h i
- Page 152 and 153: 142 Bilag A 593 r e t u r n ( n ) ;
- Page 154 and 155: 144 Bilag A 90 b [ c ] [ r ] = 0 ;
- Page 156 and 157: 146 Bilag A 185 // System . out . p
- Page 158 and 159: 148 Bilag A 280 } 281 282 // f l y
- Page 160 and 161: 150 Bilag A 377 // i f ( tTree . ma
102 Bilag A<br />
319 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ;<br />
320 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode .<br />
createChildNode ( c , r +1, c , r , n ) ) ) ;<br />
321 count++;<br />
322 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />
, alpha , beta , 0 ) ;<br />
323 i f ( n . a > v )<br />
324 n . a = v ;<br />
325 i f ( n . a < alpha ) {<br />
326 b [ c ] [ r ] = 2 ;<br />
327 b [ c ] [ r +1] = 2 ;<br />
328 r e t u r n ( n . a ) ;<br />
329 }<br />
330 i f ( beta > n . a )<br />
331 beta = n . a ;<br />
332 }<br />
333 b [ c ] [ r ] = 2 ;<br />
334 b [ c ] [ r +1] = 2 ;<br />
335<br />
336<br />
337 }<br />
338 }<br />
339 }<br />
340<br />
341<br />
342 f o r ( i n t c =0; c < tModel . noCols −1; c++){<br />
343 f o r ( i n t r =0; r < tModel . noRows ; r++){<br />
344 i f ( b [ c ] [ r ] == 2 && b [ c +1][ r ] == 2 ) {<br />
345 b [ c ] [ r ] = 1 ;<br />
346 b [ c +1][ r ] = 0 ;<br />
347 i n t [ ] p = new i n t [ 3 ] ;<br />
348 p = c h e c k B o a r d I n d i v i d u a l i t y ( b , d ) ;<br />
349 i f ( p [ 2 ] >= 0) {<br />
350 nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] ) . par . add ( n ) ;<br />
351 n . c h i l d r e n . add ( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p<br />
[ 2 ] ) ) ;<br />
352 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />
, alpha , beta , 1 ) ;<br />
353 i f ( n . a > v )<br />
354 n . a = v ;<br />
355 i f ( n . a < alpha ) {<br />
356 b [ c ] [ r ] = 2 ;<br />
357 b [ c +1][ r ] = 2 ;<br />
358 r e t u r n ( n . a ) ;<br />
359 }<br />
360 i f ( beta > n . a )<br />
361 beta = n . a ;<br />
362 }<br />
363 i f ( p [ 2 ] == −1){<br />
364 p [2]= nodes [ p [ 0 ] ] [ p [ 1 ] ] . s i z e ( ) ;<br />
365 nodes [ p [ 0 ] ] [ p [ 1 ] ] . add ( n . addChild ( tNode .<br />
createChildNode ( c , r , c +1, r , n ) ) ) ;<br />
366 count++;<br />
367 i n t v = max( nodes [ p [ 0 ] ] [ p [ 1 ] ] . get ( p [ 2 ] )<br />
, alpha , beta , 0 ) ;