死活の問題をどうにかしようとしている途中なのですが、ここでちょっと方針を一時修正したいと思います。
3月5日に開催されるJAIST CUP 2012ゲームアルゴリズム大会@品川の囲碁9路盤「接待碁」コンテストに参加できるか、検討してみました。
参加条件としては「9路盤」「コミ 7.5目」「中国ルール」「超コウ」「GTPによる通信」「3つのコマンド追加X-playerlevel、X-gencomment-premove、X-gencomment-aftermove」「手抜きではない手加減、起伏に富んだ展開への誘導、楽しいコメントなど、プレイヤを『接待』する工夫を競う」を満たす必要があります。
9路盤にするのは簡単にできます。人間を相手に対戦するのでAI(思考ルーチン)が必要になります。ということで、最低限この2つを作ってみました。GraphGo012 として公開します。
【図75 GraphGo v0.12】
コミは、スコアを計算するときに白のスコアとして加えればいいだけです。中国ルールは、地だけではなく石を含めてスコアをカウントします。これもなんとかなりそうです。コミ7.5も超コウも中国ルールに由来します。超コウは単にコウの繰り返しのみでなく、同一局面が現れることを禁止するルールです。これはちょっと大変そうです。局面をすべて覚えておく必要があるかもしれません。
GTPはGo Text Protocolというテキストでプログラム同士が碁を打ち合うためのプロトコル(通信手順)です。JavaのプログラムではGoGuiというプログラムがソース込みで公開されているので、参考にできそうです。これに3つのコマンドを追加すればよいということです。
で、結局、このコンテストの根幹となる「手抜きではない手加減、起伏に富んだ展開への誘導、楽しいコメントなど、プレイヤを『接待』する工夫を競う」というアイデアが出るか、というところが肝になってくるようなのですが、なんとか動く9路盤プログラムを作れても、ここが厳しそうな気がしています。
大会目前なので、いずれにせよ厳しそうなのですが、できるところまでがんばってみようかと思います。
(つづく)