2011/07/16

Iterative Deepening

Iterative Deepening [1]は探索の深さを1から順にnまで増やしながら探索を行う手法である。

実際の試合では通常、思考のための制限時間が設けられているがIterative Deepeningを用いることで、設定していた探索の最大深さnに達する前に深さiで制限時間がきた場合でも、深さi-1あるいはi-2での最善手を答えることができる。これは通常のαβ探索で、宣言時間が来た時点での最善手を出力したのよりはいい手であることが期待できる。(move orderingが問題なければ、それでも問題がない可能性もあるが、そもそもmove orderingが完璧なら探索は不要)

また、逆に制限時間ぎりぎりまで探索を行い、探索の最大深さnを予め設定しないという戦略も考えられる。

Iterative Deepeningを用いる欠点としては、何度も探索を繰り返すため、一度に深さnまで探索することに比べて、計算時間がかかるということがある。しかし、実際にはreversiで探索の深さを2つ増やすと10倍のノード数を探索することになることから、計算時間の殆どは最後の深さで費やされる。

また、killer heuristicあるいはhistory heuristicとtransposition tableを用いることで、一度、探索したノードに関してのmove orderingに関するヒントがあるため、2回目以降のあるノードの探索はそれ以前の探索よりも効率が改善される。

abstract class NegaAlphaBetaTKIPlayer[N <: Node[N]](
  override val maxDepth: Int,
  override val numKillerMoves: Int
) extends NegaAlphaBetaTKPlayer[N](maxDepth, numKillerMoves) {
  override def play(ply: Int, node: N, last: Move): Move = {
    initKillerMoves(maxDepth)
    initTranspositionTable()
    var m = Move.empty
    var s = 0
    for (d <- 1 to maxDepth) {
      var ret = play(node, Int.MinValue + 1, Int.MaxValue, d)
      m = ret._1
      s = ret._2
    }
    m
  }
}
また、MTD(f)で深さiの探索でスコアsiが得られたとき、次の深さi+1での探索で用いるf値としてsiを用いることで、効率の改善を行うことができる。
abstract class MTDfIPlayer[N <: Node[N]](override val maxDepth: Int, override val numKillerMoves: Int) extends MTDfPlayer[N](maxDepth, numKillerMoves) {
  override def play(ply: Int, node: N, last: Move): Move = {
    var m = Move.empty
    var f = 0
    for (d <- 1 to maxDepth) {
      var ret = mtd(node, f, d)
      m = ret._1
      f = ret._2
    }
    m
  }
}
実験結果は次のようになった。 mtdfi = MTD(f) + Iterative Deepeningはmtdf = MTD(f)と比較して、ずいぶんと遅くなってしまった。 reversiでは、1手ごとに盤面が大きく反転するため、各盤面のマーカーの数の差を評価関数としている今の実装では、1手ずつ深さを大きくしては評価関数が大きく異なってしまう。そこで、深さを2つずつ深くすることにしたのがmtdfiiである。 mtdfiiでは驚異的な高速化が実現できていることが分かる。Plaatも文献[2]でIterative Deepeningを用いたほうがMTD(f)は高速化できると述べているが、それが確認できた。これは上述したように、正しいf値がわかっていればMTD(f)が高速に実行できることによる。
xtabs(node ~ name + depth + test, data=data)
xtabs(node ~ name + depth + test, data=data)
, , test = end40.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      27     144     312    1407    2748   12027   22896   95966  166264
  mtdf               19     157     201    1145    2184    8630   19720   80814  125003
  mtdfi              38     273     468    1350    2649   61645   71797  544975  617768
  mtdfii             29     210     130    1222     977    9220    7333   70436   52315

, , test = end41.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      48     320    1260    4601   16389   62575  134156  697922 1344073
  mtdf               26     249     540    2540   10144   32079   89519  272946  730291
  mtdfi              51     550    2193    7426   25878  114998  307825 1092744 2608613
  mtdfii             26     140     245    1714    2528   21369   14180  293350   71827

, , test = end42.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      47     240     880    3708   10722   38172   94721  284084  432764
  mtdf               38     345     421    5835    4035   46867   34123  456385  278434
  mtdfi              59     575    1580    8255   17903   96307  204907 1114367 1906220
  mtdfii             38     107     181     843    1061    6954    5889   65086   37483

, , test = end43.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      54     180     765    2536   13292   34713  116837  267089 1174524
  mtdf               67     110     707    1647    5795   14456   71506  140004  910524
  mtdfi              74     217    1015    3946   12843   51678  189323  661060 2500599
  mtdfii             78      66     459     571    3030    3384   33946   22912  366578

