prolog によるゲームプレイヤーのモデリング modeling game players by using prolog

42
The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003 1 Prolog ににににににににににににににににに Modeling game players by using Prolog にににに *1 Kenryo Indo *1 にににににににににに Faculty of Economics, Kanto Gakuen University

Upload: neva

Post on 19-Mar-2016

51 views

Category:

Documents


1 download

DESCRIPTION

Prolog によるゲームプレイヤーのモデリング Modeling game players by using Prolog. 犬童健良* 1 Kenryo Indo *1  関東学園大学経済学部 Faculty of Economics, Kanto Gakuen University. 1.ゲームプレイヤーのインテリジェンス. AI におけるゲーム研究. アート的ないし工学的アプローチ ボードゲームで勝てるプログラムの研究 エージェントによる交渉・入札など(分散 AI 。ビジネス産業への応用) 認知科学アプローチ - PowerPoint PPT Presentation

TRANSCRIPT

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

1

Prolog によるゲームプレイヤーのモデリングModeling game players by using Prolog

犬童健良 *1Kenryo Indo

*1  関東学園大学経済学部

Faculty of Economics, Kanto Gakuen University

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

2

1.ゲームプレイヤーのインテリジェンス

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

3

AI におけるゲーム研究• アート的ないし工学的アプローチ

– ボードゲームで勝てるプログラムの研究– エージェントによる交渉・入札など(分散 AI 。ビジネス産業への応用)

• 認知科学アプローチ– チューリングによる思考実験(「模倣ゲーム」を用いた知性認定)– 人間を楽しませるプログラム(知性とゲームのインタラクション)– 素朴な疑問:やる気が出る / 知性が発揮できるのは、どのようなゲームか?  知性とゲームの共変化

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

4ゲームプレイヤーのモデル• ゲーム理論で言うプレイヤーの(個人)合理性とは、その利得=期待効用 (expected utility) の最大化のことである。• また均衡点(解概念)を用いて、ゲームの結果を予測する。例えば、非協力ゲームにおけるナッシュの均衡点は、最適反応の組として定義される。• 一般にゲームの均衡点は一意ではないが、合理性が共通知識 (common knowledge) であると仮定すると、均衡を絞り込むための、いくつかの推論モデルが考えられる。 (=均衡リファインメントの研究。例えば固有均衡、部分ゲーム完全性、逐次均衡、最適反応批准可能性など)。• これらの研究では、共通知識自体は必ずしも明示的にモデリングされなかったが、その後、分散人工知能研究との交流もあり、確率論、論理学、計算論による定式化を通じ、ゲームプレイヤーの知識がモデリングされるようになった。• また、合理性や共通知識の仮定を緩和したさまざまな「限界合理性」の代替理論や心理学的実験(行動的ゲーム理論)およびその応用が研究されている。

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

5なぜゲームプレイヤーをモデル化したいのか• ゲームモデルと解概念が、ゲーム

プレイヤーの合理性と知識のモデルから演繹できるか、実験的に確かめたい。

• そのためには、プレイヤーの合理性( i.e., 最大化行動)や共通知識を明示的にモデリングする必要がある。

• またそれらの緩和( i.e., 限界合理性)のモデルの下でのゲーム理論の限界や拡張を考えたい。

• 従来、確率論や論理学による共通知識の定式化が用いられていたが、Prolog を使えば、より直接的にゲームプレイヤーの知識処理をシミュレーションできるのではないか。

ゲームモデル 解概念(均衡)

合理性と共通知識の論理モデル

最大化行動(合理性)

      ?

旧い語り口

ゲームの論理モデル

      ?

選択結果についての定理

      ?

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

6本研究の目的• 筆者が行った Prolog によるゲーム分析のモデリング事例のうち、いくつかを紹介したい.• 以降の内容:

– 第 2 節 • 標準形ゲーム(利得関数、ナッシュ均衡)、• 提携形ゲーム(特性関数、コア)• メカニズムデザイン(遂行理論)

– 第 3 節 • 展開形ゲーム(完全情報ゲームの木、部分ゲーム完全性)

– 第 4 節 • 共通知識・取引(不完全情報ゲーム、合理的期待と限界合理性)

