GA将?開発日記~王理のその先へ~

ネタ勢最強を目指して絶賛開発中。

気分転換に詰め将棋ルーチンを実装中

 詰め将棋自体はABC探索風のルーチンにしています。「ABC探索でマージンを無限大にし、指し手を王手と応手に限定したルーチン」って書けばいいんだろうか。まぁ、実際には共謀深さが単調増加する、比較的シンプルな動作になるんですが。

 んで、とりあえずUSIのgo mateコマンドに対応させて、詰め将棋ルーチン単体でざくっと動作テスト完了。

 これの問1と問2はそれぞれ2秒・13秒で解けて、問10は2分かかっても無理でした。ムーブオーダリングをまったくしていないので、その辺は改良の余地がありそうです。というか、全合法手を生成してから局面進めて王手チェックしてるから、その辺も遅いのかも。

 まぁ、まずはこのままαβと組み合わせて、通常探索+詰め将棋の2スレッド動作にしてみます。もしデュアルコアのノートで選手権参戦って事になれば、マルチスレッド化しないともったいないですしね*1

*1:もっとも、この方式だと序盤〜中盤は片方のコアが遊んじゃうんですが。