, , test = end44.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      52     344    1099    5003   15538   59180  147316  439640  997603
  mtdf               40     240     499    2551    4997   25153   27638  185753  202377
  mtdfi              37     165     606    2154    7053   22857   72144  283054  703381
  mtdfii             33     127     292    1182    2762   10376   29753   64848  231725

, , test = end45.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      43     482    1091    7021   12591   61363  112906  633612 1143702
  mtdf               26     372     229    4987    2873   53545   25900  821370  264835
  mtdfi             145     548    1825    6801    9686   50700   80793  719172 1015111
  mtdfii             26     270     203    2918    1652   28193   13046  344268  106753

, , test = end46.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      43     351    1251    6172   17777   63246  175963  527763 1486986
  mtdf               39     281     523    4198    3262   39651   42332  329191  613156
  mtdfi              88     330    1024    4863   16408   50115  247527  555860 3092708
  mtdfii             28     198     308    1902    2881   16609   16787  121939  177208

, , test = end47.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      44     203     894    2684   12688   31567   94186  200162  544096
  mtdf               36      78     429    2577    4856   19380   67651  109788  197836
  mtdfi              51     435    1284    5069   14830   49130  123938  351612  863045
  mtdfii             31      88     335     522    3212    2880   41819   17430  186658

, , test = end48.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      48     431    1052    8071   18760   81991  184514  788373 1864961
  mtdf               67     326     915    4102   15734   29080  255981  243128 3512508
  mtdfi              90     417    1938    6050   28545   70722  389946  779557 5202121
  mtdfii             46     223     286    2382    4762   21489   45791  200969  416676

, , test = end49.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      56     232    1242    4025   13435   49126  157654  453791 1133343
  mtdf               38     156     885    1148   11959    9846  121120  159526 1046491
  mtdfi              51     338    1367    5939   17179   51172  150261  758475 1685930
  mtdfii             39     122     267    1296    2464   14150   23171  137191  176559

, , test = end50.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      56     572    1332   13494   25639  172585  365969 2063853 3945385
  mtdf               40     530     739    8118   10159   74391  123517  827792 1296946
  mtdfi              65    1009    2034   28671   41322  395558  561635 4992068 6668513
  mtdfii             39     304     334    5234    3586   46466   35443  567751  323205

, , test = end51.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      71     315    1259    5109   18757   62872  173480  641455 2174737
  mtdf               52     125     622    3728    8393   28470   78740  280931  615093
  mtdfi              85     451    1392    8534   17525   78786  171940  838877 1961416
  mtdfii             47     146     415    1166    5141   10768   61652   75997  639172

, , test = end52.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      56     354    1211    4601   12285   46639  149329  504289 1772591
  mtdf               86     222    1315    2712   10970   23226  138992  214488 1826514
  mtdfi             103     286    1753    4269   18762   41305  238447  479219 3653675
  mtdfii            100     148     411    1408    2408   10023   21096   77156  305320

, , test = end53.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      55     450    1795    7861   27736   82230  299993 1027148 3897564
  mtdf               39     230     852    3732   12847   32240  150454  339665 1530138
  mtdfi              53     397    1274    6754   19627   75227  210558  888269 2105971
  mtdfii             42     239     437    2554    6465   21991   43476  201229  253059

, , test = end54.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      35     299     785    4811   11957   69781  154930  733142 1498804
  mtdf               25     244     264    2154    2919   26304   27551  356998  277035
  mtdfi              62     312    1215    3673   16481   47658  141373  617936 1525344
  mtdfii             25     164     243    1698    2454   14098   19153  124606  154492

, , test = end55.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      69     524    1400    6788   25108   95356  268716 1443151 4697020
  mtdf               37     222     807    5464    9661   66834  129831 1378381 1613133
  mtdfi              72     697    1431   15361   29588  161211  314955 2492192 4609357
  mtdfii             29     227     547    2525    8511   30598   93606  351371 1157032

, , test = end56.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      63     299    1484    5344   15299   57231  221934  698765 3553217
  mtdf               54     129     983    1819    8245   17193  135445  175100 2163370
  mtdfi              64     251    1404    4914   18623   61892  331602  895358 5403801
  mtdfii             39     119     596    1174    3945   12069   56802   84958  990616

, , test = end57.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      56     323    1064    5476   16899   54500  152238  553410 1779973
  mtdf               42     360     471    3790    6903   32076   69937  324390  743752
  mtdfi              66     617    1692    8459   22629  100704  266140  922625 3069773
  mtdfii             46     176     219    1598    2162   18404   21477  111504  174753

