Scoutの実装はほぼ完了
実装し直したNegaScout&静止探索だと、前のαβより探索ノード数が増えてしまうという問題があったのですが、とりあえずその問題は解決。MPNが微妙に悪化しているという問題は残っていますが、それさえ解決すれば使用可能になるでしょう。
以下、自作ベンチマークの結果比較用。
まず、従来のαβルーチンのベンチ結果。
20:57:08 @ goLearningBench() > 経過時間 : 99.14秒 20:57:08 @ goLearningBench() > 探索ノード数 : 16798657 20:57:08 @ goLearningBench() > NPS : 169.45kNPS 20:57:08 @ goLearningBench() > 探査率 : 0.040000 20:57:08 @ goLearningBench() > 温度 : 0.001105 20:57:08 @ goLearningBench() > ウィンドウマージン : 0.022891 20:57:08 @ goLearningBench() > BestMovePosition(SoftMaxPolicy) : 12.634328 20:57:08 @ goLearningBench() > ハッシュヒット率 : 0.011706 20:57:08 @ goLearningBench() > ハッシュカット率 : 0.852596 20:57:08 @ goLearningBench() > MPN(全幅) : 1.846832 20:57:08 @ goLearningBench() > LWU(全幅) : 16.145411 20:57:08 @ goLearningBench() > MoveCount(全幅) : 109.872168 20:57:08 @ goLearningBench() > ハッシュヒット率 : 0.088586 20:57:08 @ goLearningBench() > ハッシュカット率 : 0.640453 20:57:08 @ goLearningBench() > MPN(Qui1st) : 1.037870 20:57:08 @ goLearningBench() > LWU(Qui1st) : 1.893755 20:57:08 @ goLearningBench() > MoveCount(Qui1st) : 5.449595 20:57:08 @ goLearningBench() > MPN(Qui2nd) : 1.045757 20:57:08 @ goLearningBench() > LWU(Qui2nd) : 1.454863 20:57:08 @ goLearningBench() > MoveCount(Qui2nd) : 1.332545 20:57:08 @ goLearningBench() > 静止探索ノード数 : 15978846.000000 20:57:08 @ goLearningBench() > 静止探索呼出回数 : 562391.000000
NegaScoutのルーチンをScout無しで(αβと同じ動作で)動かした結果。
14:53:49 @ goLearningBench() > 経過時間 : 95.37秒 14:53:49 @ goLearningBench() > 探索ノード数 : 17030240 14:53:49 @ goLearningBench() > NPS : 178.57kNPS 14:53:49 @ goLearningBench() > 探査率 : 0.010000 14:53:49 @ goLearningBench() > 温度 : 0.001105 14:53:49 @ goLearningBench() > ウィンドウマージン : 0.022891 14:53:49 @ goLearningBench() > BestMovePosition(SoftMaxPolicy) : 12.494030 14:53:49 @ goLearningBench() > ハッシュヒット率 : 0.000020 14:53:49 @ goLearningBench() > MPN : 1.913326 14:53:49 @ goLearningBench() > LWU : 15.432587 14:53:49 @ goLearningBench() > MoveCount : 109.103380 14:53:49 @ goLearningBench() > ハッシュヒット率 : 0.141650 14:53:49 @ goLearningBench() > MPN(Qui1st) : 1.123499 14:53:49 @ goLearningBench() > LWU(Qui1st) : 1.908360 14:53:49 @ goLearningBench() > MoveCount(Qui1st) : 5.481199 14:53:49 @ goLearningBench() > MPN(Qui2nd) : 1.049336 14:53:49 @ goLearningBench() > LWU(Qui2nd) : 1.472278 14:53:49 @ goLearningBench() > MoveCount(Qui2nd) : 1.299848 14:53:49 @ goLearningBench() > 静止探索ノード数 : 16277588.000000 14:53:49 @ goLearningBench() > 静止探索呼出回数 : 507451.000000
NegaScoutの結果。遅くなってます。
17:05:47 @ goLearningBench() > 経過時間 : 99.13秒 17:05:47 @ goLearningBench() > 探索ノード数 : 17506263 17:05:47 @ goLearningBench() > NPS : 176.61kNPS 17:05:47 @ goLearningBench() > 探査率 : 0.030000 17:05:47 @ goLearningBench() > 温度 : 0.001105 17:05:47 @ goLearningBench() > ウィンドウマージン : 0.022891 17:05:47 @ goLearningBench() > BestMovePosition(SoftMaxPolicy) : 12.494030 17:05:47 @ goLearningBench() > ハッシュヒット率 : 0.000020 17:05:47 @ goLearningBench() > MPN : 1.913326 17:05:47 @ goLearningBench() > LWU : 15.432587 17:05:47 @ goLearningBench() > MoveCount : 109.103380 17:05:47 @ goLearningBench() > ハッシュヒット率 : 0.192254 17:05:47 @ goLearningBench() > MPN(Qui1st) : 1.119825 17:05:47 @ goLearningBench() > LWU(Qui1st) : 1.894402 17:05:47 @ goLearningBench() > MoveCount(Qui1st) : 5.500942 17:05:47 @ goLearningBench() > MPN(Qui2nd) : 1.047888 17:05:47 @ goLearningBench() > LWU(Qui2nd) : 1.470229 17:05:47 @ goLearningBench() > MoveCount(Qui2nd) : 1.296932 17:05:47 @ goLearningBench() > 静止探索ノード数 : 16753611.000000 17:05:47 @ goLearningBench() > 静止探索呼出回数 : 521247.000000