SlideShare a Scribd company logo
1 of 39
オセロ求解へ向けた取
り組み
橋本剛 上田徹 橋本隼一
北陸先端科学技術大学院大学
情報科学研究科
まずは自己紹介
 コンピュータ将棋 TACOS の開発をしてます。
 趣味: 将棋(自分のプログラムにまったく勝
てなくなった)
 学会: 情報処理学会ゲーム情報学研究会、
ICGA(International Computer Games
Association)
こちらの分野のホットな話題
 コンピュータ将棋: 評価関数の自動学習(B
onanza Method, 保木2006)
プロレベルまであと少し
 コンピュータ囲碁: モンテカルロ法(+UCT)
が猛威を振るう
9路盤ではプロに勝った? 19路盤でも有段者
に
昨年の大きな話題:
Checkers is solved
 Checkersが解けた!結論は引き分け.[J.
Schaeffer et al, Science, 2007].
 世界中で大きく取り上げられ,Checkerが有名でない日
本でも新聞などが取り上げた.
 ゲームを解くという事は大きな話題を呼ぶ
 大型計算機を数年間回し続けた(新聞では18年計
算しっぱなしで解いたなどと報道)
 checkersの次の候補は?
⇒ オセロ
本日の流れ
 研究の目的
 関連研究紹介: Checkers is solved
 証明数を使う探索
 新しい探索法WPNSの提案
 オセロ・ソルバの開発・設計
 まとめ
研究の目的
 オセロはCheckerよりも難しく解くのは困難
 オセロが解けたらインパクトは大きい
 8×8オセロの読切り
ゲームの結論とそれに至る手順を求める
オセロを解く事の難しさ
 checkersの探索空間は5×1020
オセロの探索空間は100000000×1020
 6×6のオセロは解かれており、16対20で白勝ち.[Joel
Feinstein 1993]
 ハードウェアの進歩や探索法の洗練によりコン
ピュータの探索性能は格段に向上
 容易に解く事は出来ないが,
決して夢物語ではない
チェッカーのルール
・駒は常に斜めに動く
・獲る事が可能な駒は必ず獲らなければならない。複数の獲り方がある場合は任意に選
択してよい。
・相手の駒を穫った後もう一度穫ることが可能ならば、そのまま連続してもう一駒穫る
・一番奥の列に駒を進めることによって、「成る」ことができる。成った駒は「キング」と呼ば
れ、以後斜め後ろを合わせた4方向に進むことができるようになる
・以下のふたつの状況で勝敗が決定する。
・相手の駒が全滅した場合、全滅させた側の勝利となる
・次に動かせる駒がなくなった場合、動かせなくなった側が敗北となる
Checkers is solved:
アルゴリズム構成
 Seeding
 文献などから得る「Best Play」
の手順を入れる
 Proof tree manager
 Proof number search
 Proof solver
 αβ探索→dfpn探索
 Endgame database
 駒残り10個以下の局面は
すべて登録
証明数を使う探索
オセロにも使える?
証明数を使う探索
証明木
 探索空間 O(bd)
 b: 分岐因子
 d: 深さ
 証明木: O(bd/2)
 節点が勝ちであることを
証明する木
証明木になりそうなノード
を効率よく探索する方
法は?
⇒ 証明数探索
例
OR節点 AND節点
A
B C
D E F G
H I J K L M
不明 勝ち 勝ち 勝ち負け 勝ち
不明 負
負
勝 勝
勝
勝
証明木
証明数の定義
 節点nの証明数pn(n)
 nが勝ちであるために展開しなければならない先端節点数の下限値
(1)節点nが先端節点
(a)未解決
pn = 1
(b)勝ち
pn = 0
(c)負け
pn = ∞
(2)節点nが内部節点
(a)nがOR節点
pn = 子節点のpnの最小値
(b)nがAND節点
pn = 子節点のpnの和
∞
2
2
1 1 0 ∞ 2
pn OR節点 pn AND節点
証明数を使って探索
 証明数を使って効率よく探索するには?
⇒ 証明数が最小のノードを常に展開すればい
い
⇒ 最良優先探索が簡単
 ややこしいノードは後回し、証明数の少ない
簡単そうなノードを先に探索
 手数が長くても応手数が少ない問題は特に
強い
 最適解は保障しない
PN-searchとその進化
 証明数を閾値として探索を行う。証明数の少ない簡