– 第 5 節 まとめ– 参考文献

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

7ゲームプレイヤーのモデリング用途• ゲーム理論の基礎の探求と教育目的以外に、以下のような研究用途が考えられる。• マルチエージェントシミュレーション

– コンピュータシミュレーションによる限界合理性やメカニズムデザインの研究など• 限界合理性

– 合理性や共通知識の仮定を緩和し、探索的活動やデザイン活動を考慮したゲーム理論やメカニズムデザイン論の代替理論を研究。– 計算論による外部基準(計算複雑性)によって合理性の限界を規定・測定。– しかし実際の限界(例えば 4枚カード問題や連言誤謬)は、低い計算量で生じる。したがってそれだけでは、なぜ合理性に限界が生じるのか、またいつエージェントは合理的にふるまおうと意図するのかが分からない。

• 合理性の限界の内生的モデル(多重自己メンタルモデル)– 「心の社会」の解明は認知科学の目的。現実のメンタルモデルは、複数の構成要素の相互作用の結果である。

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

8合理性の限界の内生的モデル(多重自己メンタルモデル)• 「心の社会」の解明は認知科学の目的。現実のメンタルモデルは、複数の構成要素の相互作用である。• 知性は社会環境(ゲーム形式)に対して独立・安定していない。• 状況や意識する相手によって、同じ思考対象について、「意欲・関心」があったり、なくなったり。• こうした知性のボラティリティ(ないし知性と社会の共変化)に影響するゲーム形式ないしメカニズム(=語り口)を研究する。• すなわち、興味・関心という希少資源の配分問題を解く人工物のデザイン。

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

9

2.  行動水準でのゲームモデリング

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

10標準形ゲームとナッシュ均衡• 2人標準形ゲーム s1 の利得表を図1に示す.• 各プレイヤーがそれぞれ2つの純粋戦略を持つ同時手番のゲーム.• 図1中の*印は最適応答.• このゲームのナッシュ均衡は [1,1] と [1,0] の2つ.• いずれの均衡でも,プレイヤーが単独で自分自身の行動を変更する動機がない.

Payoff of Act of player 2 game s1 z w-------------------------------------------

---Act of x [1, 1] [-2, 0] player * * * 1 y [1, 0] [-1, -1] * * * -------------------------------------------

---図 1 .標準形ゲームの利得表

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

112.1  標準形ゲームの Prolog モデル• Prolog で上の例題とその純粋ナッシュ戦略均衡をモデリングしよう. ・ 標準形ゲームs1の Prolog モデル

game(s1, acts([x,z]), payoffs([1,1]) ).game(s1, acts([x,w]), payoffs([-2,0]) ).game(s1, acts([y,z]), payoffs([1,0]) ).game(s1, acts([y,w]), payoffs([-1,-1]) ).

• また図 1 の利得表の非対角部分を変更したゲームs2では, [-1,-1] が唯一の均衡となる.(囚人ジレンマゲーム)・ 標準形ゲームs2の Prolog モデルgame(s2, acts([x,z]), payoffs([1,1]) ).game(s2, acts([x,w]), payoffs([-2,2]) ).game(s2, acts([y,z]), payoffs([2,-2]) ).game(s2, acts([y,w]), payoffs([-1,-1]) ).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

12ナッシュ均衡の Prolog モデル・ ナッシュ均衡を求めるプログラムnash(G,[S1,S2],[P1,P2]):- game(G, acts([S1,S2]),payoffs([P1,P2]) ), \+ (game(G, acts([_,S2]),payoffs([Px,_])),Px>P1 ), \+ (game(G, acts([S1,_]),payoffs([_,Py])),Py>P2 ).

• 実行例?- nash(G,Acts,Payoff

s).

G = s1Acts = [x, z]Payoffs = [1, 1] ;

G = s1Acts = [y, z]Payoffs = [1, 0] ;

G = s2Acts = [y, w]Payoffs = [-1, -1] ;

No

標準形ゲームの

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

132.2  提携形ゲームの Prolog モデル• 提携形ゲーム,いわゆる協力ゲームは,プレイヤーの可能な

