昨年9月にジャイアンさんが半自動創作で作った最短双玉煙「ツインレイ」を発表した。広瀬さんと馬屋原さんの「独自の評価関数に基づいた煙詰の自動生成」という論文が今年の2月に出た。史上初の協力詰全駒煙「狼煙」が詰パラ8月号に発表された。狼煙の解答発表はまだだけど、Web Fairy Paradiseを見るに、どうやら狼煙もコンピュータ創作らしい。
煙詰の機械創作のブームが来ているようだ。この流れに乗りそこねないように、自分も試しにひとつ作ってみた。
普通の煙を完全自動創作で作れることは広瀬・馬屋原の論文で分かっているので、これと同じことをしても仕方がない。何か付加価値のある煙を作らなければいけない。過去の煙詰を全部見返したところ、双玉・無防備・都煙はまだ作例が無いことが分かったので、これを作ることにした。無防備の縛りは逆算の手を狭めるので、機械による探索も効率よくできそうな気がした。
ところがどっこい。やってみると、これはめちゃくちゃ大変だった。逆算の手は限られているけど、その手を紡いで紡いで25枚くらいまで置いて盤の端っこに追い込まれて逆算に行き詰まるのだ。戻ってやり直すけど、また行き詰まる。プログラムはどうやらそんなことを繰り返しているらしかった。評価関数を改善して、完全自動創作で作りきるか、ジャイアンさんのように人間が介入するか、迷ったけど介入を選んだ。
まず収束を探させる。いくつか候補を出してもらって、そのなかで駒を詰め込めていて、その先の逆算にも見込みがありそうな局面を私が選ぶ。一番良さそうなのはこれだった。
無防備煙で先手に持駒を持たせると、どこかで合駒を稼がないといけなくて逆算の制約が増えるんだけど、過去の無防備煙たちも合駒を出しているので、持駒無しには固執しない方が逆算が進みやすいのかもしれない。歩1枚までは先手の持駒を許可した。
この図からプログラムに逆算をさせたが、やっぱり30枚くらいで駒が詰め込めなくなる。無防備煙は中盤もとにかく駒を詰め込まないといけないのだ。ここは人間が試行錯誤によって駒を詰め込む。例えばこれ。
結構詰め込めているでしょう。でもここから自動逆算させても40枚置き切るまではいかなかった。もう面倒だから、金無し煙や、1枚だけ後手駒ありで発表してしまおうかな、なんてことも考えた。
創作終盤、最後の詰め込みは枝も浅いので機械創作向きだ。
ここまでやってみて考えたのは、収束で角を2枚使い切ってるのが痛いのではないかということだった。単純に37馬を銀に変えると、35歩に同玉の変化が33龍、34角の逆王手で詰まないのだけど、また人間の試行錯誤によって馬を銀に変えることに成功した。
香香桂桂の塊が鍵でした。
ここからの逆算もいろいろあるんだけど、プログラムが見つけた中でよさそうなのはこれ。
長くなってきたので端折るが、実はこの図も結局39枚にしかならなかった。あと1枚がどうしても置けない。また人間の介入によって1枚増やす。
この配置変更は幅優先探索ならプログラムも見つけるのだろうけど、幅優先にすると発散して40枚置き切るまでがはるか遠くなるので、良し悪しである。
結局のところこの図から40枚置き切る図を自動逆算で見つけることはできた。香と桂がほぼ品切れで、取られるだけの駒すら置けず、40枚図を得るまでに39枚図が300くらいできて、ここまでやっても40枚置けないのかと絶望しかけたが、できた。手順前後や迂回手順だらけだけど、40枚置けたのは幸運だった。
というわけで、とても自動創作とはいえない作り方で機械創作を終えた。プログラマからは「機械が作ってないじゃん」と言われ、保守的な詰将棋ファンからは「自分で作ってないじゃん」と言われる。なんともどっちつかずな立ち位置である。
そんな半端な創作方法。やってみてどうだったかというと、実はこれがめちゃくちゃ面白かった。最後に全駒煙が完成したときは自力で作ったときと同じくらいの感動があった。大きな声では言えないが、新しい詰将棋の楽しみ方としてみんなにお勧めしたいくらいだ。
ゲーム業界にTASという概念がある。Tool-Assisted Speedrunの略だ。詰将棋にもTool-Assisted Sousaku略してTASがあってもよいのではないか。そんなことを考えて、投稿時は機械創作ではなくTool-Assistedと書いた。実のところ、柿木将棋や脊尾詰を使って逆算したり、検討したりしてる多くの詰将棋作家たちもTool-Assisted Sakkaなのではないかと思ったりもするのだけど、その話はまた別の機会に。































