やねうら王の新しい詰将棋エンジンは、一度調べた局面をすべて残している&合流を処理しないのでメモリを大量に消費するという話を先日書いた。 → やねうら王詰将棋ルーチンでミクロコスモスは解けますか?
そんな中、やねうら王の新しい詰将棋エンジンで、将棋図巧1番が解けたというニュースが舞い込んだ。
どうやら、将棋図巧1番は、4.7億局面調べて50GB程度の(詰将棋エンジン用の)メモリがあれば解ける模様。
// 4.7億局面×平均分岐数6.5手*1局面当たり16バイト ≒ 50GBみたいな感じかな。
そのあと、脊尾詰で不詰が証明できない局面について、やねうら王の詰将棋エンジンは不詰を証明できた模様。
脊尾詰は、32bitアプリなので1GBしかハッシュ(置換表 = 詰将棋エンジンが一度調べた局面の情報を保存しておくメモリ)を設定できないようで、これに収まらないと不詰の証明ができなくなる。また、ハッシュを用いるのでハッシュ衝突が起きることがあり、詰み・不詰と出たからと言ってそれが100%正しいとは限らないという問題がある。
その点、やねうら王の新しい詰将棋エンジンは、原理上は、不詰と出れば100%不詰だし、詰みと出れば100%詰みのはずではある。
ミクロコスモス(1525手詰)を詰ます脊尾詰が不詰を証明できないのは、意外ではあるけども、まあ今回の局面の不詰を証明するために最低限残しておかなければならない局面が大量にあって、それらをすべて残しておくとハッシュサイズを超えてしまうのだろうから仕方があるまい。
まあ、このように、やねうら王の新しい詰将棋エンジンは、いわゆる「ナイーブな実装」で、複雑なアルゴリズムは使っておらず、なるべくシンプルに書いてあって、それゆえ、メモリはわりと消費するけどもバグりにくく、正確性には優れている。今後詰将棋エンジンを改良していく上で、基準となる詰将棋エンジンだと思う。
詰将棋奥が深すぎる。。
alphazero,muzeroあたりは詰将棋どうしてるのかが気になる。。
AlphaZeroもMuZeroも特に何も書かれていないので、詰将棋ルーチンは載せていないのではないかと思われます。ResNetがある程度深ければ1手3手ぐらいの詰将棋も学習できるのでしょうか。謎です。