単そうなノードを優先して展開するので、解に到達し
やすい。
 反証数も同時に閾値として扱う
 最良優先探索→PN-search [Allis,1994]
 メモリの問題があり、難しい問題は解けない
 詰め将棋の世界で深さ優先探索として発展、
 PN*: 証明数だけ、ミクロコスモスを初めて解く[Seo:1997]
 参考 ミクロコスモス http://www.geocities.jp/k_7ro/o18.html
 df-pn: 長手数詰め将棋問題をすべて解くことに成功
[Nagai:1999]
df-pn
(depth first proof number search)
 反証数も使いPN-searchと等価 [Nagai:1999]
 300手以上の詰将棋問題を全て解く
 checkersが解かれた際の探索にも用いられる
 詰碁でも優れた成果を挙げる
 二人零和完全情報ゲームを解くための現時点で最良
の探索法
オセロをdfpnで解かせてみたら
 残り手数20手以上の局面では性能がた落ち
 オセロでは局面の合流が相当多く、2重カウ
ント問題の影響が非常に大きいことがわかっ
た!
 何か本質的な対策が必要
合流
証明数の2重カウント問題
A
B C
D E
F G H
AND節点
OR節点
原因:証明木に合流が存在すると起こる
F+G+H
実際には?
pn(A) = F + 2G + H
証明数が高く見積もられてしまっている
簡単な問題を難しいと勘違い!
2重カウントへの対応
 長井の2重カウント対策
 合流検知に時間を要する
 実装が難しい
 経路分枝因数探索(BNS)(2005, 岡部)
 経路分枝因数を用いた深さ優先の探索法
 挙動は証明数探索に似ている
 一部の詰将棋問題ではdf-pnよりも良い結果を収めてい
る
 合流の影響を受けない(2重カウントが問題とならない)
 探索情報を活かしきれてない為,df-pnよりも探索性能は
劣る
証明数の定義
(1)節点nが先端節点
(a)未解決
pn = 1
(b)勝ち
pn = 0
(c)負け
pn = ∞
(2)節点nが内部節点
(a)nがOR節点
pn = 子節点のpnの最小値
(b)nがAND節点
pn = 子節点のpnの和
pn:証明数bn:経路分枝因数
bn = 1
bn = 0
bn = ∞
bn = 子節点のbnの最小値
bn =選択した子節点のbn + 非選択の未解決分枝因数
経路分枝因数の定義
解探索を行ってみた
コアとなる探索法
 df-pnを用いた解探索
 BNSを用いた解探索
オセロは合流を大量に持つた
め探索に影響を受ける
探索性能が低いため問題を
解くのに異常に時間がかかる
探索法をどうにかしないといけない!
新しい探索法の提案
新しい探索手法の提案
Weak Proof Number Search
証明数探索 + 経路分枝因数探索
探索効率 + 合流の影響なし 両方を持つ
 df-pnのように探索効率が良く
