Transcript Df-pn+
コンピュータ詰碁の
探索戦略の改良
2005/02/10
近山・田浦研究室
37-46383 石井宏和
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
コンピュータゲームプレイヤ
ルールが単純で評価がし易い
機械学習や並列計算などの技術を総合的に
用いる対象
人間の世界チャンピオン以上のレベルのゲーム
オセロ,
バックギャモン, チェス
いくつかの複雑なゲームではアマチュアレベル
将棋,
囲碁
囲碁の基本ルール
二人で交互に黒と白の石を
盤上の交点に打つ
上下左右を敵石に囲まれる
と石は盤上から取り除かれる
上下左右に敵石がある
交点へは打てない
勝敗は地(囲んだ空点の
数)の多さで決める
13目
9目
囲碁の基本ルール
眼
周りを完全に囲まれた空点
眼を二つ(二眼)持っていると
その石は最後まで取られずに残る(生き)
囲碁の現状
最新のコンピュータゲームプレイヤの強さ
アマチュア初段程度
囲碁の難しさ
探索空間の大きさ:10360
オセロ:1060
チェス:10120
将棋:10220
形勢優劣の判断
石の特徴が無い
→相対的に分かる
判断基準が少ない
詰碁
囲碁の部分問題
限られた領域内で、特定の石(の繋がり)が
最終的に盤上に残る
(生きる)かどうかの判定
二眼を持てば生き
目的
詰碁の問題を効率的に解くこと
研究対象
一眼問題
一眼問題
一眼問題
生かすべき石が決まっている
生かすべき石は
始めから眼を一つ持つ
受け手の石は攻め手の
生きた石に囲まれている
着手範囲が決まっている
眼
眼
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
Df-pn+ [Nagai, et al 1999]
Depth-First Proof-Number(Df-pn)+
木探索で最も成功している
探索手法の一つ
Depth-First Proof-Number探索を基本
AND/OR
AND/OR 木探索
ノードの種類 (黒先手・黒生きの例)
OR
ノード
受け手の手番(黒)に相当
子ノードのうち、最低どれか一つが詰み(黒が生き)
であれば詰むノード
AND
ノード
攻め手の手番(白)に相当
子ノードの全てが詰んで初めて詰むノード
交互につながって探索木を構成
Depth-First Proof-Number探索
二つの閾値による探索の制御(黒先・黒生の場合)
証明数 (Proof Number (pn) )
反証数 (Disproof Number (dn) )
各ノードにおいて、その詰み
(黒の生き)を証明するために
展開しなければならない
子ノードの最小の数
各ノードにおいて、その不詰み
(黒の死に)を証明するために
展開しなければならない
子ノードの最小の数
計算方法
先端
ノード
内部
ノード
pn
dn
詰み
0
∞
不詰
∞
0
不明
1
1
OR
min pn(C)
ノード
AND
ノード
∑ pn(C)
∑ dn(C)
min dn(C)
C: children of node n
ノードを探索する時に最低限必要なリソース量の見積もり
Depth-First Proof-Number探索
リソース量の少ない見積もりから早く探索したい
ORノードでは証明数・ANDノードでは反証数の
小さい(必要とされるリソース量の見積もりが少ない)
ものから優先的に探索
深さ優先探索
メモリ使用量や時間の効率が良い
証明数・反証数それぞれに閾値を設けて探索
Depth-First Proof-Number探索
(∞,∞)
○:OR NODE
□:AND NODE
(2,∞-1)
n2c
A
R
C
[1,1]
D
[1,1]
E
nc
F
(3,2)
[1,1]
H
[1,1]
[2,1]
n2
G [1,1]
thd2 ≦ dn 2
[1,1]
[pn,dn]
nc2
B
(4,∞-1)
[1,1]
[3,1]
thp2 ≦ pn 3
(thp,thd)
[1,1]
[1,2]
[1,1]
[1,2]
I
[1,1]
ノードnがANDノード時反証数最小n
ノードnにおいて以下の条件を満たすまで子を探索(終了条件)
ルートノードに閾値を付与
ノードnがORノード時証明数最小nccと二番目に小さいn
と二番目に小さいn
2を選び閾値を与えてn
cを探索
2を選び閾値を与えてn
cを探索
n
p=n.th
p+n,c.pn-∑C.pn
nc.th
.th
=min(n.th
n2.pn+1)d
pn(n)≧n.th
or dn(n)≧n.th
R.th
=∞
c
pp
pd, =∞
p R.th
nc.thd=min(n.thd, n2.dn+1)
nc.thd=n.thd+nc.dn-∑C.dn
Df-pn+
人間の先読み
見込みのある手は深く読む
見込みのない手は早々に読むのをやめる
Df-pnにヒューリスティックスを用いて人間の
見込みの判別を表現し、探索を効率化
Df-pn+
Df-pnに加える二つのヒューリスティックス
cost(dis)proof(n,
nchild)
ノードの展開の重さを計る指標
ノードnからその子ノードnchildまでにかかるコストを計る
ヒューリスティックス
証明数・反証数とそれぞれの閾値の計算に反映
h(dis)proof(n)
兄弟ノードの優劣を計る指標
静的にノードnを評価するヒューリスティックス
ノードnが先端ノードの時の証明数と反証数の値に反映
Bouzy’s 5/21 Algorithm [Bouzy 1995]
盤面の形勢を評価するアルゴリズム
各交点をそれぞれを周りの石の状況により評価
一定の計算式からなる評価関数
二つの操作を繰り返すことにより各交点に
評価を与える
Dilation
Erosion
軽い評価関数
Bouzy’s 5/21 Algorithm
Dilation
Erosion
Dilation
周りに敵石がいなければ、
周りの味方の暫定領地
および味方の石の個数を
その交点の暫定領地
として加える
Erosion
周りの敵石・敵側の暫定
領地および空白地の
個数を0になるまで引く
1
2
2
4
1
2
1
2
1
Bouzy’s 5/21 Algorithm
1.
2.
3.
4.
盤上で石のある交点に対して、
黒なら正・白なら負の高い評価値を与える
空点に0の評価値を与える
全ての交点に対してDilationをn回行う
全ての交点に対してErosionをm回行う
m = n ( n – 1) + 1
Bouzy’s 5/21 Algorithm
5
5
-5
-15
-14 -10
-14
-14 -18
-14
5
5
5
5
5
5
5
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
Df-pn+ へのBouzyの適用
囲碁の評価関数
判断基準が曖昧
石に特徴が無い
→ 優先順位の決定が困難
GoToolsの評価関数
様々な囲碁の知識を利用
→定式化された軽い評価関数Bouzyを
Df-pn+に適用
Df-pn+ へのBouzyの適用
詰碁は目的の石(のつながり)が二眼を持っているかどうか
評価値の中で大きいものから二つが眼となる可能性が高い
→二番目に大きい評価値を最大化する着手に最大の評価
ノードnが先端ノードだった時に用いるヒューリスティッ
クス(hproof(n))に適用
pn(n) 1
pn(n) h proof (n)
dn(n) 1
dn(n) hdisproof (n)
Df-pn
Df-pn+
Df-pn+ へのBouzyの適用
2
20
0
0
-20
0
-12
0
-11
0
-6
0
0
0
-15
-1
0
0
0
-9
0
0
0
0
0
-20
-12
-15
-3
0
0
0
0
0
0
-3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Df-pn+ へのBouzyの適用
a
2
0
0
20
20
14
b
20
2
0
20
2
0
0
d
0
0
0
0
0
0
0
14
e
20
0
c
0
20
0
0
0
0
0
f
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
評価実験
実験環境
CPU: Pentium 4 1.90GHz
メモリ: 512MB
言語: C++
比較手法
A.反復深化法(深さを閾値にして、閾値を徐々に大きくする
深さ優先探索)にBouzyを使って子ノードの
優先順位付けをするもの
B. Df-pn
C. Df-pnでpn・dnが同じ場合にBouzyを使って
子ノードの優先順位付けをするもの
一眼問題40問
評価実験
A. 反復深化法にBouzyを使って
子ノードの優先順位付けを
するもの
B. Df-pn
C. Df-pnでpn・dnが同じ場合に
Bouzyを使って子ノードの
優先順位付けをするもの
B
1000000
100000
10000
A
1000
100
10
1
1
100
1000
10000
100000
10000
100000
提案手法
100000
100000
10000
10000
1000
1000
C
100
10
100
10
10
1
1
1
10
100
1000
提案手法
10000
100000
1
10
100
1000
提案手法
評価実験
各手法において、提案手法よりも探索ノード数が多かった
問題・同数だった問題・少なかった問題の数
多かった問題の数
同数だった問題の数
少なかった問題の数
手法A
36
1
3
手法B
21
12
7
手法C
12
16
12
手法Aよりは優れている
手法Bよりはおおむね優れているが、場合によっては悪い
結果を出す
手法Cとはほぼ優劣がない
評価実験
成功した例
探索可能領域が
ある程度の大きさの
空点で構成される場合
特に、その領域内に
受け手の石が
ある場合
1
評価実験
失敗した例
問題の解が受け手の
守るべき石から
離れている場合
受け手の守るべき
石に近いところに
高い評価値
1
Agenda
1.
2.
背景と目的
関連研究
Df-pn+
Bouzy’s 5/21 Algorithm
提案手法
実験と評価
まとめと今後の課題
3.
4.
5.
Depth-First Proof-Number探索
まとめ
詰碁を効率的に解くことを目的
Df-pn+にBouzy’s 5/21 Algorithm を適用
3つの手法と比較
A. 深さを閾値にした深さ優先探索に子ノードの優先順位付け
としてBouzyを使ったもの
B. Df-pn
C. Df-pnでpn・dnが同じ場合にBouzyを使って子ノードの順位
付けをしたもの
手法Aよりは優れた結果
手法Bよりもおおむね優れているが、場合によっては悪い結果
手法Cとはほぼ優劣がつかない
今後の課題
碁盤プログラムの改善
時間による考察
Dilation, Erosionの回数変更
評価関数のBouzyの適用方法の変更
探索可能領域の全ての交点の評価値の和を
最大化するような着手に最大の評価
発表は以上です。
ありがとうございました。