提携 (coalition) が生み出す共同利益を特徴関数として定義し,コア,仁,シャプレー値といった多彩な解概念を用い公平な分配案を探求する.一般均衡理論や社会選択理論でとくに重宝された.以下に 3 人提携形ゲームのモデリング事例を示す.

• 提携形ゲーム(特徴関数)の Prolog モデルgame(c1, coalition([ ]),common_value(0) ).game(c1, coalition([a]), common_value(0) ).game(c1, coalition([b]), common_value(0) ).game(c1, coalition([c]), common_value(0) ).game(c1, coalition([a,b]), common_value(1) ).game(c1, coalition([b,c]), common_value(1) ).game(c1, coalition([a,c]), common_value(1) ).game(c1, coalition([a,b,c]), common_value(1) ).

• ちなみにゲーム c1 は多数決投票を表す.プレイヤー集合は N= {a,b,c} であり,よって可能な提携 S N⊆ は 8 通りある.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

14配分の Prolog モデル• 配分 (imputation) は,

– 全体合理性:v( {1,2,3}) = x1+x2+x3 ,および– 個人合理性 :x1, x2, x3≧ v( {i} )=0の 2 条件を満たす共同利益分配案 (x1,x2,x3) の集合である.

• 配分imputation(game(G),payoff(A)):- game(G,form(coalitional),players(N)), game(G,coalition(N),value(V)), length(N,LN), allocation(LN,V,A), \+ ( nth1(K,N,J), nth1(K,A,AJ), game(G,coalition([J]),value(RJ)), RJ > AJ ).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

15コアの Prolog モデル• コア (core) は,どんな提携 S の下でも互いに支

配されない配分の集合であり,したがって誰も明らかな不満 (excess) を持たない.

• コアcore(game(G),payoff(A)):- game(G,form(coalitional),players(N)), imputation(game(G),payoff(A)), \+ ( game(G,coalition(S),value(RY)), S \= N, selected_sum(S/N,_B/A,AY), RY > AY ).

提携形ゲームの

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

16コアの配分の生成• 3 人優加法的提携形ゲームの非空コア存在の必要十分条件は2・v( {1,2,3})≧v( {1,2})+v( {2,3})+v( {1,3})  であることが知られている.ゲーム c1 は優加法的だから明らかに s1のコアは空である.また全員提携の値を 3/2 以上にすればコアが生じる.・ 実行例(全員提携 [a,b,c] の値が2のとき * )

?- core(A,B).

A = game(c1)B = payoff([1, 1, 0]) ;

A = game(c1)B = payoff([1, 0, 1]) ;

A = game(c1)B = payoff([0, 1, 1]) ;

No( *注)利得スケールを 100倍すれば 150 で初めて [50,50,50] が唯一のコア配分として出力される.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

172.3  社会的選択とメカニズムデザイン • 選好順序のみに基づく抽象的なゲームモデルもある.

– 社会的選択 (social choice) の環境• 社会の成員の集合• 社会の成員の可能な選好順序の集合,• 社会全体で決めるべき代替案の集合,および• 各選好組に対して定義された望ましい代替案集合(社会選択

規則; SCR )– 例えば「どの選好状態でもエージェント 1 とエージェント 2 の好

みは一致しないが,3つの代替案のうち c が最悪であることはつねに合意する」といった事実や社会選択規則を,以下のように表せる.• 選好順序

preference(agent(1),state(1),[a,b,c]).preference(agent(1),state(2),[b,a,c]).preference(agent(2),state(1),[b,a,c]).preference(agent(2),state(2),[a,b,c]). • 社会選択規則scc(rule(f),state(1),[a]). scc(rule(f),state(2),[b]).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

18遂行理論の Prolog モデル• こうして定義された社会選択環境に対して,ゲームを通

じて SCR をエージェントたちに分権的に遂行させる問題は,メカニズムデザインないし遂行理論 (implementation theory) と呼ばれる.

• 入札や投票へのより具体的な応用も知られるが,より一般的には, SCR を遂行するというのは均衡集合と SCRを一致させることである.その必要十分条件や遂行用のメカニズムの一般形、および任意の SCR を遂行できる精密なメカニズム(仮想遂行の厳密化)などが研究された.

