ボクノカンガエタツヨイモンテカルロ囲碁(1)
仕事とオンゲで忙しく(ry
とりあえずCrazyStoneのCG2006.pdfをこなしておきたいんですよね。ていうかUCTだと繰り上げは平均オペレータしか見当たらないのですがなにゆえ?
というわけでコードの進展はありませんが妄想を書き連ねときます。
・現状のコンピュータはパターン認識苦手なんだから、最強最速のアルゴリズムが人間の思考方法とある程度違っていてもむしろしょうがないじゃない。
メインメモリが全部連想メモリだったりしたら何か別のアルゴリズムが発展してたかもね。
・playoutの勝率で評価すれば勝っているときは安全な手、負けているときは無理筋な手が選ばれる。のはわかります。でも木探索の末端からのplayoutは普通形勢判断せずにベタな手を打ちあうものですよね(その点を崩したら弱くなる恐れとか云々)。つまり木探索の深さの手数だけで勝率を最大化しているわけで、これって過剰に常時一発逆転を狙いすぎではないですか?だから序盤で50目負けているときは20目負けを勝ち負けの閾値にして地道に打たせる、なんてアルゴリズムのほうがいいのかもしれません。
あれ、でもplayoutの打ち方が現状の目算だけじゃなく盤面の不安定要因を正確に反映するものであるなら、まさしく勝率を最大化すれば済む話なのか。
・相手が自分ではない場合、相手は自分の予想外の手を打ってくる可能性が高く、であれば木探索のprogressive wideningで相手の候補手を自分の候補手より速く広げる、要するにマイナス方向の勝手読みをする。べきか否か。
別の話として、プラス方向の勝手読みをした結果をUCBに流用するとか…
いたずらにwideningするのもあれなんで、しめるべきところをしめられないかしら。(続く)