dlshogiのdf-pnだけを動かす手順を書いておきます。
テスト局面追加
testプロジェクトのtest.cppの
「// DfPnテスト」と書いてあるところのmain()の
vector<string> sfens = { // 詰み "9/9/+N8/p1p4p1/6p1p/1P7/3k3PP/2+p5L/6+rGK w R2B2G3Sgs3n3l9p 1", "1n1g3+Pl/k1p1s4/1ng5p/pSP1p1pp1/1n3p3/P1K3P1P/1P7/9/L1G5L b 2R2BG2SL5Pn 161", // mate 15 // (略) };
の部分にsfenで局面を追加することでテストできます。
test.cppには、main()がたくさんありますが、テストしたいところを「#if 1」にしています。
https://github.com/TadaoYamaoka/DeepLearningShogi/blob/master/test/test.cpp#L359
探索上限変更
上限ノード数は
dfpn.set_max_search_node(1000000);
で変更、深さの上限は、
dfpn.set_maxdepth(29);
で変更できます。
ハッシュサイズ変更
ハッシュの衝突が起きると探索効率が落ちるため、置換表は十分なサイズが必要です。
dfpn.cppの以下の箇所で定数定義しています。
int64_t DfPn::HASH_SIZE_MB = 2048;
https://github.com/TadaoYamaoka/DeepLearningShogi/blob/master/usi/dfpn.cpp#L11
ハッシュの衝突が起きると上書きするため、長手数の詰み探索には向いていません。
長手数の詰み探索には、Small TreeGCとか使う方が正しいです。
ビルド方法
Visual Studioの場合は、ビルド構成をReleaseにしてtestプロジェクトを右クリックしてビルドでビルドできます。
ソリューションのビルドからは外しているため個別にビルドが必要です。