コンピュータ詰碁の 探索戦略の改良 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の適用方法の変更 探索可能領域の全ての交点の評価値の和を 最大化するような着手に最大の評価 発表は以上です。 ありがとうございました。
© Copyright 2024 ExpyDoc