, , test = end58.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      82     663    2082    9142   35925  129141  421977 1384790 5002305
  mtdf               65     351    1113    4090   17028   46623  194900  756321 2240661
  mtdfi              50     765    1652    7709   18686   89967  228445  891754 1971828
  mtdfii             63     403     428    3903    4312   48304   40838  413731  389535

, , test = end59.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      33     271     555    3398    6433   37380   60376  305924  473199
  mtdf               26     234     340    2702    4503   53546   43223  664528  400769
  mtdfi              33     194     396    5297    7543   37372   52452  525732  932387
  mtdfii             24     187     173    1990    1591   23700   15184  174436  146142


xtabs(inode ~ name + depth + test, data=data)
, , test = end40.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      35     175     425    1801    4229   16695   39191  128551
  mtdf               20      40     217     308    2533    2516   22999   26555  153526
  mtdfi              27      82     293     513    2092   18028   30854  170707  264561
  mtdfii             51     110     181     457    1367    2586   20231   21128  163351

, , test = end41.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      83     401    1688    6224   26529   61534  342616  710022
  mtdf               13      79     204    1032    3885   15013   41419  128792  334734
  mtdfi              18     166     663    2509    8855   43754  110265  430495 1003273
  mtdfii             14      59     155     723    1886   10708   10919  184394   64339

, , test = end42.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      11      58     344    1195    5207   14679   53900  121472  260799
  mtdf               21     102     318    1858    3391   16191   30349  162371  247556
  mtdfi              27     187     694    3024    8171   36022   88875  432348  862871
  mtdfii             28      36     190     341    1451    3101    7970   36530   51367

, , test = end43.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki       8      56     196    1158    3951   17136   44746  149262  474638
  mtdf               37      83     430    1387    3786   13279   37569  131401  442206
  mtdfi              39     144     618    3189    8846   45974  112050  590142 1391417
  mtdfii             75      37     356     466    1666    3203   20743   21112  172946

, , test = end44.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      72     374    1593    6296   21843   62154  186770  486334
  mtdf               27      64     360     767    3434    9050   18672   77939  127106
  mtdfi              18      64     314     901    3379   10100   32943  111393  315380
  mtdfii             38      41     212     475    1940    5170   22170   34052  162233

, , test = end45.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      16      76     492    1689    6158   17622   61537  211198  692718
  mtdf               17      93     236    1221    3221   13172   30165  224838  317661
  mtdfi              83     191    1371    2590    5791   15514   50209  215649  570301
  mtdfii             32      87     283     688    2704    6991   18780  111687  156860

, , test = end46.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      14      82     447    2059    7448   25337   78953  225211  684600
  mtdf               29     135     469    2330    3341   24990   40478  213988  580150
  mtdfi              59     146     817    2600   13696   31254  217213  391750 2489635
  mtdfii             54      76     273     689    2636    6915   31127   67477  452266

, , test = end47.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      10      51     292     911    4514   14649   42732   90664  245612
  mtdf               20      26     198     708    2143    6788   25443   36938   98494
  mtdfi              24     144     449    1742    5672   18807   47613  145070  360800
  mtdfii             24      28     256     224    1402    1665   21316   14008   86311

, , test = end48.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      15      68     439    1909    8493   24921   92023  273357 1004646
  mtdf               59      80     920    1342   16486    9785  277602   88358 3447820
  mtdfi              62     149    1539    2876   23631   42225  360139  554422 4532668
  mtdfii            115      56     498     671    3960    6040   37174   65008  339421

, , test = end49.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      10      61     328    1439    4500   19206   62015  189614  516945
  mtdf               14      46     266     473    3466    4445   38142   70714  391549
  mtdfi              17     118     422    1992    5657   18011   54053  320202  681282
  mtdfii             18      51     125     660    1630    9782   12386   79578   85884

, , test = end50.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      17      88     541    2879   12255   44650  190361  612250 2196754
  mtdf               25      96     457    1730    6632   17587   93442  205131 1057440
  mtdfi              30     213     780    5795   13061   84063  198306 1206164 2473435
  mtdfii             35      61     313    1376    3834   11202   43461  143730  415332

, , test = end51.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      67     379    1547    6704   19270   73905  238106 1043256
  mtdf               22      34     296     987    3345    7547   43402   77323  312141
  mtdfi              30     116     495    2381    6075   22924   70092  264603  763406
  mtdfii             26      36     202     511    4045    4537   33661   26643  465021

, , test = end52.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      79     398    1421    5028   16171   66216  198423  850712
  mtdf               54     100     992    1526    9120   13207  116745  121724 1447330
  mtdfi              57     134    1216    2634   15355   30207  200087  375522 2724856
  mtdfii             98      47     368     675    2033    4027   14491   33007  243152

