50KBでBonanzaレベルの将棋プログラムが書けるか
突然何を言い出すかと思われるでしょうが、教育的なコンピューター将棋のソースコードとしてBonanza相当(せめてBonanzaのRから200以内)の強さのプログラムが50KB程度で書けないのかというのを私は以前から考えております。
・fv.binは使って構いません。
・C++ templateの使用は不可とします。
・解読困難になるショートコーディングのテクニックは使用不可とします。
・USI対応
・教育用目的なのでコメントはたくさんあったほうがわかりやすいはずなので、コメント行はコードサイズのカウントに入れないこととします。
50KBというと..1000行〜1500行ぐらいでしょうか。ちょっと厳しいでしょうか。
100KBなら書けそうですが。R200以内(Bonanza R2600 - R200 = R2400程度?)に収まるかはよくわかりません。
・置換表も最小限の処理だけ
・指し手のオーダリング、何か簡単に書けて効果があるものを考える
コードサイズの問題もありますが、R2400は少し辛いかも知れません。R2100ぐらいなら楽勝でしょうけども。
ああ、あと並列化はやはり山場なので教育目的であってもこの部分を端折るのはあまり教育的ではない気がします。並列化部分をわかりやすく平易に書いて見せてあげるのも大切なことだと思います。いやしかし並列化をするコードまで書きだすと50KBでは少し収まりそうにないです。100KBであれば楽勝だと思うのですが。
「れさぴょん」ならぬ「れさぽん」(いかにもパチもんっぽいのですが)とか言う名前で作ってみようかと少し思ったりもしています。
いや、私のほうはまずはひよこ将棋の開発にある程度区切りをつけてからですが。