• なお上記の f は明らかに独裁的 SCR だが, f は上の選好に対し,それ以外に Maskin 単調性,制限的拒否権なし,弱パレート最適性などを満たすことが分かる.また f は Moore-Repullo の条件 μ2 を満し,ゆえにナッシュ遂行するゲームを実際に作成できる.

• 筆者の開発したプログラム (impl12.pl) [Indo 02] でこの SCR に対して、 Moore-Repullo のメカニズムを用い、正直遂行(正直報告での遂行)を確かめることができる(次のスライド) .

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

19正直遂行のシミュレーション例test_impl(gMR2, ai, [1, 2], truthful(0), _G445)start ---------------------[date(2003/5/4), time(16:51:22)]Testing Nash implementability via prolog simulation

**** the model specification ******

game form: gMR2members of society: [1, 2]

Scc: ai(s1) = [a] ai(s2) = [b] is Maskin-monotone.is Essentially-monotone.does not have Moore-Repullo property (defined by Danilov).is not individually-rational.

preferene domain: [agent, state, preference, difference] [1, s1, [a, b, c], [w, w, end]] [2, s1, [b, a, c], [w, w, end]] [1, s2, [b, a, c], [w, w, end]] [2, s2, [a, b, c], [w, w, end]]

other tests for this model[mm, em, -, -, -, -, rvp, unan, po, -, dict, neli, mlib, -, mju1, mju2, mju3, mju4]checking the on-SCC patterns:[s1, a][s2, b]

For state s1,outcome=a [in, ai], rule=1message profile is [[a, b, c], [b, a, c]], a, a, 0, 0 [[a, b, c], [b, a, c]], a, a, 0, 0

agent=1,Pzs=[1, 2, 3],Czs=[a, b, c],Lcc=[a, b, c] <is_best_response> agent=2,Pzs=[1, 2, 4],Czs=[a, c],Lcc=[a, c] <is_best_response> Br_Members=[1, 2]

This action profile is a Nash equilibrium.

For state s2,outcome=b [in, ai], rule=1message profile is [[b, a, c], [a, b, c]], b, a, 0, 0 [[b, a, c], [a, b, c]], b, a, 0, 0

agent=1,Pzs=[1, 2, 3],Czs=[a, b, c],Lcc=[a, b, c] <is_best_response> agent=2,Pzs=[1, 2, 4],Czs=[b, c],Lcc=[b, c] <is_best_response> Br_Members=[1, 2]

This action profile is a Nash equilibrium.

checking the off-SCC patterns:[s1, b][s1, c][s2, a][s2, c]

end <-----------------------[date(2003/5/4), time(16:51:46)]Summary Result[s1, a, nash_yes, scc_in][s1, b, nash_no, scc_out][s1, c, nash_no, scc_out][s2, a, nash_no, scc_out][s2, b, nash_yes, scc_in][s2, c, nash_no, scc_out]

Statisticscputime= [21.8214, increased from, 1.01145]inferences= [21724757, increased from, 768134]atoms= [0, increased from, 3276]functors= [0, increased from, 1931]predicates= [0, increased from, 1844]modules= [0, increased from, 26]codes= [628, increased from, 68159]

遂行理論の

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

20

3.ゲーム木における情報モデリング

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

21展開形ゲーム• 展開形ゲームでは,プレイヤーの手番の順序と情報をゲームの木で表す.• 各枝は,各プレイで選択された行動に対応する.• ノード集合は,プレイヤーの識別できる情報構造に分割される.• 例えば,図 2 のゲーム木には, 3 つの情報集合と 2 つの部分ゲームがある.

b1 b2 [h1]-------->[h2]-------->[0.5,0] | | a1 |      a2 | |[h3] V V [-0.5,-1] [0,2]

a1->a2; a1->b2; a1->a2; a1->b2; b1->a2 b1->a2 b1->b2 b1-

>b2---------------------------------------------- a1 [ 0, 2] [ 0, 2] [ 0, 2] [ 0, 2] * * * * * * b1 [-0.5,-1] [-0.5, -1] [0.5, 0] [0.5, 0] * * * *----------------------------------------------図 2.展開形のゲーム木とその行動戦略の利得表

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

