やねうら王詰将棋エンジン - mizar/YaneuraOu GitHub Wiki
やねうら王詰将棋エンジンについて
やねうら王詰将棋エンジンで使えるエンジンオプション
- USI_Hash : 詰将棋エンジンに割り当てるメモリ[MB]
- NodesLimit : 探索ノード数 (0 : 無制限)
- SolverType :
- 32bitNodeSolver(探索ノード数 32bitで表現できる42億までしか扱えないが、必要メモリが64bitNodeSolverの半分で済む)
- 64bitNodeSolver(探索ノード数 64bitで表現できる範囲なので実質無制限だが、必要メモリは32bitNodeSolverの倍)
- PvInterval : 読み筋の出力間隔 (0 : 出力しない)
例)
USI_Hash 4096 // 4096[MB]割り当てる
isready
sfen l2g5/2s3g2/3k1p2p/P2pp2P1/1pP4s1/p1+B6/NP1P+nPS1P/K1G4+p1/L6NL b RBGNLPrs3p 1 // 局面図
go mate 10000 // 10秒で解かせてみる
// ↓info ~でPvIntervalごとに読み筋が出力されて、最後、checkmate XXXで詰み手順が出力される。
// 詰まない(不詰が証明できた)ときは"checkmate nomate"と返ってくる。
// 時間切れの時は"checkmate timeout"と返ってくる。
// 探索ノード数制限で解けなかった時や、詰将棋用のメモリ(USI_Hashで指定している)がリミットに達した場合は、"checkmate none"が返ってくる。
// ※ その直前に "info string Out Of Memory."(メモリ不足) 、 "info string Exceeded NodesLimit."(探索ノード数に達した) が出力される。
info time 1317 nodes 1781726 nps 1352867 hashfull 35 pv 7f8e 6c6b G*5b 6a5b 8e5b 6b5b P*5c 5b6c B*7d 6c5c R*5b 5c4d N*3f 2e3f G*3d 4d3d 5b3b+ R*3c P*3e 3d2d 3b3c 2d3c G*3d 3c2b L*2c 2b3a R*4a 3a3b 4a2a+ 3b4b 2a4a 4b5c 4a5b
checkmate 7f8e 6c6b G*5b 6a5b 8e5b 6b5b P*5c 5b6c B*7d 6c5c R*5b 5c4d N*3f 2e3f G*3d 4d3d 5b3b+ R*3c P*3e 3d2d 3b3c 2d3c G*3d 3c2b L*2c 2b3a R*4a 3a3b 4a2a+ 3b4b 2a4a 4b5c 4a5b
やねうら王詰将棋エンジンで使えるUSIコマンド
go mate X
X = 探索時間[ms]
※ UCIではここはdepthを指定するがUSIでは探索時間を指定するようになっている。
時間制限なしのときは
go mate infinite
と書く。
go nodes X mate infinite
X = ノード制限
※ NodesLimitみたいなの。USI2.0拡張。
mate以下は、infiniteではなく探索時間を指定することもできる。
go depth X mate infinite
X = 探索深さ制限
※ DepthLimitみたいなもの。USI2.0拡張。
→ これは現時点[2018/11/12]では未実装