年賀状の内容は様々だが、詰将棋作家は、年賀状やホームページに、その年の新年を祝う詰将棋を載せたりする。おもちゃ箱では毎年年賀詰の展示室を開いている(2013年、2014年)。2014年の年賀詰なら2014や26、1、午(ウマ)、などを何らかの形で詰将棋に織り込むことが多い。初形曲詰、あぶり出し、立体曲詰(2から6など)といった曲詰がポピュラーだが、ウマの年なので、馬を使った年賀詰にしようと思った。平成26年(ウマ年)1月1日を表現する意味で、盤面は詰方26馬、受方11玉とすることにした。持駒は何にする?多くの組み合わせを作って、その中で良さそうなものを選ぶ。これは詰将棋創作プログラミングにぴったりの題材なのではないか。そこで、初めての創作支援ソフトとして、「持駒サーチ」プログラムの開発を始めた。持駒サーチは、盤面を入力にして、詰将棋として(余詰がなく、駒も余らず)成立する持駒の組み合わせを求めるプログラムである。このためには、1)組み合わせをなるべく効率よく生成する2)生成した組み合わせが詰将棋として成立しているか確認する(解答、余詰チェック)の二つが必要。全て0から作ることも考えられるが、解答、余詰チェックには柿木将棋という優れたソフトがあるので、2)の部分は柿木将棋を活用させていただき、1)の部分をプログラムすることにした。この年賀詰の可能な持駒の組み合わせは、3×2×5×5×5×5×19通り。この全検では実用的な時間内には終わらない。持駒があまり多いのは年賀詰にはふさわしくない。そこで、持駒の枚数と駒の種類の上限を指定できるようにし、最大6枚、最大3種の範囲でサーチすることにした。詰む場合はたいてい一瞬だが、詰まない場合はなかなか判明せず、結局時間を限って打ち切るしかない。したがって、この範囲だけでも全検はまだ難しい。持駒のある組み合わせが詰めば、その組み合わせを包含する組み合わせはすべて詰む。逆にある組み合わせが詰まないならば、その組み合わせに包含される組み合わせはすべて詰まない。このことを考慮して調べる順番を決めれば、かなり時間の短縮になるはずだ。実際に年賀詰を作ってみたとりあえずすぐできそうな部分だけ実装し実行してみたら、約3時間でサーチが完了。3通りの完全作(候補)がピックアップされた。工夫すれば、更に時間を短縮することもできそうだ。2014年の年賀詰は手順をみてこの中から選択した。元旦におもちゃ箱、詰将棋メモに掲載する予定(シンプルな形なので、衝突したらごめんなさい)。(詰将棋メモ)実行時のスクリーンショットはこんな感じ。解答、余詰チェックという難しい部分を柿木将棋に任せたので、持駒サーチのプログラム自体は1日で完成(200行程度)。そのぐらいならいろいろ試してみたいという方もいると思うので、次回はプログラムからの柿木将棋の利用方法を説明しよう。詰将棋創作AIを作るには(2017.01.17)コメント良かったら、柿木将棋と連携させる方法についても教えてください。私のほうでも試してみたいので。21:25やねうらおさん、見ていただきありがとうございます。柿木将棋との連携方法、今書いてまして、29日にアップ予定ですので、少しお待ちください。23:09返信ありがとうございます。それは楽しみです!私にとって、いいお年玉になりそうです。推理将棋第160回解答(2)プロフィール。