Repository navigation
Releases
棋慧 v1.4.6(詰将棋探索部DLL)
- 守り方の合法手を作る関数で、毎回約500手分の作業領域を
初期化していたのをやめた(最も効いた) - 王手をかけている駒を、玉から8方向に見て探す(全81升を調べない)
- 玉の逃げ先の判定を、駒ごとの総当たりから、利きの探索に変更
- 玉の位置が分かっている場合は、探し直さない
- 局面の符号化(ハッシュ)を高速化(符号の値は従来と同じ)
- 17手詰の実測(Windows): 手順検証 18.8秒→15.3秒、
詳細検討 237.7秒→198.5秒(メモリは約2.0GBで同じ) - 100問で、改良前の計算と合法手の一覧を突き合わせ、
食い違い0件、詰みの手数も全問一致
棋慧 v1.4.5(詰将棋探索部DLL)
詰将棋エンジン(棋慧エンジン)の内部を軽くした。
・長手数の詰将棋を検討するときの使用メモリを減らした。
17手詰の例で約2.0GB(これまでより約1割減)。
・検討にかかる時間は、同じか少し速くなる(同じ17手詰で約4%短縮)。
・検討の結果(詰みの手順・余詰の有無)は、これまでと変わらず。
棋慧 v1.4.4(詰将棋探索部DLL)
局面表をunordered_mapから自前の片方向リストに変更
消費メモリ3割削減
棋慧 v1.4.3(詰将棋探索部DLL)
詰み問合せ(df-pn)の探索が、難問で同じ局面を何百万回も調べ直して止まる問題を修正しました。
合駒の扱い(絞り込み・鎖にまとめる)を問題に応じて切り替えるようにしました。
最初は「絞り込み+鎖」で、250,000局面まで調べます。
結論が出なければ、「鎖のみ」「絞り込みのみ」「どちらもなし」の順に切り替えます。
それでも出なければ、上限を3倍にして繰り返します。
最初に結論が出た設定の結果を使います。
効果(こちらの環境での測定)
17手の難問「山田康平氏作」(3l5/5k3/5g3/3p3L1/6p2/7Pp/6s2/9/9 b 2R2B3g3s4n2l14p 1): 10分以上でも解けなかったものが約25秒で解けました。
15手の問題: 2.8秒
21手の問題: 0.1秒
短手数の99問では、「詰む/詰まない」の判定が従来と同じでした。
「棋慧で解く」や詳細検討が使う下準備にも、同じ切り替えが入っています。
棋慧 v1.4.2(詰将棋探索部DLL)
「手順検討」で詰将棋エンジンが出した手順を「詳細検討」で棋慧エンジンが利用することで若干高速化。
棋慧 v1.4.1(詰将棋探索部DLL)
バグfix
depth>600で「不詰」と判定してしまった部分を正確に「不明」と直した。
棋慧 v1.4(詰将棋探索部DLL)
df-pn法による高速詰チェック(試験導入)と棋慧エンジン自体のアルゴリズムへの利用(主眼)
棋慧 v1.3.2(詰将棋探索部DLL)
棋慧 v1.3.1(詰将棋探索部DLL)
玉方の玉の移動先を、攻め方の駒の利きから先にまとめて判定
棋慧 v1.3(詰将棋探索部DLL)
局面の鍵を64ビットから128ビットにし、計算も8バイト単位にまとめて高速化
局面衝突を避けるためですがそこまでやる価値があるかどうか微妙。
64ビットで十分ですがそれでも局面衝突の可能性はゼロにはできないし
詰将棋特化エンジンなのでこのぐらいいいんじゃない?
8バイト単位でまとめたことで3%ほどの速度が改善。