Microsoft PowerPoint - ゲーム理論2018.pptx

Similar documents
Microsoft PowerPoint - 計算機科学入門2014.pptx

Microsoft PowerPoint - DA1_2018.pptx

Microsoft PowerPoint - ゲーム理論2016.pptx

AI 三目並べ

PowerPoint Presentation

情報 システム工学概論 コンピュータゲームプレイヤ 鶴岡慶雅 工学部電子情報工学科 情報理工学系研究科電子情報学専攻

明治大模擬2

Microsoft PowerPoint - mp11-06.pptx

しています. これには探索木のすべてのノードを探索する必要がありますが,αβカットなどの枝刈りの処理により探索にかかる計算時間を短縮しています. これに対して, 探索するノードを限定したり, 優先順位をつけて選択的に探索する 選択探索 という探索方式があります. 本チームはノードの選択方式としてノー

始めに, 最下位共通先祖を求めるための関数 LcaDFS( int v ) の処理を記述する. この関数は値を返さない再帰的な void 関数で, 点 v を根とする木 T の部分木を深さ優先探索する. 整数の引数 v は, 木 T の点を示す点番号で, 配列 NodeSpace[ ] へのカーソル

Microsoft PowerPoint _人工知能とロボット2_rev.pptx

Microsoft PowerPoint - algo ppt [互換モード]

発展プログラミング (5) 例題 5-03( 応用プログラム 3 目並べ その 2) 勝敗判定機能をそなえた 3 目並べ のゲーム盤を作りましょう 必要な変数を考えましょう 1 マス目の状態を保持する配列 整数型 :mas[] 2 何手目かを数える変数 整数型 :nante 3 ゲームが終了したかど

memo

Microsoft PowerPoint - 05.pptx

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

人工知能入門

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ


今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること

Taro-最大値探索法の開発(公開版

様々なミクロ計量モデル†

> > <., vs. > x 2 x y = ax 2 + bx + c y = 0 2 ax 2 + bx + c = 0 y = 0 x ( x ) y = ax 2 + bx + c D = b 2 4ac (1) D > 0 x (2) D = 0 x (3

Microsoft PowerPoint - DA2_2017.pptx

Microsoft PowerPoint - DA2_2018.pptx

Microsoft PowerPoint - 09-search.ppt [互換モード]

プログラミング教育のための発展的な教材作成の実践と考察

Microsoft PowerPoint - ppt-7.pptx

Microsoft PowerPoint - ゲーム理論2018.pptx

Microsoft PowerPoint - 06.pptx

01 スタンダードナンプレ 配 ルール タテヨコ各列 太線で囲まれた 3 3 マスのブロックそれぞれについて 1 から 9 までの数字が一回ずつ現れるように空きマスを埋める 解答方法 から のマスに った数字を 順に答えてください

PowerPoint Presentation

コンピュータ工学講義プリント (7 月 17 日 ) 今回の講義では フローチャートについて学ぶ フローチャートとはフローチャートは コンピュータプログラムの処理の流れを視覚的に表し 処理の全体像を把握しやすくするために書く図である 日本語では流れ図という 図 1 は ユーザーに 0 以上の整数 n

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł

Microsoft PowerPoint - 06graph3.ppt [互換モード]

A Constructive Approach to Gene Expression Dynamics

Microsoft PowerPoint - vc2013.s.takeuchi.pptx

次に示す数値の並びを昇順にソートするものとする このソートでは配列の末尾側から操作を行っていく まず 末尾の数値 9 と 8 に着目する 昇順にソートするので この値を交換すると以下の数値の並びになる 次に末尾側から 2 番目と 3 番目の 1

dlshogiアピール文章

Microsoft PowerPoint - 13approx.pptx

Microsoft PowerPoint - DA2_2019.pptx

2016.

第121回関東連合産科婦人科学会総会・学術集会 プログラム・抄録

Microsoft PowerPoint - 応用数学8回目.pptx

Taro-再帰関数Ⅱ(公開版).jtd

memo

測量士補 重要事項「標準偏差」

PowerPoint Presentation

将棋将棋とは 古代インドで生まれた チャトランガ というゲームがルーツと言われています チャトランガは世界各国に伝わり 使う道具やルールが変化して 将棋となりました 将棋はタテ9つ ヨコ9つ 計 81マスの盤と8 種類の駒を使い2 人のプレイヤーが1 対 1で勝ち負けを競うゲームです 自分が1つの駒

日心TWS

Microsoft PowerPoint - H21生物計算化学2.ppt

第 1 章 条件分岐 この章では 条件に応じて処理を分岐する方法について説明します 1. CASE 式で複雑な条件分岐を実現 2. 関数を使用した条件分岐 3. MERGE 文による条件に応じた DML の実行

離散数学

Microsoft PowerPoint - 10.pptx

切片 ( 定数項 ) ダミー 以下の単回帰モデルを考えよう これは賃金と就業年数の関係を分析している : ( 賃金関数 ) ここで Y i = α + β X i + u i, i =1,, n, u i ~ i.i.d. N(0, σ 2 ) Y i : 賃金の対数値, X i : 就業年数. (

An Automated Proof of Equivalence on Quantum Cryptographic Protocols

Microsoft PowerPoint - kougi10.ppt

アルゴリズムとデータ構造

戦略的行動と経済取引 (ゲーム理論入門)

DR実施日のWP

JOHO KANRI 2016 vol.59 no.2 J ournal of Information Processing and Management May 偶然性が入らないゲームか ( 確定ゲームか ) という性質によって

Microsoft Word - no206.docx

2011年度 東京大・文系数学

スライド 1

分析のステップ Step 1: Y( 目的変数 ) に対する値の順序を確認 Step 2: モデルのあてはめ を実行 適切なモデルの指定 Step 3: オプションを指定し オッズ比とその信頼区間を表示 以下 このステップに沿って JMP の操作をご説明します Step 1: Y( 目的変数 ) の

Taro-レス・パブリカ

æœ•å¤§å–¬ç´—æŁ°,æœ•å°‘å–¬å•“æŁ°,ã…¦ã…¼ã‡¯ã…ªã……ã…›ã†®äº™éŽ¤æ³Ł

PowerPoint プレゼンテーション

alg2015-6r3.ppt

PowerPoint Presentation

データ解析

第86回日本感染症学会総会学術集会後抄録(I)

Microsoft PowerPoint - mp13-07.pptx

Microsoft PowerPoint - algo ppt [互換モード]

memo

PowerPoint Presentation

研修コーナー

連載講座 : 高生産並列言語を使いこなす (3) ゲーム木探索問題 田浦健次朗 東京大学大学院情報理工学系研究科, 情報基盤センター 目次 1 概要 17 2 ゲーム木探索 必勝 必敗 引き分け 盤面の評価値 αβ 法 指し手の順序付け (mo

tnbp59-21_Web:P2/ky132379509610002944

Method(C 言語では関数と呼ぶ ) メソッドを使うと 処理を纏めて管理することができる 処理 ( メソッド ) の再実行 ( 再利用 ) が簡単にできる y 元々はC 言語の関数であり 入力値に対する値を 定義するもの 数学では F(x) = 2x + 1 など F(x)=2x+1 入力値 (

グラフの探索 JAVA での実装

PowerPoint プレゼンテーション

パーキンソン病治療ガイドライン2002

日本内科学会雑誌第97巻第7号

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

メソッドのまとめ

Microsoft PowerPoint ppt

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語


論理と計算(2)

() ): (1) f(x) g(x) x = x 0 f(x) + g(x) x = x 0 lim f(x) = f(x 0 ), lim g(x) = g(x 0 ) x x 0 x x0 lim {f(x) + g(x)} = f(x 0 ) + g(x 0 ) x x0 lim x x 0

日本内科学会雑誌第98巻第4号

ワンダー ライヴズとは? 世界の様々な特徴 能 を持つ生物たちが 自然界での生き残りをかけて戦うカードゲームです

Microsoft Word - thesis.doc

_0212_68<5A66><4EBA><79D1>_<6821><4E86><FF08><30C8><30F3><30DC><306A><3057><FF09>.pdf

Microsoft Word - no11.docx

オートマトン 形式言語及び演習 1. 有限オートマトンとは 酒井正彦 形式言語 言語とは : 文字列の集合例 : 偶数個の 1 の後に 0 を持つ列からなる集合 {0, 110, 11110,

Math-quarium 練習問題 + 図形の性質 線分 は の二等分線であるから :=:=:=: よって = = = 線分 は の外角の二等分線であるから :=:=:=: よって :=: したがって == 以上から =+=+= 右の図において, 点 は の外心である α,βを求めよ α β 70

オートマトン 形式言語及び演習 4. 正規言語の性質 酒井正彦 正規言語の性質 反復補題正規言語が満たす性質 ある与えられた言語が正規言語でないことを証明するために その言語が正規言語であると

経済と社会

Transcription:

89 90 ゲーム理論 ( 第 回ゲーム木探索 I) 九州大学大学院システム情報科学研究院情報学部門横尾真 E-mail: yokoo@inf.kyushu-u.ac.jp http://agent.inf.kyushu-u.ac.jp/~yokoo/ ゲーム木探索 行動の選択が一回だけではなく 交互に繰り返し生じる 前の番に相手の選んだ手は分かる 9 9 例題 二人で交代に, から順に までの数を言う. 言う数の個数は, 個, 個,3 個のいずれか好きなのを選んでよい 最後に を言った方が負け 必勝法 を言って, 相手に順番を回せば絶対勝ち 一方,0 を言って, 相手に順番を回せば, 相手が何個を選んでも, 次に を言える --- 絶対勝ち 同様に,6 を言って, 相手に回せば次に 0 を言える --- 絶対勝ち 同様に,, 8, を言って回せば勝ち 先手が何を言おうと, 後手は を言って回せる 結局, 後手が必勝 93 9 このゲームの性質 二人で交代に順番が回ってくる 自分の前の相手の行動 / 手は完全に観測できる 偶然の入る余地がない 多くのゲームは同様な性質を持つ チェス, 将棋, オセロ, 囲碁, 五目並べ,etc. 上記の性質を満たさないもの バックギャモン : さいころ ポーカー : 相手の手は見えない ブリッジ : プレイヤの協調 必勝法 二人, 完全情報, 決定的なゲームは, 原理的には必勝法が存在する 先手必勝 / 後手必勝 / 引き分け 先手 / 後手を決めた時点で勝負はついている ( ゲームをするまでもない )!

9 96 必勝法 ( 続き ) ゲームの木 簡単なゲームなら必勝法が分かる ( 三目並べ ) 引き分け 五目並べ先手必勝 6x6 オセロ後手必勝 複雑なゲームでは分かっていない 分かってしまえばゲームは終り? 状態 / ノード : ゲームの可能な状態 状態の遷移 / リンク : 正しい手により遷移可能な状態間を結ぶ ( 一方向 ). 先手を MX プレイヤ, 後手を MIN プレイヤ, 先手の順番 ( 手番 ) に対応する状態を MX ノード, 後手の手番の状態を MIN ノードと呼ぶ. 勝ち負けが決まったノードを端点と呼ぶ 例 : を言ったら負け 97 ノードのラベル付け ( 考え方 ) 98 3 3 3 3 お互いに自分が勝つようにベストを尽くす / のラベルは先手 (MX プレイヤ ) の立場 MX プレイヤは, 絶対勝てる手があればそれを選び, 後手 (MIN プレイヤ ) は, MX プレイヤを絶対負かすことができる手があれば, それを選ぶ 99 00 ノードのラベル付け 以下のように再帰的に定義 端点に関して, そのまま / MX ノードに関しては, 子ノードに少なくとも一つ があれば, すべて なら MIN ノードに関して, 子ノードに少なくとも一つ があれば, すべて なら を 00, を -00 とすると, 上記の処理は MX ノードでは子ノードの最大値,MIN ノードでは最小値を取ることに対応 3 ノードのラベル付け 3 3 3

0 0 例題 : ニム ( コイン取り ) コインが 個と 6 個の列 交互に, 個もしくは隣り合う 個を取る 最後に 個もしくは隣り合う 個を取った方が勝ち 先手必勝 / 必負?, 木を書いて確かめよう 状態 / ノード 各列の個数の ( 小さい順に並べた ) リストで表現 : 初期状態は (, 6) 初期状態から遷移可能な状態 : (6), (, ), (, ), (,, ), (,, 3) すべての木を展開するのは大変なので, とりあえず (, ) から木を展開してみよう 03 0 ゲーム木の展開 必勝法を見つけるためには 必ずしも木を完全に展開する必要はない ある MX ノードに関して, 子ノードに少なくとも一つの WIN があれば, その MX ノードは WIN 他の子ノードは展開しなくても良い ある MIN ノードに関して, 子ノードに少なくとも一つ LOST があれば, その MIN ノードは LOST 他の子ノードは展開しなくて良い ゲーム木のサイズ チェッカー 0の30 乗 世界チャンピオン オセロ 0の60 乗 世界チャンピオン チェス 0の0 乗 世界チャンピオン 将棋 0 03 の0 年乗 級プロ棋士に勝利アマ 段! 囲碁 0の360 乗モンテカルロ碁が強い 06 アマ年アルファ碁が 級 チェッカーでも必勝法はまだ見つかっていないトッププロに勝利! 007 年に引き分けであることが証明された 0 06 例題 先手は, 後手は 上段か下段のどちらか片方の自分の駒を動かす. 左右どちらでも, いくつでも動かすことができるが, 相手の駒を飛び越すことはできない. 自分の番で動かせないと負け このゲームは先手必勝 / 後手必勝? ゲーム木が大きすぎる場合 普通のゲームでは, 端点まで木を展開するのは不可能 途中まで展開されたゲーム木で, どの手が良いかを選ぶ必要がある ( 一手, 二手, 三手先まで読む等 ) 3

ゲーム木の評価 (MIN-MX 法 ) 途中の状態に関して, その良さを評価する関数を作る ( 静的評価関数 ) 評価関数は数値を返す ( 大きいほうが良い ) チェス / 将棋 : 所有するコマの数 / 価値, 配置等 オセロ : コマの数, 位置 ( スミ, 端 ) ( ゲームが終了している訳ではない ) 端点の評価値を, 静的評価関数の値とする 他のノードの評価値を, 必勝法を決める方法と同様にして決める (MX ノードは最大値,MIN ノードは最小値 ) ルートの MX ノードで, 最大値を与える経路を選ぶ. 07 tic-tac-too ( 三目並べ ) で, まだ自分が取れる可能性のある列の数ー相手が取れる可能性のある列の数 静的評価関数の例 MIN - MX 6-= -=0 6-= -=0 -=- -6=- MIN 6-6=0 - MIN -= 6-= -6=- 6-6=0-6=- 08 09 0 MIM-MX 探索の高速化 分岐を b, 深さを d とすると,O(b d ) のノードを展開する しかし, 良く考えると, 深さ d までのすべてのノードを展開する必要は必ずしもない 高速化 (I) ノード に行ったら MX プレイヤの勝ち MIN プレイヤは に行く手は選ばない の他の子ノードは展開する必要はない 高速化 (II) に行くと,MIN プレイヤの勝ち MX プレイヤは に行くパスは選ばない の他の子ノードは展開する必要がない 高速化手法の一般化 ( アルファ ベータ探索 ) 各ノードの評価値の下界値 ( それ未満には絶対ならない値 ), 上界値 ( それより大きくは絶対ならない値 ) を管理する 下界値を α 値, 上界値を β 値と呼ぶ 親が MX, 子が MIN の場合 : 子ノードの評価値が親の下界値以下となることが分かったら, その子ノードに関する探索は打ち切って良い 親は MX, この子ノードは選ばれない 親が MIN, 子が MX の場合 : 子ノードの評価値が親の上界値以上になることが分かったら, 子ノードに関する探索は打ち切って良い 親は MIN, この子ノードは選ばれない

3 具体例 (β カット ) の評価値が であることが分かった時点で,MIN ノード に関して, αβ()=(-, ) の一つの子ノードの評価値が, よって, αβ()= (, ) > なので, に関する探索は打ち切ってよい 3 具体例 (α カット ) の評価値が であることが分かった時点で,MX ノード に関して, αβ()=(, ) の一つの子ノードの評価値が, よって, αβ()= (, ) < なので, に関する探索は打ち切ってよい 6 具体例 ( 深い β カット ) αβ()=(-, 3) であったとする 3 は の祖先から得られた情報 の最初の子供をチェックした時点でαβ()=(, 3) ここでに関する探索は打ち切られる 具体例 ( 深い α カット ) αβ()=(, + ) であったとする は の祖先から得られた情報 の最初の子供をチェックした時点で αβ()=(, ) ここで に関する探索は打ち切 られる 具体的なアルゴリズム 関数 Vmax(n, α,β) を定義する.n はノード,α,β はそれぞれ下界値, 上界値, この関数はノード n の評価値を返す. ルートの MX ノード r に関して, Vmax(r, -, + ) を実行すると n の評価値が得られる. 7 関数の ( 再帰的な ) 定義 Vmax(n, α,β). If n が端点 then return 静的評価関数の値 else set n k for each child n, n,..., n b. set α=max(α,vmin(n k, α,β)) 3. If α β,return β. If k=b, return α,otherwise, goto step. Vmin(n, α,β). If n が端点 then return 静的評価関数の値 else set n k for each child n, n,..., n b. set β=min(β,vmax(n k, α,β)) 3. If β α,return α. If k=b, return β,otherwise, goto step. 8

9 0 例題 : アルファ ベータ探索 アルファ ベータ探索で探索されるノードはどれか? 答え 8 7 9 6 9 8 7 9 6 9 アルファ ベータ探索の効果 ノードを展開する順序に依存する MXノードに関しては, なるべく大きな評価値となる子ノード,MINノードに関しては, なるべく小さな評価値となる子ノードから展開する方が良い 運が悪いと展開するノード数はミニマックス探索と同じ ( ぜんぜん枝刈りができない ) アルファ ベータ探索の効果 運が良ければ, 深さd, 分岐 bとして, 探索される端点の個数は MIN-MX: b d アルファ ベータ : b d/ - 効果は莫大であることに注意 b=として, = =6 8 =6 6 =636 3 =.9 0 9 6