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の適用方法の変更

探索可能領域の全ての交点の評価値の和を
最大化するような着手に最大の評価
発表は以上です。
ありがとうございました。