何とか、df-pnの詰ルーチンが動くようになりました。1か月半かかりました。21回大会の際に、参加者アピール文書を読むと、結構、多くの参加者が導入しているようだし、また1次予選6回戦で「なのは」に1手差で負けたのも、どうも詰ルーチンの性能差が出ているような気配が濃厚だったので、大会終了後にdf-pnについて、本格的に取り組んでみました。

 まず、進歩本4の長井さんの論文ですが、難解で、今まで、何度も挑戦したのですが、挫折しっぱなしでした。今回も、挑戦しましたが、同じでした。最近は、便利で、WEBでdf-pnのキーワードで検索すると、結構、引っかかるようです。それで、発想の出発点になったのが、石井宏和さんのマスター論文でした。
www.logos.ic.i.u-tokyo.ac.jp/~h-ishii/master_presentation.handout.pdf
この論文の中で、探索木の中で、証明数と反証数が、どのように変化していくかが視覚的にわかり、なるほどと思ったものです。

 実は、WILDCATは、数年前にセオ詰めを入れているので、証明数の概念については、なんとなくボヤーとわかっていました。実際、昔、書いたコードを読み返してみるとそれなりのことをやっているのがわかります(数年前のことで、自分の書いたコードを完全に忘れていましたが)。玉方で、まず証明数を得るために、1手進めて、ハッシュテーブルを探し、そこになかったら、+1というい処理をし、全部の数を足し合わせる。要は、探索木にぶら下がっている王様の対応手の総数を計算しています。なるほど、これが証明数なら、反証数は攻方で、同じようなことを王手の可能数で計算すればよいのかなということが少しずつわかってきました。
 後は長井さんの疑似コードを「攻方」と「玉方」に分けてコードを書いて、試行錯誤を繰り返せば、なんとかなるとの思いでやってきましたが、そうこうしているうちにdf-pnの詰ルーチンが動き始めました。ただ、わかりやすくするためハッシュの処理を単純にしてあるのと、「合い」を入れてないので、まだまだ道半ばというところでしょうか。
 
 今年のBonanzaはdf-pn実装済ということで、ソースコードをダウンロードし、df-pnの所を見てみました。ただ、まったく意味が分かりませんでした。私のような凡人には天才の保木さんが書くソースはチンプンカンプンです。