22行動戦略• 両プレイヤーはともに 2種類の行動から 1つを選ぶが,後手は先手の行動を観察できるので,行動戦略 (behavior strategy) は 4種類ある.• これを標準形に変換すると図 2 の下の利得表となり,4つの均衡を得る.• 実際にプレイされるのは [a1,a2] あるいは

[b1,b2] のうちいずれかの行動ペアであり,それゆえ行動ルールの一部は実際に使われない反事実的条件文 (counterfactuals) となる.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

23展開形ゲームを解く Prolog モデル• 以下は筆者のプログラム (nash1c.pl) を用いて,行動戦略における NEや SPE を求めた結果である.ただし、木生成用の別のプログラムを用いてゲーム木を表している。・ 行動戦略の標準形ゲームに翻訳したときの均衡

?- nash(behavior_strategy(g50(weak)),Players,A,P), Players=[1,2].

A = [a1, [ (a1->a2), (b1->a2)]]P = [0, 2] ;

A = [b1, [ (a1->a2), (b1->b2)]]P = [0.5, 0] ;

A = [a1, [ (a1->b2), (b1->a2)]]P = [0, 2] ;

A = [b1, [ (a1->b2), (b1->b2)]]P = [0.5, 0] ;

No

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

243.1 部分ゲーム完全均衡• 完全情報ゲームとはすべての情報集合が単一要素

集合,つまりプレイヤーがいつでも自分の手番のノードを識別できる場合である.そうでない場合は不完全情報ゲームと呼ばれる.ただし不完全情報でも通常,一度通った経路は覚えているという完全想起 (perfect recall) が仮定される.

• 部分ゲーム完全均衡 (subgame perfect equilibrium; SPE) は R. Selten によって導入された. SPE はどの部分ゲームでも最適反応である行動戦略である.ただし部分ゲームとは,各情報集合以降のプレイが,他の部分ゲームと交差せず,一つのゲームの木になっているものとする.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

25

3.2  後向き帰納推論• 後向き帰納推論 (backward induction) を図 2 の木に対して適用すると、後手は情報集合 [h2] 以降の部分ゲーム,つまり先手のプレイ b1 を観察後, b2だけが最適反応である.また先手が

a1 をプレイすれば,後手はどう選んでも最適反応である.先手はこれを知っているから,b 1 が最適であると結論する.• こうして [b1,b2] のみが合理的な解として残る。すべての葉から上のような後向き推論を施せば,部分ゲーム完全均衡に一致する. b1 b2 ->[h1]------->[h2]-------

>(0.5,0) | |

a1 |      a2|

| |

V V

(0,2) (-0.5,-1)

b1 b2 ->[h1]------>

(0.5,0) |a1 |      | V (0,2) -> b1,b2

(0.5,0)

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

26部分ゲーム完全性の Prolog モデル• 最初の 2 つの均衡の部分ゲーム完全性を検証する

?- subgame_perfect(g50(weak), Players,A,P), Players=[1,2].trial([0, 2], [a1, a2], [a1, [ (a1->a2), (b1->a2)]]) subgame(player:1/[1, 0], [a1, [ (a1->a2), (b1->a2)]], [0, 2])ne subgame(player:2/[0, 2], [a1, [ (a1->a2), (b1->a2)]], [0, 2])ne subgame(player:2/[0, 2], [b1, [ (a1->a2), (b1->a2)]], [0.5-1, -1]) defeated_by([[b1, [ (a1->a2), (b1->b2)]], [0.5, 0]])trial([0.5, 0], [b1, b2], [b1, [ (a1->a2), (b1->b2)]]) subgame(player:1/[1, 0], [b1, [ (a1->a2), (b1->b2)]], [0.5, 0])ne subgame(player:2/[0, 2], [a1, [ (a1->a2), (b1->b2)]], [0, 2])ne subgame(player:2/[0, 2], [b1, [ (a1->a2), (b1->b2)]], [0.5, 0])neA = acts([b1, [ (a1->a2), (b1->b2)]])P = payoffs([0.5, 0])  Yes

展開形ゲーム(完全情報)の

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

27

4.  知識水準でのゲームモデリング

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

28共通知識の研究• 合意定理