BNSのように合流の影響を受けない
既存の探索法とWPNの違い
各探索法
df-pn
BNS
WPNS
ANDノードでの定義
子節点のpnの和
選択した子節点のbn +非選択の未解決分枝因数
子節点のWPNの最大 + 未解決の指し手の数
実現は容易
× ○
31 3 ∞ 4 4 3 2
2 1 2
OR node AND node
A B
C D E
局面A: 局面B:6 5
df-pnBNS
WPNS
df-pnの場合
PN(A) = PN(C) + PN(D) + 3 ・・・・・PN(A)=6
PN(B) = PN(E) + 1 + 2 ・・・・・・・・・PN(B)=5
BNS (選択した局面がC,Eの場合)
BN(A) = BN(C) + 1 + 1・・・・・・・・・・BN(A)=3
BN(B) = BN(E) + 1 + 1・・・・・・・・・・BN(B)=4
WPNSの場合
WPN(A)
WPN(B)
= WPN(D) + 1 + 1
= WPN(E) + 1 + 1
・・・・・・WPN(A)=5
・・・・・・WPN(B)=4
挙動の違い(合流がない場合)
こっちの方が簡単!
○
3 3 3
9
A B
OR node
AND node0 07
C D E
F G
挙動の違い(合流がある場合)
局面A: 局面B:10 15
df-pnの場合
PN(A) = PN(C) + PN(D) + 3 ・・・・・・PN(A)=17
PN(B) = PN(E) + 3 + 3 ・・・・・・・・・・PN(B)=15
df-pn
BNS(局面D,Eを選択した場合)
BN(A) = BN(D) + 1 + 1 ・・・・・・・・・・BN(A)=9
BN(B) = BN(E) + 1 + 1 ・・・・・・・・・・BN(B)=11
BNS
WPNSの場合
WPN(A) = WPN(C) + 1 + 1・・・・・・WPN(A)=9
WPN(B) = WPN(E) + 1 + 1・・・・・・WPN(B)=11
WPNS
×
WPNSはどちらでも正解
こっちの方が簡単!
性能評価
オセロ終盤
詰将棋
性能評価(オセロ終盤)
Search nodes(WPNS vs df-pn)
0.0E+00
1.0E+06
2.0E+06
3.0E+06
4.0E+06
5.0E+06
0.0E+00 1.0E+06 2.0E+06 3.0E+06 4.0E+06 5.0E+06
WPNS(search node)
df-pn(searchnode)
Search nodes(WPNS vs BNS)
0.0E+00
5.0E+05
1.0E+06
1.5E+06
2.0E+06
2.5E+06
0.0E+00 5.0E+05 1.0E+06 1.5E+06 2.0E+06 2.5E+06
WPNS(search node)
BNS(searchnode)
WPNS vs. df-pn WPNS vs. BNS
プロットされた点がy=xより下:WPNSの方が性能が悪い
プロットされた点がy=xより上:WPNSの方が性能が良い
探索性能が明らかに向上している
性能評価(詰将棋)
 WPNS vs. df-pn
 WPNS vs. BNS
‐テストセット‐
 将棋図巧・将棋無双 200問
11~611手の詰将棋問題集
性能評価(詰将棋)
Search nodes(WPNS vs df-pn)
0.0E+00
1.0E+06
2.0E+06
3.0E+06
4.0E+06
0.0E+00 1.0E+06 2.0E+06 3.0E+06 4.0E+06
WPNS(search node)
df-pn(searchnode)
Search nodes(WPNS vs BNS)
0.0E+00
1.0E+06
2.0E+06
3.0E+06
4.0E+06
0.0E+00 1.0E+06 2.0E+06 3.0E+06 4.0E+06
WPNS(search node)
BNS(searchnode)
WPNS vs. df-pn WPNS vs. BNS
•df-pnよりはやや性能が劣るがBNSよりはやや性能が良い
10~60手の問題が中心でオセロほど合流がないのでは?
手数が多い問題ではどうなる?
性能評価(詰将棋)
 Tacos(WPNS) vs. 市販ソフト
 将棋図巧 100番 「寿」
 2つの作品中で最長手数の611手詰み
‐テスト問題‐
Tacos vs 市販ソフト
将棋ソフト名
銀星将棋4
激指7
Tacos(改良前)
柿木将棋8
AI将棋14
東大将棋8
Tacos(WPNS)
探索ノード数 解いた時間
unsolved
unsolved
unsolved
不明
不明
1685848
797438
1分20秒
17.3秒
10.5秒
7.2秒
WPNSを用いただけで探索性能が格
段に向上した
オセロ・ソルバの開発・設計
 メインアルゴリズム
WPNS
 その他の効率化
ゲーム終盤ではαβ探索を使用
トランスポジションテーブル中のGCの改良
振動対策
WPNSを用いたオセロ・ソルバ
このソルバを用いてオセロの解探索を行う
オセロ読切り
 元となる局面はfjt1
 27手の定石(残り33手)
 オセロの本筋と考えられている定石
 自動対戦で何手か進んだ局面を生成
 15~32手の問題
オセロ読切り結果
WPNS df-pn BNS
残り手数 Nodes Time(s) Nodes Time(s) Nodes Time(s)
19 541784 9.8 815257 13.4 905186 14.1
20 21428024 416.6 27581028 572.3 64276154 1202.1
20 1548693 29.8 3230158 60.1 3782194 67.9
25 138654111 2868.1
解けない
25 187406357590 40549.1
26 337386822 7533.1
32 2^64以上 1ヶ月半
他の探索法では不可能だった32手読みに成功
問題
1
2
3
4
5
6
7
19~26手:打切り条件として探索時間が24時間を越えたら解けないとする
32手:打切り条件なし
結論
 提案手法による好結果を得た
オセロでは◎
合流に対して有力
 提案手法の可能性
詰将棋でも○
題材に依存しない
 オセロの解探索
