19路盤でのモンテカルロ法テスト
2眼で活き、なんて分かってないパターン認識同士の対戦
使っているパターンは、以下の11種類です。
パターンは3x3 (直前にどこに打たれたかを含む)
3x3に石がない場合はその周囲12箇所のうち3箇所だけを見るパターン。
3x3に石が1個の場合はその周囲12箇所のうち3箇所だけを見るパターン。
int weak_count_atari[2][2]; // アタリ。[0] コウ、[1] すべて
int weak_count_dis_border[10][2]; // 盤端からの距離
int weak_count_dis_previous[19][2]; // 直前の手からの距離(dx,dyの大きい方)
int weak_count_dis_before_my[19][2]; // 自分の2手前の手からの距離(dx,dyの大きい方)
int weak_count_area[5][2]; // [0] 自分の地の中に打つ、[1] ダメ [2] 相手の地の中 [3] ダメ(自分の地と隣接)[4] ダメ(相手の地と隣接)
int weak_count_attach[6][2]; // 隣接して打つ [0] 自分の活石 [1] 自分の不明 [2] 自分の死石 [3-5] 相手
int weak_count_escape[2][2]; // アタリになった石が逃げる手(シチョウ、シチョウではない)、ダメ1
int weak_count_capture[3][2]; // 石を取る。[0] 直前にアタリになった石に隣接、[1] 死んでない石 [2] 死んでいる石
参考論文
Remi Coulomさんの
Computing Elo Ratings of Move Patterns in the Game of Go
http://remi.coulom.free.fr/Amsterdam2007/
パターンはほとんど一緒です。地の中に打つか、とか活きている石に隣接、とかが
彩の評価関数を利用してるので独自なだけです。
| 2眼で活き、なんて分かってないパターン認識同士の対戦 | |
|
|
|
// from 10000 games 2007/07/11
double weak_per_atari[2] = {
0.25858247,
0.16966141,
};
double weak_per_dis_border[10] = {
0.08989176,
0.17021235,
0.19639820,
0.16364013,
0.12469334,
0.10030867,
0.07565354,
0.05068167,
0.02533058,
0.00318976,
};
double weak_per_dis_previous[19] = {
0.00000000,
0.34806842,
0.19200222,
0.10414766,
0.06738823,
0.05174408,
0.04123988,
0.03372886,
0.02649632,
0.02173406,
0.01958251,
0.01846288,
0.02219849,
0.02083634,
0.01414492,
0.00765432,
0.00548504,
0.00323284,
0.00185295,
};
double weak_per_dis_before_my[19] = {
0.00003901,
0.22315984,
0.15785877,
0.10947581,
0.08639322,
0.07012959,
0.05824564,
0.04843545,
0.04070529,
0.03498196,
0.03221084,
0.03010095,
0.03020834,
0.02814421,
0.02119087,
0.01226490,
0.00840247,
0.00515601,
0.00289682,
};
// [0] 自分の地の中に打つ、[1] ダメ [2] 相手の地の中 [3] ダメ(自分の地と隣接)[4] ダメ(相手の地と隣接)
double weak_per_area[5] = {
0.07855661,
0.74699807,
0.17444532,
0.11688949,
0.27518187,
};
// 隣接して打つ [0] 自分の活石 [1] 自分の不明 [2] 自分の死石 [3-5] 相手
double weak_per_attach[6] = {
0.24595604,
0.22499057,
0.09564305,
0.38263041,
0.23532591,
0.04709409,
};
// アタリになった石が逃げる手(シチョウ、シチョウではない)、ダメ1
double weak_per_escape[2] = {
0.01131080,
0.50542379,
};
// 石を取る。[0] 直前にアタリになった石に隣接、[1] 死んでない石 [2] 死んでいる石
double weak_per_capture[3] = {
0.63439427,
0.14260177,
0.00746258,
};
元のページに戻る