本資料の説明
ここでは荻絵香木氏から「BATACO」(協力詰 4247手、第56回WFP作品展にて発表)の投稿後に提供された研究資料を紹介します。
並び歩を再帰的に下げていく手法は、加藤徹氏の「寿限無」で確立され、協力詰の超長編にしばしば用いられる手筋となっていますが、「寿限無」で用いられた「歩を斜めに配置する」方法以外にも、手順の唯一性を保つ配置が可能であり、そのような配置を絨毯爆撃的手法で探し出そうとしたのがこの研究です。
この研究には神無次郎氏のnfm.exe(幅優先探索を行うfmで、通常のfmより超長編に強い)も用いられています。
文中にはnfm.exeに与えた入力ファイルと、それを生成するRubyのプログラムについても言及されていますが、これらはnfm用であるため割愛し、ここでは結果のみを収録しています。
調査内容
以下は荻絵氏のメールの抜粋です。本研究の範囲、手法等について説明されています。
歩下げ手順について,そんなに網羅的というわけではないですが,絨毯爆撃を行ってみました.
よければ,結果稿などで使って下さい.
次のような絨毯爆撃を行いました.
左上の増幅機構は固定.
1,2筋には,
●●
●香
●・
・歩
歩・
・・
●●
という形のものをおく.これは繰り返しを3回させるため.
ただし,歩の位置が14の時は,成生の非限定をなくすため,香の位置は12ではなく22にする.
3~8筋に関しては,
●
・
歩
・
●
か
●
・
歩
・
・
●
のいずれかをおく.
間隔4である部分は連続的になっているようにする
歩の位置は,5段目から8段目までの4通り.ただし,7筋と8筋はそれぞれ2,3通り.
また,隣り合う筋では,歩の段は高々1しか違わないようにする.
また,間隔3である部分が隣り合っている場合は,歩の段は違ってはいけない.
玉方の歩の枚数は,ギリギリで香をとれる枚数に設定する.
具体的には,間隔3である部分の個数 + [8筋の歩の位置が87の場合は3,88の場合は4].
この条件を満たす図の数は709個.
この条件で全検し,唯一解であるものは40個でした.
図の列挙に使ったプログラムがmain.rb で,できたファイルがin709.fmi.
結果として得られた完全作が kanzen40.fmo です.
目視で分類したところでは,本質的に異なるのは,1,7,12,26,32,35番めの6種類だと思います.
7番目のがBATACO法で,ちゃんと出てきています.
とくに面白いと思ったのが32番目のもので,これは4枚歩を持っている時に5~8筋の歩下げを4回そこを訪れることで行うもので,
これが完全限定なのは驚きだと思います.
今回は歩の数がギリギリになるように設定したり,間隔を3か4に限定するなどかなり限定的な構図で行いましたが,
(どうやるのかはわかりませんが)もっと賢く網羅的にやればさらに変わったものが見つかるのでは,という気がしました.
完全作一覧
上記の調査の結果見つかった完全作をすべて示します。
通常のfmの出力とは書式が若干異なりますが、fmviewで問題なく鑑賞できます。
全完全作(fmview用、226KB)