やねうら王のテラショック定跡コマンドで遊ぶー4
続き
今回はextend_treeの続きで、extend_treeの際に読み込む定跡、棋譜局面集を変えてどうなるか観察した。
前回で作成したexam0.db, exam1.db に対して、
makebook extend_tree book/exam0.db book/blank.sfen book/write-blank-db0.sfen
makebook extend_tree book/exam1.db book/blank.sfen book/write-blank-db1.sfen
makebook extend_tree book/exam0.db book/hashifu.sfen book/write-hashifu-db0.sfen
makebook extend_tree book/exam1.db book/hashifu.sfen book/write-hashifu-db1.sfen
を実行し、それぞれ出力されたsfenを比較した。
blank | hashifu |
---|---|
startpos | startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f |
blank.sfenは何も入力されてない=平手局面であり、hashifu.sfenは端歩を付き合った棋譜局面である。
write-blank-db0 | write-blank-db1 | write-hashifu-db0 | write-hashifu-db1 |
---|---|---|---|
startpos moves 2g2f 3c3d 2f2e startpos moves 2g2f 3c3d 7g7f startpos moves 2g2f 8c8d 2f2e startpos moves 2g2f 8c8d 7g7f startpos moves 2g2f 4a3b startpos moves 7g7f 3c3d 6i7h startpos moves 7g7f 8c8d 6i7h startpos moves 7g7f 4a3b |
startpos moves 2g2f 3c3d 2f2e 2b3c startpos moves 2g2f 3c3d 2f2e 4a3b startpos moves 2g2f 3c3d 7g7f 4c4d startpos moves 2g2f 3c3d 7g7f 4a3b startpos moves 2g2f 3c3d 6i7h startpos moves 2g2f 8c8d 2f2e 8d8e startpos moves 2g2f 8c8d 2f2e 4a3b startpos moves 2g2f 8c8d 7g7f 8d8e startpos moves 2g2f 8c8d 7g7f 4a3b startpos moves 2g2f 4a3b startpos moves 7g7f 3c3d 6i7h 4c4d startpos moves 7g7f 3c3d 6i7h 4a3b startpos moves 7g7f 8c8d 6i7h 8d8e startpos moves 7g7f 8c8d 6i7h 4a3b startpos moves 7g7f 4a3b |
startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f | startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f |
それぞれ
write-blank-db0.sfenとwrite-blank-db1.sfenを比較すると、exam1.dbで延長したsfenの方が長い手数で広く局面を登録している。今回のコマンドでは与えられた棋譜局面の末端が平手局面であるので、平手(sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1 ) から定跡手で到達することのできる全局面が書き出されている。そのため、登録局面が多いexam1.dbから作られたwrite-blank-db1.sfenの方が長く広くなっている。
一方でhashifu.sfenとwrite-hashifu-db0.sfen、write-hashifu-db1.sfenは一切変化がない、これは、与えられた棋譜局面での末端が定跡に一切hitしなかったため、全く延長が行われなかったためだと思われる。
ここまでの観察で
定跡にhitさせて幅広く延長させたい場合、与える棋譜局面は短いほうがいい(極端に言えばstartposのみ)ということがわかった。
前々回の記事にてextend_treeを行ってもほとんどsfenが変わらなかったと書いたが、ここまでの挙動から振り返ってみるとそれも当然のことで、入力棋譜局面はほとんどが32手までの棋譜である(→hit対象の定跡局面はBの33手目から)のに対し、定跡の手数上限を32手にしていたため、ほとんどの棋譜は定跡にhitせず、延長されなかったということであった。
これでextend_treeの大まかな動作がつかめたので、最後に確認として以下のコマンドを実行してみた。
makebook extend_tree book/hashifu.db book/hashifu.sfen book/write-h1.sfen
makebook extend_tree book/hashifu.db book/hashifu2.sfen book/write-h2.sfen
ここでhashifu.dbは
あ
#YANEURAOU-DB2016 1.00 |
---|
sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/9/PPPPPPPPP/1B5R1/LNSGKGSNL b - 1 1g1f 9c9d 0 24 484 sfen lnsgkgsnl/1r5b1/ppppppppp/9/9/8P/PPPPPPPP1/1B5R1/LNSGKGSNL w - 2 9c9d 1f1e 0 24 484 sfen lnsgkgsnl/1r5b1/1pppppppp/p8/9/8P/PPPPPPPP1/1B5R1/LNSGKGSNL b - 3 1f1e 9d9e 0 24 484< sfen lnsgkgsnl/1r5b1/1pppppppp/p8/8P/9/PPPPPPPP1/1B5R1/LNSGKGSNL w - 4 9d9e 2h1h 0 24 484 sfen lnsgkgsnl/1r5b1/1pppppppp/9/p7P/9/PPPPPPPP1/1B5R1/LNSGKGSNL b - 5 2h1h 8b9b 0 24 484 sfen lnsgkgsnl/1r5b1/1pppppppp/9/p7P/9/PPPPPPPP1/1B6R/LNSGKGSNL w - 6 8b9b 1h1f 0 24 484 sfen lnsgkgsnl/r6b1/1pppppppp/9/p7P/9/PPPPPPPP1/1B6R/LNSGKGSNL b - 7 1h1f 9b9d 0 24 484 sfen lnsgkgsnl/r6b1/1pppppppp/9/p7P/8R/PPPPPPPP1/1B7/LNSGKGSNL w - 8 9b9d 1f2f 0 24 484 |
である
hashifu.sfen | write-h1.sfen | hashifu2.sfen | write-h2.sfen |
---|---|---|---|
startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f | startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f | startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f startpos moves 1g1f 1c1d startpos moves 1g1f startpos moves 1g1f 9c9d startpos moves 1g1f 9c9d 1f1e 9d9e startpos moves 1g1f 9c9d 1f1e 9d9e 2h1h |
startpos moves 1g1f 1c1d 9g9f 9c9d 7g7f startpos moves 1g1f 1c1d startpos moves 1g1f 9c9d 1f1e 9d9e 2h1h 8b9b 1h1f 9b9d |
このようによしなにしてくれる。
現状のまとめ
やねうら王でmakebook extend_treeを行う際、特別な事情がなければ読み込み棋譜は平手局面(startposのみ)にしておくとよい。