– Aumann[Aumann 76] は,共通知識 (common knowledge) を初めて定式化し,不一致に合意しえないという直観をきちんと証明した.

• 投機定理(無取引結果)– Milgrom と Stokey は Aumann の結果を不完全情報下の取引ゲーム

に一般化し,合理的取引の不可能性の結果を示した.– またこの結果は各自のペイオフが、シグナルの単調変換である場

合の0和ゲームとその合理化可能戦略均衡に一般化できる(戦略的補完性の議論の応用)。

• 取引者のモデリング– 以下では Milgrom と Stokey[Milgrom 82] の例に沿って, 3種類の知

識水準での取引者とその推論を Prolog によってモデリングする.– 共通知識研究の文脈も含めたゲーム理論の入門書として、 [Fudenb

erg 91] が便利だろう。より手ごろな入門書で和書では例えば [Muto 01] がある。 [Imai 01] は進化ゲームなど最近の動向の紹介。

– また筆者のプログラム (trade.pl) と関連するレビュー記事 [Indo 03]も参照.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

29共通知識の研究(2):後方帰納• Aumann(1995 GEB 8: 6-19)

– 完全情報ゲームにおいて、ゲーム開始時点で、各プレイヤーの「合理性」を共通知識と仮定すると、論理的証明能力を持つプレイヤーは後方帰納解(バックワードインダクション解)を推論できる。• Aumann(1998 GEB 23: 97-105)

– 上の結果は、プレイヤーの合理性が反事実的条件文の意味でモデリングされている必要がある。すなわち、プレイヤーが到達しないと知っているノードにおいても期待効用最大化を仮定している。– 上の仮定を緩和し、実質含意の意味での合理性(つまり実際に到達するノードでの最大化行動のみ)を仮定した場合、上記の結果は覆る。ただし、ローゼンタールのムカデゲームなど特殊ケースでは、実質含意のモデリングでも、後方帰納解が導かれる。

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

304.1 不完全情報と取引のモデリング• 状態の有限集合 Ω ,事象の集合 2Ω ,取引者の集合を N={1,2} とする.• 各プレイヤー i の情報構造 Hi は, Ω の非空部分集合すなわち情報集合を値と

する状態 s Ω∈ の関数 Hi(s) Ω⊆ , φ≠Hi(s) として定義される.

Players \ state Partition \ s1 s2   s3 s4 s5 ---------------------------------------------------- H1 a b b c c H2 x x y y z----------------------------------------------------

図 3 .パーティション情報構造の例 (Milgrom and Stokey,1982)

• 図 3 は Milgrom と Stokey の例題における取引者の情報構造を表す.この例題のように,各プレイヤーの情報構造が Ω のパーティションである場合をパーティション情報構造という. Prolog では例えば次のように書ける.

• 情報構造partition(1,s1,[s1]).partition(1,S,[s2,s3]):-member(S,[s2,s3]).partition(1,S,[s4,s5]):-member(S,[s4,s5]).partition(2,S,[s1,s2]):-member(S,[s1,s2]).partition(2,S,[s3,s4]):-member(S,[s3,s4]).partition(2,s5,[s5]).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

31相互知識の推論• 状態 s における各取引者の知識は K(s)E⇔Hi(s) E⊆ ,また• 共通知識は CK(s)E⇔M(s)= s E Hi(s) ( i N)∪ ∈ ∀∈ , M(s) E⊆ .• つまり共通知識は共通部分を有する情報集合の合併操作の収束先であ

る M(s) の下での知識である.またこれはプレイヤーが互いに可能と考えうる状態を列挙することに等しい.図 3 の情報構造で M(s) はつねに Ω に達する.

• 相互推論think(J,S,is_possible(O)):- partition(J,S,H), member(O,H).think(J,S,K):- K = think(_J1,O,_O1),think(J,S,is_possible(O)),K.test_think(S,S1,X):- X=[S1,S2,S3,S4,S5,S6], think(1, S1, think(2, S2, think(1, S3, think(2, S4, think(1, S5, think(2, S6, is_possible(S) ) ) ) ) ) ).

実行例?- test_think(s5,s1,C).C = [s1, s1, s2, s3, s4, s5]Yes

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

