2012-01-27
■[将棋]floodgateでの対局

各種アルゴリズムの有効性を検証するために、駒割評価+なにかのアルゴリズムで探索するプログラムで対局しています。
アピール文書のネタとしても使えるかもしれませんので・・。
本来は、最初に純粋な駒割評価のみのプログラム(s_dummy_koma_1c_all_off)でレーティングを確定させた後、5〜7段階くらいで各種アルゴリズムを加えていってレーティングの変化を検証しようと考えていたのですが、対局をいくつか続けていると異常終了してしまいます。
ローカルでは何回対局させても異常終了することがなかったので非常に困った事態です。
以前より当たりをつけて修正を行ったり、ログ出力を行っていますが未だ原因は特定できず。
他開発者の方々にはご迷惑をお掛けしています。
ちなみに、
s_dummy_komaの後ろに「p」が付くのがpondering(相手の思考中に先読みで探索する)です。
「そう言えば実装してなかった!」と、あわてて作ったもの。
「a」がつくものがaspiration search。駒割評価だけでも強くなるのかどうか。
駒割評価のみでの探索の場合、人が見るとおかしな指し方になります。
傾向を列挙すると、
- 相手玉に駒が向かって行かない。
- 相手玉の守りが堅いとますます向かって行かない(駒をすすめる際の優先度が下がる)。攻めあぐねて防戦一方。
- 自玉にも駒が向かって行かないので守りが薄い。
- 積極的に端の香車、桂馬を取りに行く。
- 自分の駒は歩でもなんでも、大駒を打ってでも守る。
- 駒割に変化のない局面だとすべての歩を順番にどんどんすすめる。自陣はスカスカになります。
- 相手陣に大駒がいる、または大駒が打ち込める状態で持ち駒がいくつかあると、相手玉まわりの価値の高い駒である金銀を取りに行き、結果的に寄せに入ることがある。
勝ったにせよ負けたにせよ、探索により勝ち/負けを読みきっていることが重要な確認ポイントです。
よくよく考えてみると、探索ノード数とかbeta cutの割合などを調べることは多々ありましたが、探索経路をここまで真剣に見ることがなかったので、良い機会だと思っています。
将棋の内容としては「自玉にも駒が向かって行かないので守りが薄い。」ことが致命的かな?と思うので、玉の危険度に関する特徴が正確であればあるほど、多様な局面に対応できるのかも?
対局の中には格段に強いプログラムにも数局勝っているようですが、これは、戦型によっては駒割が重視され、駒の働きの評価が相対的に低下する局面が存在するのではないかと思っています。
s_dummy_komaでは盤面評価をパスして駒割値だけを計算しているので探索速度が速くなり、駒割探索側が有利となってしまう。