気分転換に詰め将棋ルーチンを実装中
詰め将棋自体はABC探索風のルーチンにしています。「ABC探索でマージンを無限大にし、指し手を王手と応手に限定したルーチン」って書けばいいんだろうか。まぁ、実際には共謀深さが単調増加する、比較的シンプルな動作になるんですが。
んで、とりあえずUSIのgo mateコマンドに対応させて、詰め将棋ルーチン単体でざくっと動作テスト完了。
羽生の将棋実戦「詰め&必死」200―羽生マジックに学ぶ終盤の手筋200題
- 作者: 森鶏二,羽生善治
- 出版社/メーカー: 日本文芸社
- 発売日: 2004/03
- メディア: 単行本
- クリック: 7回
- この商品を含むブログ (2件) を見る
これの問1と問2はそれぞれ2秒・13秒で解けて、問10は2分かかっても無理でした。ムーブオーダリングをまったくしていないので、その辺は改良の余地がありそうです。というか、全合法手を生成してから局面進めて王手チェックしてるから、その辺も遅いのかも。
まぁ、まずはこのままαβと組み合わせて、通常探索+詰め将棋の2スレッド動作にしてみます。もしデュアルコアのノートで選手権参戦って事になれば、マルチスレッド化しないともったいないですしね*1。
*1:もっとも、この方式だと序盤〜中盤は片方のコアが遊んじゃうんですが。