32

4.2  取引者のモデリング• 図 3 の情報構造を仮定し, 2名の取引者が交代手番で取引意向を表明

する過程をシミュレーションする.取引が行われた場合の各取引者の勝率などは図 4 のようであるとする.

State p(w1) p(w2) p(w2|s)    --------------------------------------------     s1     .20      .05      1/5     s2     .05      .15      3/4     s3     .05      .05      1/2     s4     .15      .05      1/4     s5     .05      .20      4/5    ---------------------------------------------

• 図 4 .取引ゲームの勝率 (Milgrom and Stokey,1982)

• 取引が成立するためには,任意の時点以降,両者の意向がつねに一致しなければならない.合理的な取引者は自分のパーティションから,相手のパーティションや相手が想像する自分のパーティションについて推理する.ただし各取引者は自分の勝率が 1/2 を越えないと取引しようとしないものとする.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

33モデル1:素朴な取引者% model of trader (1) --- naive expectation% ------------------------------------------------- %trader(naive,J,S,Q,D):- partition(J,S,H), win_prob_on_event(J,H, Q), decision(Q,D).decision(Q, ok):- Q > 0.5.decision(Q, reject):- Q < 0.5.decision(Q, indifferent):- Q = 0.5.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

34モデル2:浅読みの取引者% model of trader (2) --- 2nd order expectation% with a sort of certainty reasoning % ------------------------------------------------- %trader(sophist,J,S,Q,reject):- trader(naive,J,S,Q,reject); trader(naive,J,S,Q,indifferent).trader(sophist,J,S,Q,ok):- trader(naive,J,S,Q,ok), partition(J,S,H), \+ ( member(S1,H), agent(J1), J1 \= J, trader(naive,J1,S1,_Q1,reject)).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

35モデル3:合理的期待% model of trader (3) --- % expectation under common knowledge of rationality % ------------------------------------------------- %trader(rational,J,(T,S),Q,D):- state(S), time(T/N), T > 0, agent(J), move(J,T/N,yes), delay(T,1,T1), %T1 is T - 1, partition(J,T1/N,S,H), win_prob_on_event(J,H, Q), decision(Q,D).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

36観察• 最初の 2 タイプの取引者は静的パーティションである.• 合理的な取引者 ( モデル 3) は,各時点で相手からの取引の申し出の可能性を再推論し,不可能な状態を削除することにより,動的にパーティションを(またそれゆえに共通知識を)更新する.• シミュレーションによって,理論どおり,モデル 3 の取引者はどの状態でも取引に応じないことが,確かめられる.• 一方,過渡的には合理的に期待するエージェントでも合意するケースがあることが分かった.• また例題の情報構造を非パーティションに変更することにより,取引発生を確認できた( [Indo 03] ).

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

37取引交渉のモデリング:情報と知識の更新/* dynamic knowledge updated by messages */%-----------------------------------------------partition(J,T/N,S,H):- time(T/N), partition(J,S,H1), remove_impossible_states(J,T/N,S,H1,H).%know(J,T/N,S,E):- time(T/N), agent(J), state(S), partition(J,T/N,S,H), % remove_impossible_states(J,T/N,S,E,H), (length(H,1)->E=H;true), event(E), subset(H,E).%remove_impossible_states(J,T/N,S,E,H):- time(T/N), agent(J), state(S), event(E), findall(X, think(J,T/N,S,is_impossible(X)), D), subtract(E,D,F), sort(F,H).

think(J,T/N,S,is_impossible(O)):- agent(J), time(T/N), state(S), state(O), \+ think(J,T/N,S,is_possible(O)).%think(J,0/N,S,is_possible(O)):- time(0/N), think(J,S,is_possible(O)).think(J,T/N,S,is_possible(O)):- time(T/N), T \= 0, %T1 is T - 1, delay(T,1,T1), think(J,T1/N,S,is_possible(O)), is_consistent_with_information(T,S,O).

/* the supporting evidence of state */%-----------------------------------------------is_consistent_with_information(T,S,O):- time(T/_N), state(S), state(O), agent(J), trader(rational,J,(T,S),_Q,D), % real. trader(rational,J,(T,O),_Q1,D). % expected.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

