5路盤の完全解析の結果 論文名:Solving Go on Small Boards 著者: Eric C.D. van der Werf H.Jaap van den Herik Jos W.H.M. Uiterwijk オランダのマーストリヒト大学 出典: ICGAジャーナル 2003年6月号 紹介:清 愼一、山下 宏 2003年10月11日 CGF例会 電通大 1 ページへジャンプ 目次 1.Introduction 2.碁のルール 3.評価関数 4.探索方法 5.スーパーコウ(同型反復を全て禁 止)による問題 6.実験結果 7.結論と将来の予想 8.参照 1 ページへジャンプ 1. Introduction 探索ベースのアプローチによって解かれ た(最善手をプレイし続けると、どちらが勝 ちなのか解明された)ゲームがたくさんあ るが、囲碁はまだ。 小さい碁盤ならば、4×4までは解けてい る(2000年、清)。 証明はされていないが、7×7までは人手 で解いたという報告はある。 1 ページへジャンプ 2. 碁のルール コンピュータで解かせる場合に、考 慮しなければいけないことがある。 (1) 劫と同型反復、自殺手、地の計算 様々なルールが存在する (2) 生死の判定 生死をコンピュータが判定できるか 1 ページへジャンプ 最後まで打たずに「生きて いる石」を判定する 人間どうしの対局では、両者が終局 を合意したときに終局となる。 → コンピュータには無意味な概念。 合法手がある限り打ち続けると、なか なか終わらないので、合法手が残っ ていても終局の判定をしたい。 「生きている石」の判定には、Benson のアルゴリズム(1976)が有効。 ※対局プログラムにとっては、Bensonのア ルゴリズムは遅くて使い物にならない! 1 ページへジャンプ Bensonのアルゴリズム 領域(同一色で囲われている)につい て、呼吸点や連結の度合いから、生 死を判定する。 1 ページへジャンプ 最後まで打たずに「地」を判 定する 眼は、Bensonのアルゴリズムによっ てわかる。 ダメは、両者の生き石に接続。または 生き石に接続してない(序盤)。 一方の石に囲まれた大きな領域が、 地か否かの判定は、計算が必要。 1 ページへジャンプ 「地」の判定 囲っている側が全てパスしたと仮定し て、侵入側が打ちつづけた場合に、 眼が2つ以上できれば「地」ではない。 「欠け眼」の判定は簡単(眼の斜めを 調べればよい)。 「欠け眼」だけでも生きている場合が あるが、これはEuler数で判定できる。 「中手」「セキ」の判定も必要(詳細不 明)。 1 ページへジャンプ 終局時の生死について 通常はパス2回で終局 劫があると、パスは3回以上続かな いと終局にならない。 終局時に、死に石は、相手の地にカ ウントされる。 スーパーコウでは、盤上に存在する 石が、そのまま生き石となる。 1 ページへジャンプ 採用したルール 自殺手は無し 2眼作れない石(セキを除く)は死に 曲がり4目は生死の判定をせずに打 ちつづける 巨大墓場は死に 1 ページへジャンプ 3.評価関数 1.盤上置ける最大の石数 2.ダメの数を最大にする 3.盤の端に打つ手を避ける 4.石を連絡する。 5.眼を作る 石の連結とか眼の数の計算は時間がか かる。 オイラー数(Euler Number)を持ちいるこ とで連絡と眼の数を高速に計算できる。 1 ページへジャンプ 連絡と眼の評価 連絡する方が好型 W=2 W=1 連絡して眼を作ればさらに好型 W=2 W=0 1 ページへジャンプ Euler Number(オイラー数) Topology(位相)の用語らしい。 オイラー数=物体の数-孔の数 0000000 0111010 0101010 → 0111000 0000000 物体の数は2 孔の数は1なので オイラー数は 2-1=1となる 1 ページへジャンプ Euler数が囲碁に適用できる! 囲碁では眼を作ることと石を連絡する ことが一般的に好ましい。 オイラー数=物体の数-孔の数、 なので物体の数を減らすこと=連絡、 孔の数=眼を作ることになり、オイ ラー数を減らすことがいい評価関数 になりうる。 1 ページへジャンプ Euler数の計算の仕方 diagonal(対角線) 1 ページへジャンプ Euler数の計算の仕方 2 オイラー数を減らすのは石を連絡して眼を作 ることになる 4W=n(Q1) - n(Q3) -2n(Qd) 4W=12 - 0 -2*2 = 8, W=2 4W=8 -0 -2*4 = 0, W=0 ここでは斜めでも連絡、というEuler数で計算している 1 ページへジャンプ Euler数の計算の仕方 3 0110110 Q1=2、Q3=0、Qd=2 0001000 盤の枠に0があるとして 縦に2行ずつ取り出してこの部分だけ Q1,Q3,Qdの数をカウントすれば高速 に計算できる。 あらかじめ2^14=16384通りのテーブ ルを作っておく 黒を計算するときには白は無視する。 1 ページへジャンプ 4.探索方法の概略 PVSによる反復深化法。 αβ法の改良版の一つ。一番最初に 探索する手以外は枝刈りされると期 待して幅1のNull Windowで探索する。 失敗すれば真面目に再探索する。 途中局面の末端では軽い評価関数 を使い、終局局面では特別の関数で 正しい値を出す。 1 ページへジャンプ 4.探索方法の詳細 4.1 ハッシュ表 4.2 対称形の照合 4.3 内部の無条件限界 4.4 手の並び替えの向上 1 ページへジャンプ 4.1 ハッシュ表(探索した局面を保存) two-deep replacement ハッシュが衝突した場合にどれを捨 ててどれを残すか、という手法。 ハッシュ表をA、Bの2つ持ち、ハッ シュを読む場合は、A,Bと2つ調べる。 登録するときは、まずAを見て、より 深い探索結果の場合はをBにコピー してAに情報を書き込む。それ以外の 場合は無条件にBに上書きする。 A...より深い結果だけを登録。 B...常に最新の情報で上書きされる。 1 ページへジャンプ 2つからなるハッシュ表(続 き) 1つだけのハッシュ表で深い探索結果と 入れ替える方法よりも一番効率がいい。 他には探索された局面数の多い方を残 す方法も有力 ハッシュ表が十分大きいなら関係ない 1 ページへジャンプ 4.2 対称形の照合 回転で4通り、対称型で2通り、さらに 白と黒と入れ替えたパターンで2通り、 全部で4*2*2=16通りの対称形を考慮 している。 対称形のハッシュ値はいちいち計算 しなおしている。--->時間がかかる! が問題なし。これは浅い深さ(深さ5ぐ らいまで)でのみ。対称形が効果を最 大限に発揮するのは最初の方なので。 SSK(同型反復禁止)ルールでは手 順が問題になるので手の並び替えに しかハッシュの情報を使えない。 1 ページへジャンプ 4.3 無条件地での枝刈り 無条件の地、を使って枝刈りが可能 例えば、黒の確定地が5x5で8目を超 えていれば、(alpha,beta)=(-25,+6)の 場合に即座に枝刈りされる。黒は8目 以上負けようがないので。 同時に無条件地の中に打つ手は普通 は試す必要がないので手の制限にも なる。 SSK(同型反復禁止)の場合は全部試 す。 1 ページへジャンプ 4.4 読む手の順番 1. ハッシュの手 2. ヒストリー手 3. キラー手 4. ヒストリーの2番目 5. キラー手の2番目 6. ヒストリーの残りの手全部 1 ページへジャンプ ヒストリー手 ある局面で枝刈りが起こった手の場所を覚 えておき、その場所を+していく。 枝刈りが起きやすい場所が点数が高くなり、 その手を優先的に試す。 キラー手、は兄弟局面で枝刈りが起きた手。 ヒストリーと似てる。 敵の急所は我が急所、で黒白のテーブルは 一緒。 1 ページへジャンプ キラー手とsibling promotion キラー手 Sibling promotion(敵の好手を先に試す) 1 ページへジャンプ 5.スーパーコウ(SSK)による問題 全ての同一局面の反復を禁止するこのルー ルではハッシュを使っているとGHIという問題 が発生する。 GHI(Graph History Interaction) 異なる手順で同一局面が出現する問題の事。 ハッシュにはその局面に至った手順が含まれ ていないためハッシュの情報を鵜呑みにする と間違える。 1 ページへジャンプ この論文でのGHIの対応策 ハッシュにパスの回数と取った石の 数を加えた。 簡易版(appr.SSK) その局面に至った手順のハッシュ情 報を通常のハッシュと別に持ち、両方 が一致した時のみを同一局面とする。 完全版(full SSK) 探索効率がかなり悪化する。 1 ページへジャンプ 6.実験結果 P4-2.0GHz ハッシュで1600万局面を記憶 1 ページへジャンプ ルールの違い Basic Ko … 2手のコウのみ禁止。同型反復は全 て許可。 Japanese Ko … 同型反復は持碁(引き分け) Appr.SSK … 全ての同型反復は禁止。ハッシュに 取った石の数、パスの回数を含む。 Full SSK … その局面にいたった手順情報のハッ シュを別に持つ。 1 ページへジャンプ 5路盤での初手の位置による結果 天元は黒25目勝ち 辺は黒3勝ち 隅は白1目勝ち それ以外は白が25目勝ち 1 ページへジャンプ 天元、辺、隅における最善手順 辺の手順は趙治勲の解析手順と一緒 辺で白6を黒7の位置に打つ変化は趙治勲の解 析は間違いらしい 天元 辺 隅 1 ページへジャンプ 辺に打った場合の趙治勲の解析手順 最善手順と同一。黒3目勝ち(日本ルールでは黒2目勝ち) 1 ページへジャンプ 辺で白6を打った場合の趙治勲の解析 手順 最終図は両コウゼキになって持碁 中国ルールでは白1目勝ちになる。ルールの差の問題? 1 ページへジャンプ 探索手法による探索局面数の減少 ハッシュ表は効果絶大 対称性を考慮したハッシュも効果的 HistoryがKillerよりも効果的 1 ページへジャンプ 6路盤の解析(8個石を置いた後で) 6路盤では8個以上石を置いた局面を 幾つか解いた。 1 ページへジャンプ 結論と将来の予想 5x5は全ての初手に対して完全に解いた。 6x6は盤上に石が8以上ある場合を幾つか解いた。 探索手法やヒューリスティックな評価関数、無条件地 の判定が探索効率を高めた。 清と川嶋が解いた4x4で1400万ノードに対して MIGOSは70万ノードで解いている。探索速度は20 万から30万局面/秒 次なるステップ6路、7路盤の解析へ… 人間による解析結果 黒4目勝 7x7 黒9目勝 6x6 1 ページへジャンプ
© Copyright 2024 ExpyDoc