Bouzy`s 5/21 algorithm
Download
Report
Transcript Bouzy`s 5/21 algorithm
Bouzy’s 5/21 algorithm を用いた
Df-pn+探索の詰碁への適用
2005/03/07
東京大学大学院
工学系研究科 石井宏和
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探索
コンピュータゲームプレイヤ
ルールが単純で評価がし易い
機械学習や並列計算などの技術を総合的に
用いる対象
人間の世界チャンピオン以上のレベルのゲーム
オセロ,
バックギャモン, チェス
いくつかの複雑なゲームではアマチュアレベル
将棋,
囲碁
囲碁の現状
最新のコンピュータゲームプレイヤの強さ
アマチュア初段程度
囲碁の難しさ
探索空間の大きさ: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
Depth-First Proof-Number探索
人間の先読み
見込みのある手を優先的に読む
見込みの無い手は読みを後回しにする
ノードを探索する時に、そのノードに最低限必要な
リソース量の見積もりを設け、楽観的に探索を行う手法
2つの閾値
証明数
反証数
Depth-First Proof-Number探索
証明数 (proof number)
各ノードにおいて、その詰みを証明するために展開しなけれ
ばならない子ノードの最小の数
先端ノード
詰み
詰みを証明するためのリソースは必要ない → 0
不詰み
いくらリソースをつぎ込んでも詰みは証明できない → ∞
不明
見込みが立たない → 1 (仮の値)
Depth-First Proof-Number探索
証明数 (proof number)
各ノードにおいて、その詰みを証明するために展開しなけれ
ばならない子ノードの最小の数
内部ノード
ORノード
子ノードの中で一つでも詰みが証明できれば良い
→ 子ノードの持つ証明数の中で最小のもの
ANDノード
子ノード全ての詰みを証明しなければならない
→ 子ノードの持つ証明数の和
Depth-First Proof-Number探索
反証数 (disproof number)
各ノードにおいて、その不詰みを証明するために展開しなけ
ればならない子ノードの最小の数
先端ノード
詰み
いくらリソースをつぎ込んでも不詰みは証明できない → ∞
不詰み
不詰みを証明するためのリソースは必要ない → 0
不明
見込みが立たない → 1 (仮の値)
Depth-First Proof-Number探索
反証数 (disproof number)
各ノードにおいて、その不詰みを証明するために展開しなけ
ればならない子ノードの最小の数
内部ノード
ORノード
子ノード全ての不詰みを証明しなければならない
→子ノードの持つ反証数の和
ANDノード
子ノードの中で一つでも不詰みが証明できれば良い
→子ノードの持つ反証数の中で最小のもの
Depth-First Proof-Number探索
リソース量の見積もりの少ない(見込みのある)
ノードから探索したい
ORノードでは証明数・ANDノードでは反証数の
小さい(必要とされるリソース量の見積もりが少ない)
ものから優先的に探索
深さ優先探索
メモリ使用量や時間の効率が良い
証明数・反証数それぞれに閾値を設けて探索
Depth-First Proof-Number探索
(∞,∞)
○:OR NODE
□:AND NODE
(2,∞-1)
n2c
A
R
[1,1]
[3,1]
(thp,thd)
[1,1]
[1,2]
(4,∞-1)
nc2
B
[pn,dn]
[1,1]
[2,1]
thp2 ≦ pn 3
C
D
E
F
G
[1,1]
[1,1]
[1,1]
[1,1]
[1,1]
ノードnにおいて以下の条件を満たすまで子を探索(終了条件)
ルートノードに閾値を付与
ノードnがORノード時証明数最小ncと二番目に小さいn2を選び閾値を与えてncを探索
nR.th
=min(n.th
n2.pn+1)d
pn(n)≧n.th
or dn(n)≧n.th
=∞ ,p R.th
c.thpp
pd, =∞
nc.thd=n.thd+nc.dn-∑C.dn
Df-pn+
Df-pn
証明数と反証数の2つの指標を用いて人間の
見込みの判別を表現した探索手法
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を5回行う
全ての交点に対してErosionを21回行う
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の適用
囲碁の評価関数
判断基準が曖昧
石に特徴が無い
→ 優先順位の決定が困難
→定式化されたアルゴリズムであるBouzyから
処理の軽い評価関数を作り、Df-pn+に適用
Df-pn+ へのBouzyの適用
詰碁は目的の石(のつながり)が二眼を持っているかどうか
評価値の中で大きいものから二つが眼となる可能性が高い
→二番目に大きい評価値を最大化する着手に最大の評価
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
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+
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
手
法
A
10000
1000
100
10
1
1
100000
10000
10000
手
法
C
100
10
100
1000
10000
提案手法
100000
1000
10
1000
100
10
1
1
1
10
100
1000
提案手法
10000
100000
1
10
100
1000
提案手法
10000
100000
評価実験
各手法において、提案手法よりも探索ノード数が少なかっ
た問題・同数だった問題・多かった問題の数
少なかった問題の数
同数だった問題の数
多かった問題の数
手法A
3
1
36
手法B
8
11
21
手法C
11
17
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の適用方法の変更
探索可能領域の全ての交点の評価値の和を
最大化するような着手に最大の評価
発表は以上です。
ありがとうございました。