WPNSオセロ・ソルバは唯一32手読みに成功
まとめ
 WPNSの提案
 WPNSを用いたオセロ・ソルバの開発・設計
 多くの問題で効率が良い
 他の探索法では不可能だった32手読みに成功
 結論
 提案手法は合流に対して有力
df-pn
BNS
WPNS
基本性能
○
△
○
合流に対して
×
○
○
Future work
 探索法の改良
オセロの特性(決まった手数で終了)に合うもっと
良い探索法があるのでは?
強いオセロプログラムとの合体
 並列化の研究
証明数系探索の並列化方法
grid computing
 60手読み切るまで道のりは長い

More Related Content

What's hot

合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点Ichigaku Takigawa
 
クラシックな機械学習の入門  8. クラスタリング
クラシックな機械学習の入門  8. クラスタリングクラシックな機械学習の入門  8. クラスタリング
クラシックな機械学習の入門  8. クラスタリングHiroshi Nakagawa
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15Yoichi Ochiai
 
Devsumi 2018summer
Devsumi 2018summerDevsumi 2018summer
Devsumi 2018summerHarada Kei
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識佑 甲野
 
レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方Shun Nukui
 
AIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にAIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にMonta Yashi
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法Hirokatsu Kataoka
 
生存時間分析数理の基礎
生存時間分析数理の基礎生存時間分析数理の基礎
生存時間分析数理の基礎Koichiro Gibo
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探るTakashi J OZAKI
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)Shota Imai
 
研究発表スライド作成の実際 序盤の作り方
研究発表スライド作成の実際 序盤の作り方研究発表スライド作成の実際 序盤の作り方
研究発表スライド作成の実際 序盤の作り方Hisashi Ishihara
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会takehikoihayashi
 
最適化超入門
最適化超入門最適化超入門
最適化超入門Takami Sato
 
AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약Jooyoul Lee
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAGIRobots
 

What's hot (20)

合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点合成変量とアンサンブル:回帰森と加法モデルの要点
合成変量とアンサンブル:回帰森と加法モデルの要点
 
クラシックな機械学習の入門  8. クラスタリング
クラシックな機械学習の入門  8. クラスタリングクラシックな機械学習の入門  8. クラスタリング
クラシックな機械学習の入門  8. クラスタリング
 
先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15先端技術とメディア表現1 #FTMA15
先端技術とメディア表現1 #FTMA15
 
Devsumi 2018summer
Devsumi 2018summerDevsumi 2018summer
Devsumi 2018summer
 
多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識多様な強化学習の概念と課題認識
多様な強化学習の概念と課題認識
 
因果推論の基礎
因果推論の基礎因果推論の基礎
因果推論の基礎
 
MICの解説
MICの解説MICの解説
MICの解説
 
明日使えないすごいビット演算
明日使えないすごいビット演算明日使えないすごいビット演算
明日使えないすごいビット演算
 
レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方レコメンドエンジン作成コンテストの勝ち方
レコメンドエンジン作成コンテストの勝ち方
 
AIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前にAIと最適化の違いをうっかり聞いてしまう前に
AIと最適化の違いをうっかり聞いてしまう前に
 
CV分野におけるサーベイ方法
CV分野におけるサーベイ方法CV分野におけるサーベイ方法
CV分野におけるサーベイ方法
 
生存時間分析数理の基礎
生存時間分析数理の基礎生存時間分析数理の基礎
生存時間分析数理の基礎
 
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
「データサイエンティスト・ブーム」後の企業におけるデータ分析者像を探る
 
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
強化学習エージェントの内発的動機付けによる探索とその応用(第4回 統計・機械学習若手シンポジウム 招待公演)
 
研究発表スライド作成の実際 序盤の作り方
研究発表スライド作成の実際 序盤の作り方研究発表スライド作成の実際 序盤の作り方
研究発表スライド作成の実際 序盤の作り方
 
『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会『バックドア基準の入門』@統数研研究集会
『バックドア基準の入門』@統数研研究集会
 
最適化超入門
最適化超入門最適化超入門
最適化超入門
 
AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약AlphaGo 알고리즘 요약
AlphaGo 알고리즘 요약
 
Attentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門までAttentionの基礎からTransformerの入門まで
Attentionの基礎からTransformerの入門まで
 
For MANABIYA
For MANABIYAFor MANABIYA
For MANABIYA
 

オセロ求解へ向けた取り組み