edaxのbookを扱ってる人向けの、マニアックなメモ。
今年edaxでの学習を再開して、bookのサイズが2.4GBくらい(レベル21、深さ37で)になって、メモリも6GB以上食って、読み込んだりdevの書き出しにも時間かかって、ちょっと扱いにくいかな…と思っていました。
うちのPCでは深さ37もいらないので、もうちょっとbookの深さを浅く、その分レベルを上げたいな(深さ34にしたい)…というのを、前にやろうとして挫折したんですよ。
edaxだけでは、深さ35以上の局面を削除することができなかったけど、Egaroucidでできるし、edax形式で書き出せるから、できるんじゃないかな…と思って、数日前にやりました。
結果としては、上手くいったように思います。
元のbook
レベル21、深さ37、2.4GB
結果
レベル27、深さ34、993MBのbookになった。
やったこと
1.Egaroucidで読み込んで、深さ35以上をカット(「誤差」24で深さ34のbookを作成)→cutbook.datに出力(レベル27のedax形式で書き出し)
2.cutbook.datをbook.datにコピーし、edaxを起動して読み込む
3.book depth 34 (bookの深さを変更する)
4.q (book.dat保存)

※これは今日の時点
多分1のところでレベルを偽装したのがポイントで、book infoをしても大量のエラーが出たりしません。book deepenしても何も起こりません。
(※book deepenは、マージとか使ってレベルを変えた後にbook infoでエラーが出まくるbookになった場合に、「book deepen」をすると、「レベル変更前と変更後で深さが異なる枝を全部計算し直す」と思います。巨大なbookだと莫大な時間がかかりそうですが、それが「正しい方法」のような気がします)
これをやると、当然、深さ34の局面での評価値は完全読みの評価値ではありません。従来は深さ37の局面を完全読みしてた(リーフがあった)けど、深さ34でバッサリ「剪定」したので、「リーフがない」状態になります…という言い方で合ってるのかなぁ。完全読みの評価値は消えるんだけど、完全読みの評価値に基づいた少し前の局面の評価値は残ってるという意味。見るだけなら値は従来通りです。
今後学習するときにスルーされたりしないか、という懸念はあります。deviateすると何かが山ほど動いて、「リーフがない」のを埋めてくれてるのかなぁ、でもレベル27ってことにしてるからスルーされるのかなぁ…(まぁ、今までより悪くなることはない)
1分で10くらいしか進まないから、9622進むのに16時間かかると思う。
それくらいを100回やるのであれば、毎日24時間動かしても66日かかる。
細かく見ると f5f6e6f4e3c5c6 が多くて、元々あまり学習できてなかった枝。 pic.twitter.com/FfWtin3HOL— hasera othello🍥 (@hasera) September 25, 2025
レベルと深さの話
リンク先を見ると、レベル21と深さ37、レベル27と深さ34、レベル30と深さ31等でやれば、枝の末端の評価値が完全読みの評価値になると思います。
家庭用PCがもうちょっと速くなったら、「レベル30と深さ31」で良くなるんじゃないかな。
それで、末端が完全読みの評価値でなくなった(リーフがなくなった)ことがデメリットなのかというと、今までのレベル21の評価値が消えるわけではないし、時間をかければ、今までレベル21の評価値だったのがレベル27で再計算されて「より正確に」なるんじゃないかな、と思います。というか、「今までより悪くなることはない」と思います(これ大事)。
※10月18日追記:book correctするとエラーが出るようになります。book correctしないと末端が完全読みの評価値にならないはず。『今までレベル21の評価値だったのがレベル27で再計算されて「より正確に」なる』かどうかは、良く分かりません。手元のbookのbook correctは、多分1年かかるので、元のbookに戻して続けようかと…