, , test = end53.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      13      84     511    2262    9718   27978  107702  403217 1574439
  mtdf               17      61     292    1152    3918   11160   50430  120455  499125
  mtdfi              17     113     404    2184    6164   26825   70732  309251  715027
  mtdfii             26     110     228    1049    2818    6967   23303   67523  146003

, , test = end54.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      12      61     347    1123    6213   19908   84094  231311  824160
  mtdf               13      81     186     562    2415    7050   26675   95999  285069
  mtdfi              39     117     876    1504   12164   19943  102348  220389 1096924
  mtdfii             13      49     183     407    2193    5042   21355   37920  192041

, , test = end55.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      16      76     470    1598   10615   28906  120124  467316 2071576
  mtdf               25      46     411    1136    5360   14684   79257  363423 1027242
  mtdfi              36     159     542    3274   10154   40651  123161  720938 1885125
  mtdfii             26      62     428     592    8595    7518   64036  151976  798874

, , test = end56.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      11      69     338    1693    4845   23624   75291  276756 1133606
  mtdf               37      57     553    1019    4991   12052   69517  127131  933129
  mtdfi              39     134     853    3004   11170   40989  137902  552298 2047606
  mtdfii             56      43     393     487    2193    8249   35652   45701  517070

, , test = end57.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      10      62     330    1810    5836   21013   63370  246939  734281
  mtdf               18     111     204    1351    2652   12826   23726  141613  255644
  mtdfi              25     192     536    2599    6837   34051   82945  326333  969907
  mtdfii             31     122     146    1125    1340    9303   12345   55076  101367

, , test = end58.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      15     127     597    2792   11048   41198  127573  477666 1925393
  mtdf               27      78     402    1404    5113   19975   55775  286178  668517
  mtdfi              24     197     520    2199    6113   29353   77148  293688  735727
  mtdfii             34     155     240    1791    2478   15063   23048  239345  221394

, , test = end59.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki      13      54     262     853    3544   10599   38819   98781  320323
  mtdf               22      70     330     860    4335   15360   45494  171830  442720
  mtdfi              22      58     301    1392    4054   10364   28514  127138  616389
  mtdfii             32      55     238     583    2039    6497   20395   42391  198626

xtabs(time ~ name + depth + test, data=data)
, , test = end40.pos
, , test = end40.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     192     344     591     967    1712    3217    7476   17203   45032
  mtdf              212     360     673     864    1838    2277    8747   12284   47928
  mtdfi             266     481     775    1008    1820    9848   14145   77050  106235
  mtdfii            327     498     553     968    1296    2466    6302   11380   37774

, , test = end41.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     200     532     950    1946    4173   14444   28540  159529  296993
  mtdf              201     476     684    1431    2925    8170   18707   58725  134018
  mtdfi             237     654    1233    2443    5786   23117   54947  205308  462909
  mtdfii            194     403     555    1226    1667    6319    5240   80132   22742

, , test = end42.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     197     448     839    1641    3339    8264   22135   52980   94388
  mtdf              241     555     754    2117    2351    9530   12319   76665   85495
  mtdfi             281     706    1145    2657    4913   18456   39600  198399  357176
  mtdfii            273     351     583     883    1299    2705    3791   17235   16225

, , test = end43.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     192     455     740    1554    3350   10251   23406   75513  216398
  mtdf              343     467     914    1625    2849    7777   16976   60063  178443
  mtdfi             350     563    1144    2700    5366   23269   51047  250602  583770
  mtdfii            408     333     758     941    1619    2574    8574   10655   64743

, , test = end44.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     218     520     934    1977    4436   13719   36305   99221  250647
  mtdf              285     449     837    1289    2586    5851    9100   36664   52860
  mtdfi             241     436     834    1444    3257    7220   21003   64578  172130
  mtdfii            287     351     641    1026    1799    4056    9750   18874   61517

, , test = end45.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     237     575    1017    2081    4110   10471   29125  102126  294069
  mtdf              218     528     663    1708    2405    8171   13207  109720  117397
  mtdfi             458     682    1565    2409    3791    9031   22507  103948  233756
  mtdfii            259     472     672    1275    1994    5015    8518   51630   55499

, , test = end46.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     234     584    1024    2177    5109   13252   39768  101521  322282
  mtdf              302     610     938    2019    2970   10998   20808   80104  264504
  mtdfi             412     594    1238    2398    8311   15621  102484  175383 1147167
  mtdfii            320     445     732    1185    2251    4249   12565   28659  137486

