« x64版をfloodgateに投入 | トップページ | 昨日の『ねこにゃ』の勝ちはまぐれだったようです »

2008年3月 2日 (日)

久し振りに進展

『ねこにゃ』の開発、久し振りに進展しました。

結局、速度向上のために差分で連を持っていたりするところを一旦全部捨ててみて、9路で初手からなら1500Playout/secでした。合法手の生成のところで重い処理をしているのをその気になれば省けるはずなので、3000Playout/sec位は(データ構造が盤面のみでも)出せそうですね。

で、モンテカルロシミュレーションを組み込むのは当たり前として、UCTやUCBに行く前に、『シミュレーションの誤差』の方から考えてみることにしました。

シミュレーション自体がまだパターンも何も組み込んでいないのでシミュレーションの結果自体があんまり信用できないという問題はあるんですが(苦笑)。

n回のシミュレーションによる実際の値との誤差は、1/sqrt(n)に比例する(はず)と言うのを前提にプログラミング。

で、9路で10秒間=初手なら15000Playoutでデータ測定。

とりあえず、『実際の値』と『本当の勝率』の間の誤差がどれ位あるのか、定数項の設定をまだ最適化していない(これは、同一の手を10回・100回・1000回・10000回とかシミュレートすることで定数項を推測は出来るはずですね。2^n乗でやるのがコンピュータ屋さん的な感じですかね?)状態ですが、現在、

初手
可能手81手
総シミュレーション回数 15672回
一番シミュレートを多く行った手のシミュレート回数 198回
一番シミュレートの少ない手のシミュレート回数 80回

一番勝率の高かった手:(5,6) 勝率:0.555556

てな感じです。まだ何かでかいバグがありそうな気もするんですが、とりあえず…

・パターンを使って一回あたりのシミュレーションの精度を上げる
・まずは、UCB1にしてみる&UCTを組み込む

という、割と重めのテーマが残っています。

とはいえ、パターンの方は、元データのあてもできましたし、今のシミュレーション回数の割り当て方法をUCB1にするのもUCB-TUNEDにするのも比較的簡単です。また、UCTにするのも、まぁ大体作業的には見えています。(データ構造としては、この辺を意識した構造を構築済みなので。)

というわけで、久し振りに大分視界がクリアになった、これから一気に強くできるな、と思ったところで。

…現行の、いわば『しょぼい』バージョンに私が負けました(涙)。

…いくらなんでも、囲碁弱すぎだ、私。

|

「ねこにゃ」開発」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/148072/40337018

この記事へのトラックバック一覧です: 久し振りに進展:

コメント

コメントを書く