38Prologによる取引シミュレーション(1)•  ホームページに掲載した Prolog プログラム trade.pl は, Milgrom

と Stokey の例題における相互知識推論と意思決定をシミュレートする.これは基本的に帽子パズルと同じアルゴリズムによって再現される.以下にその実行画面の一部を示す.

?- trader(naive,J,s3,Q,D).

J = 1Q = 0.666667D = ok ;

J = 2Q = 0.666667D = ok ;

No?- trader(sophist,J,s3,Q,D).

J = 1Q = 0.666667D = ok ;

J = 2Q = 0.666667D = ok ;

No

?- trader(rational,J,(T,s3),Q,D).

J = 1T = 1Q = 0.666667D = ok ;

J = 2T = 2Q = 0.666667D = ok ;

J = 1T = 3Q = 0.5D = indifferent ;

J = 2T = 4Q = 0.5D = indifferent ;

J = 1T = 5Q = 0.5D = indifferent ;

J = 2T = 6Q = 0.5D = indifferent

Yes

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

39Prologによる取引シミュレーション(2)•  状態s4では元のパーティションの場合,シミュレーション結果を見ると,確かに最初は1も仮の合意をしているが,2の返答を聞いた後,やはり翻意して拒絶する.

?- trader(rational,J,(T,s4),Q,D).

J = 1T = 1Q = 0.555556D = ok ;

J = 2T = 2Q = 0.666667D = ok ;

J = 1T = 3Q = 0.25D = reject ;

( Continued)

J = 2T = 4Q = 0.75D = ok ;

J = 1T = 5Q = 0.25D = reject ;

J = 2T = 6Q = 0.75D = ok

Yes

≫Milgrom & Stokey の No Trade Result の検証

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

40取引シミュレーション (非パーティション )• プログラム trade.pl で,エージェントのパーティションの部分を次のように変更した後,s4で

trader/5 を実行すると,取引への合意が達成される.• また他のいずれの状態においても,合意が成立する. • 非パーティション情報構造のモデル

partition(1,s1,[s1,s2,s3,s5]). partition(1,S,[s2,s3]):-member(S,

[s2,s3]). partition(1,s4,[s4,s5]). partition(1,s5,

[s5]). partition(2,s1,[s1]). partition(2,s2,

[s1,s2]). partition(2,S,[s3,s4]):-member(S,

[s3,s4]). partition(2,s5,[s1,s3,s4,s5]).

?- trader(rational,J,(T,s4),Q,D). J = 1 T = 1 Q = 0.555556 D = ok ;

J = 2 T = 2 Q = 0.666667 D = ok ;

J = 1 T = 3 Q = 0.555556 D = ok ;

J = 2 T = 4 Q = 0.666667 D = ok ;

J = 1 T = 5 Q = 0.555556 D = ok ;

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

41おわりに• Prolog は定理自動証明研究から派生したプログラミング言語であり,期待どおり,比較的簡単な各種のゲーム分析とプレイヤーの推論を表せた.ゲーム木の扱いなどになお改良の余地があるが,今後,ゲームデザインとインテリジェンスの関係を理解するために役立てたい.

The 17th Annual Conference of the Japanese Society for Artificial Intelligence, 25-27, June 2003

42参考文献• [Aumann 76] Aumann, R. J.: Agreeing to disagree, Annals of

Statistics 4: 1236-1239 (1976).• [Fudenberg 91] Fudenberg, D. and J. Tirole: Game Theory ,

MIT press (1991).• [Imai 01] 今井晴雄 岡田章・ : ゲーム理論の新展開,勁草書房 (2001).

• [Indo 02] Indo, K.: Implementing Nash implementation theory with Prolog: A logic programming approach, 第 6回実験経済学コンファレンス予稿 (2002)

• [Indo 03] Indo, K.: Common knowledge , mimeo (2003), http://www.us.kanto-gakuen.ac.jp/indo/kw/ck03b.html.

• [Milgrom 82] Milgrom, P. and N. Stokey: Information, trade and common knowledge, Journal of Economic Theory 26: 17-27 (1982).

• [Muto 01] 武藤滋夫 : ゲーム理論入門,日経文庫 (2001).