, , test = end47.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     211     407     845    1413    3666    8094   21691   42747  123128
  mtdf              255     289     685    1233    2162    4401   13992   17980   45107
  mtdfi             280     623     994    1986    4214   10705   25330   71187  175736
  mtdfii            249     314     663     684    1610    1708   10429    6676   38406

, , test = end48.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     220     510     947    2328    5209   15548   42680  146659  433613
  mtdf              379     504    1166    1826    7198    6729   90920   46893 1165974
  mtdfi             397     625    1546    2541   10675   20484  139057  237483 1724120
  mtdfii            417     433     752    1275    2660    4618   14549   35254  119404

, , test = end49.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     212     456     952    1861    3647   11814   32138   96812  241927
  mtdf              223     387     816    1011    3061    3418   20681   34559  186244
  mtdfi             247     564    1030    2249    4542   11233   30069  161707  341093
  mtdfii            249     369     576    1121    1643    5605    7019   35260   40367

, , test = end50.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     235     569    1002    2864    6552   24849   77082  298901 2002592
  mtdf              267     573     911    2165    4071   11508   38965  110762  409172
  mtdfi             298     781    1271    4687    7968   48354   93651  639259 1143363
  mtdfii            299     466     736    1833    2501    7562   16264   76513  139852

, , test = end51.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     233     527     970    1964    5067   11699   39280  120552  512157
  mtdf              287     348     819    1535    2941    5385   22720   40695  148588
  mtdfi             326     632    1079    2609    4727   14342   38478  142872  399493
  mtdfii            288     351     686    1001    2814    3552   16272   14322  176716

, , test = end52.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     213     564     947    1915    3675   10595   31643  106557  377542
  mtdf              381     550    1282    1840    5208    8920   46244   67656  535107
  mtdfi             395     577    1529    2411    8080   16423   83995  182167 1124812
  mtdfii            445     396     758    1160    1762    3328    6937   18772   82253

, , test = end53.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     232     561    1170    2668    7390   18835   65650  239651  902737
  mtdf              252     452     847    1658    3404    7237   28050   62352  256171
  mtdfi             250     575    1024    2608    5440   18398   47266  196535  446006
  mtdfii            292     511     707    1559    2529    5695   12128   42288   66074

, , test = end54.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     205     476     869    1738    4508   12885   41999  127080  392055
  mtdf              203     497     636    1186    2198    5136   13612   52716  127569
  mtdfi             354     564    1311    1880    7277   11499   47860  113797  489012
  mtdfii            211     398     646    1015    2049    3526   10752   21598   83234

, , test = end55.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     254     541    1037    2085    7345   17497   67683  249175 1083552
  mtdf              285     412     948    1710    4070    9539   39537  190733  495246
  mtdfi             355     688    1150    3265    7303   25520   69167  409245 1031610
  mtdfii            266     437     855    1315    4756    5660   30332   70663  357100

, , test = end56.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     223     492     965    2123    4420   14306   43053  152191  625376
  mtdf              345     421    1093    1447    3981    7542   37263   63112  466109
  mtdfi             353     601    1350    2810    7680   23314   78749  282362 1124166
  mtdfii            341     385     842    1024    2111    5437   15539   24942  210108

, , test = end57.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     202     493    1000    2350    4874   14416   36762  148146  411699
  mtdf              248     627     686    1726    2438    8153   13480   72412  123414
  mtdfi             289     721    1159    2927    5779   23182   54314  204918  591781
  mtdfii            308     556     562    1439    1506    6935    6630   33987   43895

, , test = end58.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     269     664    1279    3055    7966   25900   74164  266082 1047197
  mtdf              319     521     988    1825    4327   11638   34256  150629  381071
  mtdfi             303     759    1169    2598    5121   18952   47575  170188  422570
  mtdfii            334     617     816    1902    2483    9966   13338  108924  107658

, , test = end59.pos

               depth
name                  2       3       4       5       6       7       8       9      10
  negaalpha_tki     205     448     781    1462    2903    7098   18863   51594  140848
  mtdf              252     479     775    1415    3074    9710   21045   92571  185497
  mtdfi             259     437     765    1877    3263    7207   15440   73102  284825
  mtdfii            282     422     676    1212    1788    5052    9615   25040   79079



[1] Marsland. Relative efficiency of alpha-beta implementations. Proceedings of the International Joint Conference on Artificial Intelligence (IJCAI-83) (1983) pp. 763–766

[2] Plaat and University of Alberta. Dept. of Computing Science. A new paradigm for minimax search. (1994)

0 件のコメント:

コメントを投稿