430 likes | 498 Views
ゲーム理論:パソコンによるシミュレーションを用いた入門. Dec 2003. revised: 31 Dec 2003. ゲームの分類. ある哲学者は、「ゲーム」という言葉に共通する意味はないと指摘した。家族のように、互いに似てはいるが、家族であるという以外に共通点はない。これを家族的類似という。 しかし数学者は次のような特徴を、ありふれたゲームの種類からとりだした。それはむしろボードゲームやコンピュータゲームではなく、企業の市場戦略や社会のしくみにあてはまる。 ゲームフォーム:戦略形、展開形、反復、提携形など
E N D
ゲーム理論:パソコンによるシミュレーションを用いた入門ゲーム理論:パソコンによるシミュレーションを用いた入門 Dec 2003. revised: 31 Dec 2003.
ゲームの分類 • ある哲学者は、「ゲーム」という言葉に共通する意味はないと指摘した。家族のように、互いに似てはいるが、家族であるという以外に共通点はない。これを家族的類似という。 • しかし数学者は次のような特徴を、ありふれたゲームの種類からとりだした。それはむしろボードゲームやコンピュータゲームではなく、企業の市場戦略や社会のしくみにあてはまる。 • ゲームフォーム:戦略形、展開形、反復、提携形など • 以下では戦略形ゲーム(あるいは標準形ゲーム)にしぼって説明する。ゲームの参加者(プレイヤー)、各参加者のとりうる行動、およびゲームの結果、すなわちすべての参加者がとる行動の組に対してどのような利得(ないし費用)がそれぞれの参加者において発生するか。 さらに進んだゲーム分析では、手番の順序、それによって発生する情報、他のプレイヤーのふるまいや情報にかんする信念などが導入される。
例。じゃんけん • プレイヤー:任意のN人。ただし、同時にプレイすることができるのは、事実上2人から5、6人くらいまでであろう。 • プレイヤーの(純粋)戦略:石とハサミと紙。 • ゲームの結果と利得:どのプレイヤーも勝ち負け引き分けのいずれかの状態をとる。ただし、勝ち負けのルールにしたがう。また、たとえば勝ちが1点、負けが-1点、引き分け0点として利得を定義する。 • 手番についてのルール:同時手番。つまり戦略形ゲーム。 • 勝ち負けのルール:石はハサミより強く、紙は石より強く、ハサミは紙より強い。全員が同じ戦略か、あるいは最も強い戦略を使ったプレイヤーがいなければ引き分け。 • ナッシュ均衡:明らかに、つねに一番強い純粋戦略もまた純粋戦略ナッシュ均衡もない。ただし、ランダム戦略では各人すべての戦略を等確率1/3で出すのが、混合均衡になる。
ゲームの戦略と均衡点 • もちろんゲーム理論はゲームそのものを定式化するだけではない。ゲームを定式化したら、その結果を予測することになる。これをゲームの解とか、ゲームの均衡という。 • ゲームの解はゲームの種類によっていろいろ使い分けされている。大きく分けると、非協力ゲーム理論におけるナッシュ均衡と、協力ゲームにおけるコア、仁、シャプレー値などである。 • ナッシュ均衡は、 (テキストに出ている)0和ゲームにおけるミニマックス解の一般化である。またランダム化された戦略を使える場合に、混合戦略均衡ないし混合均衡と呼ばれる。 フォン・ノイマンらによるミニマックス均衡の存在証明やJ. ナッシュによる有限ゲームでのナッシュ均衡(混合均衡)の存在証明は、この分野の初期の成果である。
ナッシュ均衡 • 最適反応戦略の組によって定義される。 • ナッシュ均衡はN人非ゼロ和利得の場合、つまり各プレイヤーにそれぞれ別の利得表がある場合にも使える。 • ゼロ和ゲームのミニマックス均衡は、(純粋戦略の)ナッシュ均衡と一致する。 • 練習問題:適当な2人ゼロ和ゲームを選び、これを確認しなさい。
2人2戦略の非協力ゲームの例 • 「男女のいさかい」は2つのナッシュ均衡があるが、お互いうまく協調できるかどうかは分からない。右図のケースでは混合均衡は50%-50%ではなく、1/3-2/3となる。つまり両者とも3回中2回は自分の好む均衡が実現する可能性に賭け、残りは相手の側に譲る。このとき両者とも期待利得は2/3である。 • 利得がともに1,0,0,1 の場合を、協調ゲームという。混合均衡は50%-50%となる。(a,0,0,bに一般化したときの均衡はどうなるか?) • 「チキン」(弱虫)はやはり2つのナッシュ均衡がある男女のいさかいタイプのゲームだが、一方が譲らなかった場合の損失は甚大な場合の変種と考えてよい。またこうしたゲームでは信号(相関戦略)をうまく使うと混合均衡よりもよい結果が得られることがある。 • 「囚人ジレンマ」はフラッド&ドレッシャーの実験をランド研究所のタッカーが紹介して以来、この分野の文献をにぎわせてきた。このゲームには両者の裏切りという均衡しかない。 • なおアクセルロッドらは、コンピュータプログラムを使って、前回の相手の行動を真似る「お返し」プログラム(Tit For Tat)がトーナメント実験でよい成績を収めたと報告してまた話題になった。 男女のいさかい 囚人ジレンマ
定和ゲームの例題 ←各列で最大値を選ぶ ←各行で最大値を選ぶ 土田(2001)の0和ゲームの例題。A1-B3がミニマックス均衡、かつ純粋戦略ナッシュ均衡である。相手の最適反応を仮定することにより、保証水準を考えた慎重な行動を導く。
クルーノーの複占モデルにおけるナッシュ均衡クルーノーの複占モデルにおけるナッシュ均衡 図は最大需要a=100, 変動費用c=10としたとき、A社とB社の最適反応戦略を表す。 これはエクセルによってクルーノーモデルを簡易シミュレーションした結果をグラフ化したものである。 ただし戦略x,yはそれぞれ0から100まで10単位ずつに区切った。ぎざぎざはそのため。
混合戦略のナッシュ均衡 • 各プレイヤーが各自の純粋戦略をミックス(ランダム化)して使える場合、各プレイヤーの使う混合戦略はその純粋戦略の確率分布となる。 • 混合戦略のナッシュ均衡は、定義どおり、誰も自分だけ確率を変えても、自分自身の利得が増えない状態である。 • 純粋戦略での均衡がないゲームを含めて、有限であれば、混合戦略の均衡は必ず存在する(ナッシュの定理)。
サドルポイント(鞍点)の例題 • 例題(土田, 2000)の0和ゲームにおける期待利得を計算し、グラフ化しよう。 • そのサドルポイント(鞍点)が混合戦略におけるゲームの均衡点である。
表による均衡の確認 • おおよその位置は前頁のグラフの元になっている表によっても確認できる。 • また均衡点(サドルポイント)の付近では、両者の期待利得はほとんど動かなくなることに注意せよ。 • なお、ワークシートで数式とその値の表示を切り替えるには、Ctrl キーと ` キー(シフトを押して@のキー)を押します。
数式による混合均衡の導出 • 例題のような簡単な場合は、テキストにも紹介されているように、初等的な方法で混合均衡を求めることができる。 • 以下では2次形式での期待利得からの別の解き方を示すが、 直接期待利得を求めてもよい。サドルポイントを求める段は、因数分解による初等的なもの。
練習問題 • 男女のいさかいゲームの混合均衡を求めなさい。
男女のいさかいの混合均衡の導出 • 例題にならって男女のいさかいゲームの混合均衡を求める。
ナッシュの写像の不動点 • ナッシュ論文で均衡の存在証明のために用いられた写像を使って、エクセル(fixpo03.xls)でサドルポイントの例題をシミュレーションしてみよう。 • この写像の不動点(そこにいったんたどりつくとその写像によって動かなくなる位置座標)が混合均衡である。 • 図によると、混合均衡は(4/7, 5/7)は中心よりやや右上の点であり、しばらくはまったく動かないので不動点のように思われる。ところが、やがてそこから渦状に遠ざかっていく。 • このように混合均衡は理論上はナッシュ写像の不動点のはずだが、シミュレーションではわずかの誤差によって不安定になり、軌道を外れてやがて外周のアトラクタに落ちていくことが観察される。 連続写像の不動点(ナッシュ均衡)を近似するアルゴリズムは1960年代にLemkeとHowsonによってはじめられた。後にScarfやMerrillによって、経済学の一般均衡の計算に応用された。
ナッシュ写像のシミュレーション サドルポイントの例題(定和ゲーム)の不動点から出発した連続写像のようすを図示する。最初の200期くらいまでは上の図のように6点のリミットサイクルのように見えるが、次第に軌道がずれて、3000期くらいまでには右図のような不変集合を描く。
ナッシュ写像の数式 • 例題のような2人各2純粋戦略のゲームにおいて、現在の混合戦略の組(p,q)とし、各プレイヤーについて次の計算をする。 • 現在の相手の確率を固定し、自分が純粋戦略を使ったと仮定したときの、それぞれの期待利得を求める。 • 現在の各人の期待利得と比べて、各純粋戦略への変更がどれだけ期待利得の増加をもたらすか調べ、マイナスなら0とする。→各人について、(c1,c2),(d1,d2)とする。 • 混合確率を次のように、写像Tによって更新する。 1の更新 p=(p, 1-p) ==> T(p)=((p+c1)/(1+c1+c2), (1-p+c2)/(1+c1+c2)) 2の更新 q=(q, 1-q) ==> T(q)=((q+d1)/(1+d1+d2), (1-q+d2)/(1+d1+d2)) • 練習問題: • 上の写像Tは、鞍点においては移動を起こさないことを証明せよ。
練習問題 • 例題の共通利益を変えても均衡は変わらないことを確かめなさい。 • 2人各2純粋戦略のゲームで、利得をいろいろ変えて実験し、写像の様子を観察して分かったことをまとめなさい。 • 男女のいさかいゲームの場合 • チキンゲームの場合 • 囚人ジレンマゲームの場合
協調ゲームの場合 • 協調ゲーム(コイン合わせ)の場合 • 50%--50%の混合均衡は不動点だ。 • 1/3—2/3から出発したナッシュ写像の軌跡は、混合均衡にかぎりなく近づき、しばし動かなくなるように見えるが、ひとたび軌道から外れると純粋戦略均衡1--1に向かって走り出す。 • 図ではレ点のような図柄になっている。ただし1—1の均衡点に近づくと、ブレーキがかかったようになる。
協調ゲームのナッシュ写像 • 左図は混合均衡点(1/2,1/2)から出発。不動点。長さは100. • 中央図は(1/3,2/3)から出発の長さ100の系列。不動点に至るが、わずかの誤差で軌道をはずれ、純粋戦略均衡(1,1)へ向かう。 • 右図。格子点(0.25刻み)からの出発(長さ10)。
コイン合わせのナッシュ写像 • 左図は混合均衡点(1/2,1/2)から出発。不動点。長さは100. • 中央図は(1/3,2/3)から出発の長さ100の系列。螺旋的に移動し、リミットサイクルに落ちる。 • 右図。格子点(0.25刻み)からの出発(長さ10)。
可解ゲーム:強い解 • 非協力ゲームの解(solution)は戦略が交換可能な均衡点の集合としてナッシュによって提唱された。すなわちどの均衡ペアのどのプレイヤーの戦略を交換してできる戦略組もまた均衡点である場合である。 • 図はナッシュが強い解としてあげた例(Ex. 4)。均衡集合は全点。効用の勾配がなく、どの点も写像に対して不動。 格子点からの数値実験
ナッシュ写像とゲームの可解性 • ナッシュが可解(solvable)ゲームとしてあげた例(Ex. 1)の一つ。均衡集合は内点の混合均衡(9/16, 7/17)のみ。しかしナッシュの写像の下で、やはり安定な不動点ではない。 • アトラクタは4点からなる不変集合(リミットサイクル)をなす。また軌道の図柄からもわかるように、これはコイン合わせゲームの変種である。 • このようにアトラクタは、ナッシュの写像のような近視眼的改善の反復(リプリケータダイナミクス)における頑健な解集合といえる。しかし利得の変更や使用する写像によって影響されやすい。 リミットサイクル 混合均衡を始点とする数値実験
ナッシュ写像とEWA学習 • EWA学習モデルを用いて、以下のゲームをシミュレーションしてみよう。EWAではパラメータの選択によって、いくつかのタイプの強化学習やフィクシシャスプレイ他の信念調整学習を使い分けできる。ここでは各純粋戦略の魅力度とそれに対応するロジット型の選択確率をEWA学習させ、モンテカルロ法で学習の様子をシミュレーションした。 ナッシュ写像:格子点からの数値実験 ナッシュ写像:点(1/3,2/3)および点(1/2,1/2)からの数値実験 EWA学習: (1/2,1/2)からの数値実験 累積強化学習(左)、平均強化学習(中)、信念調整学習(右)
クールノーモデルの動学化 • これまで見たようにナッシュ均衡は適切な連続写像の不動点として特徴けられる。 • 先に紹介したクールノーの寡占競争モデルは、ナッシュ均衡の先駆だったが、各企業の動学的な産出量調整が均衡に至るか否かという視点が含まれている。 • 近年、動学的システムにおける不安定軌道(カオス)の研究がさかんになり、クールノーゲームのN人の場合への一般化とその動学も注目されている。
Puu-Agizaのカオス • PuuやAgizaによって行われたクールノーモデルの動学化を表計算で再現してみよう。 • 図は、その不変集合やカオスの例を示したもの。
展開形ゲームと情報 • 展開形ゲームではこれまで見たような行列で利得が表されるゲーム(標準形あるいは戦略形ゲーム)とちがって、各プレイヤーがゲームの進行上、どのタイミングで、あるいはどういう順番で行動をするのかを、木の形で表します。 • また、同じゲームの木を使って、プレイヤーが各時点で持つ情報を表すことができます。不完全情報というのは、各プレイヤーが行動を起こすとき、自分がどこにいるかを識別できないことを指していいます。 • プレイヤーの戦略は、情報集合ごとに定義されるため、それゆえゲームは標準形のときよりも複雑なものになります。情報集合というのは、ゲームの木の中で自分が手番であるいくつかの節点(ノード)をまとめて、そう呼びます。プレイヤー自身は、その中のどこかにいるということだけが分かります。
不完備情報ゲーム • 参入・阻止ゲームは、独占企業が新規参入企業に対抗する不完全競争市場のゲーム理論モデルである。 • 独占企業(monopolist)が新規参入企業(entrant)の参入を黙認すると、シェアの一定割合を奪われる。一方これに対抗して価格値下げを行うと、両者の利潤が減る。 • ここでは基本なモデル例を示す。「強」と「弱」いずれかのタイプの参入企業が、一回かぎり参入可能である。次ページのようなゲームの木と利得で表す。このように「タイプ」というものを通じて、プレイヤーの間に不均等・非対称に情報が散らばっているゲームモデルは、Harsanyiによって詳しく研究された。 • もし独占企業が価格引下げを実施すると、両者の利得が参入企業の強さにしたがって相対的に変化する。しかし、実際にそうするまでは参入企業が果たして強いのか、弱いのかは見分けがつかないものとする。
参入・阻止ゲームの木 • 武藤(p.127)図4-3参照。葉は(独占企業の利得、参入企業の利得)を表す。利得から分かるように、ここでいう弱い参入企業は、価格切り下げで阻止したときにより大きな損失を受け、また共存してもシェアを食われる割合が小さい。 • いずれかのプレイヤーのタイプによって、ゲームの結果についての評価つまり利得が左右されるゲームでは、自分自身のタイプについては知っているものと仮定し、他のプレイヤーはゲームのプレイを通じてその情報を推理できるのみである。またどのタイプが実現されるかは、第3のプレイヤーとして自然を導入し、元のゲームに先立つ手番において、確率的に選ばれると仮定する。 阻止 (1, 1) 新企業 参入 共存 強 撤退 自然 独占企業 (0, 3) (5, 0) 0.5 阻止 弱 (1, -2) 参入 新企業 共存 0.5 撤退 (3, 2) (5, 0) 独占企業の情報集合。上下の2つのノードのうち、いずれかにいることは分かる。そこで確率的推定値(信念)を持つと仮定する。
完全情報だったとした場合のバックワードインダクション解完全情報だったとした場合のバックワードインダクション解 • もし参入社のタイプが後手の独占企業にも分かっている完全情報ゲームだったとするなら、そのバックワードインダクションは以下のような解を導くだろう。 阻止 (1, 1) 新企業 参入 共存 強 撤退 自然 独占企業 (0, 3) (5, 0) 0.5 阻止 弱 (1, -2) 参入 新企業 共存 0.5 撤退 (3, 2) (5, 0)
手番の順序を無視した場合の不動点 • 各タイプの部分ゲームにおいて手番順序を無視した、2種類の標準形ゲームを考える。2つの2人2×2戦略のゲームのナッシュ写像による位相図は以下のようになる。 (x, y) = (0, 1) および(x, 0), x≧0.5上の全点が不動点。 つまり撤退&半分以上の確率での阻止が脅しとして効く。 不動点は(1, 1)つまり参入&阻止のみ 弱い参入企業 の場合 強い参入企業 の場合
ベイズ完全均衡の導出手順 参入企業(Entrant) タイプごとの戦略を決める 最適戦略を選び、整合性をチェックする 各戦略の期待利得を計算する 独占企業(Monopolist) 観察された情報に基づき信念をアップデートする その情報集合における各戦略の期待利得を計算 最適戦略を選ぶ
Prologによる参入阻止ゲームのモデリング例:純粋戦略の場合Prologによる参入阻止ゲームのモデリング例:純粋戦略の場合 %===================================== % Two stage enter-deterance game %===================================== % descriptive modeling. player(entrant). player(monopolist). possible_type_of_entrant(weak). possible_type_of_entrant(tough). % decision rule of entrant which hypothesized by monopolist. strategy_of_entrant(T,exit,Q):- strategy_of_entrant(T,enter,P), Q is 1 - P. strategy_of_entrant(weak,enter,0). strategy_of_entrant(tough,enter,1). possible_strategy_of_entrant(weak,enter,P):-member(P,[0,1]). possible_strategy_of_entrant(tough,enter,P):-member(P,[0,1]). possible_strategy_of_monopolist(deter,P):-member(P,[0,1]). %===================================== % payoffs for pure strategy profile %===================================== payoff([_, _, _], nature, 0). payoff([tough, exit, coop], entrant, 0). payoff([tough, exit, deter], entrant, 0). payoff([tough, enter, coop], entrant, 3). payoff([tough, enter, deter], entrant, 1). payoff([tough, exit, coop], monopolist, 5). payoff([tough, exit, deter], monopolist, 5). payoff([tough, enter, coop], monopolist, 0). payoff([tough, enter, deter], monopolist, 1). payoff([weak, exit, coop], entrant, 0). payoff([weak, exit, deter], entrant, 0). payoff([weak, enter, coop], entrant, 2). payoff([weak, enter, deter], entrant, -2). payoff([weak, exit, coop], monopolist, 5). payoff([weak, exit, deter], monopolist, 5). payoff([weak, enter, coop], monopolist, 3). payoff([weak, enter, deter], monopolist, 1).
信念の更新:ベイズルール ?- updating_belief_of_monopolist(Update,Where,Data,Why). Update = 0.5->0=0/0.5 Where = at(upper_node:weak) Data = observing(enter) Why = reason(prob(0, for(weak)), prob(0.5, if_not)) ; Update = 0.5->1=0.5/0.5 Where = at(lower_node:tough) Data = observing(enter) Why = reason(prob(0.5, for(tough)), prob(0, if_not)) ; Update = 0.5->1=0.5/0.5 Where = at(upper_node:weak) Data = observing(exit) Why = reason(prob(0.5, for(weak)), prob(0, if_not)) ; Update = 0.5->0=0/0.5 Where = at(lower_node:tough) Data = observing(exit) Why = reason(prob(0, for(tough)), prob(0.5, if_not)) ; No ?- %===================================== % beliefs and the updating rule %===================================== prior_belief_of_monopolist(weak,0.5). prior_belief_of_monopolist(tough,Q):- prior_belief_of_monopolist(weak,P), Q is 1 - P. knowledge(upper_node->monopolist is weak). knowledge(lower_node->monopolist is tough). updating_belief_of_monopolist( P->(Q=B/B0), at(Node:T), observing(Enter), reason(prob(B,for(T)),prob(BN,if_not)) ):- strategy_of_entrant(T,Enter,S), knowledge(Node->monopolist is T), collect_probs_of_consistent_states(Enter,_,B0), prior_belief_of_monopolist(T,P), bayes_rule(B0,P,S,B,Q), BN is B0 - B. bayes_rule(B0,P,S,B,Q):- B0 > 0, B is P * S, Q is B / B0. bayes_rule(0,_,_,0.5,0.5). % posterior of measure-0 event. collect_probs_of_consistent_states(Enter,BL,B0):- findall(B1, ( strategy_of_entrant(T1,Enter,P1), prior_belief_of_monopolist(T1,S1), B1 is P1 * S1 ), BL), sum(BL,B0). 実行例
独占企業の合理的プレイ %================================ % rational choice for monopolist %================================ expected_utility_of_monopolist(if(T,Enter),deter(Q),utility(U=Ueq)):- payoff([T, Enter, deter], monopolist, Ud), payoff([T, Enter, coop], monopolist, Uc), possible_strategy_of_monopolist(deter,Q), W1 is integer(Q * 100), W2 is integer((1-Q) * 100), % to avoide nemerical error. Ueq = (W1 * Ud + W2 * Uc) /100, U is Ueq. expected_utility_of_monopolist(if(Enter),belief(weak:P),deter(Q),utility(U=Ueq)):- updating_belief_of_monopolist(_->(P=_),at(_:weak),observing(Enter),_), expected_utility_of_monopolist(if(weak,Enter),deter(Q),utility(_=Uw/100)), expected_utility_of_monopolist(if(tough,Enter),deter(Q),utility(_=Ut/100)), K1 is P * 100, K2 is 100 - K1, Ueq = (K1 * Uw + K2 * Ut)/10000, U is Ueq. rational_choice_of_monopolist(if(Enter),belief(weak:P),deter(Q),utility(U)):- member(Enter,[exit, enter]), EU=expected_utility_of_monopolist(if(Enter),belief(weak:P),deter(Q),utility(U=_)), max(U,EU). ?- rational_choice_of_monopolist(E,B,D,U). E = if(exit) B = belief(weak, 1) D = deter(0) U = utility(5) ; E = if(exit) B = belief(weak, 1) D = deter(1) U = utility(5) ; E = if(enter) B = belief(weak, 0) D = deter(1) U = utility(1) ; No ?- 実行例
参入企業の合理的プレイ ?- rational_choice_of_entrant(A,B,C). A = weak, enter(0) B = assess([if(enter, belief(weak:0), deter(1)), if(exit, belief(weak:1), deter(0))]) C = utility(0= (0* (100* -2+0*2)+100* (0*0+100*0))/10000) ; A = weak, enter(0) B = assess([if(enter, belief(weak:0), deter(1)), if(exit, belief(weak:1), deter(1))]) C = utility(0= (0* (100* -2+0*2)+100* (100*0+0*0))/10000) ; A = tough, enter(1) B = assess([if(enter, belief(weak:0), deter(1)), if(exit, belief(weak:1), deter(0))]) C = utility(1= (100* (100*1+0*3)+0* (0*0+100*0))/10000) ; A = tough, enter(1) B = assess([if(enter, belief(weak:0), deter(1)), if(exit, belief(weak:1), deter(1))]) C = utility(1= (100* (100*1+0*3)+0* (100*0+0*0))/10000) ; No ?- %================================ % rational choice for entrant %================================ expected_utility_of_entrant((T,Enter),if(belief(weak:P),deter(Q)),utility(U=Ueq)):- rational_choice_of_monopolist(if(Enter),belief(weak:P),deter(Q),utility(_)), payoff([T, Enter, deter], entrant, Ud), payoff([T, Enter, coop], entrant, Uc), W1 is integer(Q * 100), % to avoide nemerical error. W2 is integer((1-Q) * 100), Ueq = (W1 * Ud + W2 * Uc) /100, U is Ueq. expected_utility_of_entrant((T,enter(P)),assess(ASSESS),utility(U=Ueq)):- expected_utility_of_entrant((T,enter),if(Be,De),utility(_=Ue/100)), expected_utility_of_entrant((T,exit),if(Bx,Dx),utility(_=Ux/100)), ASSESS=[if(enter,Be,De),if(exit,Bx,Dx)], possible_strategy_of_entrant(T,enter,P), W1 is integer(P * 100), % to avoide nemerical error. W2 is integer((1-P) * 100), Ueq = (W1 * Ue + W2 * Ux) /10000, U is Ueq. rational_choice_of_entrant((T,enter(P)),assess(ASSESS),utility(U=Ueq)):- possible_type_of_entrant(T), EU=expected_utility_of_entrant((T,enter(P)),assess(ASSESS),utility(U=Ueq)), max(U,EU). 実行例
完全ベイズ均衡の自動検証 • 以上の合理的ゲームプレイモデルの結果の整合性をテストするルーチンconsistency_test/0を作成した。図はこれを実行した後、記録された検査データconsistency/4に基づき再表示したもの。 • 仮説としての参入者の戦略(hypo)と、合理的な参入確率(best)がつねに一致しているのが、完全ベイズ均衡(PBE)である。ここではいずれのタイプも参入し、阻止されない場合(一括均衡)と、強い方だけ参入するのでそれと推論され、阻止される場合(分離均衡)の2つがある。 • なおプログラム全体はgbayes01.plとしてホームページに公開している。(http://www.us.kanto-gakuen.ac.jp/indo/kenkyu.html) ?- consistency_test. (…) Yes ?- display_consistency_results(all). strategy_of_entrant(weak, enter, 0) strategy_of_entrant(tough, enter, 0) consistency(no), (weak, enter(hypo:0, best:1)), if(enter, belief(weak:0.5), deter(0)) consistency(no), (tough, enter(hypo:0, best:1)), if(enter, belief(weak:0.5), deter(0)) strategy_of_entrant(weak, enter, 0) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(1)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0), deter(1)) strategy_of_entrant(weak, enter, 1) strategy_of_entrant(tough, enter, 0) consistency(yes), (weak, enter(hypo:1, best:1)), if(enter, belief(weak:1), deter(0)) consistency(no), (tough, enter(hypo:0, best:1)), if(enter, belief(weak:1), deter(0)) strategy_of_entrant(weak, enter, 1) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:1, best:1)), if(enter, belief(weak:0.5), deter(0)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0.5), deter(0)) Yes ?-
偽の評判:数値実験から分かること • この参入阻止ゲームでは、独占企業の初期信念(prior)において弱タイプの参入企業の確率は0.5に設定されていた。これは述語prior_belief_of_monopolist(weak,0.5). によってモデル化されている。 • 純粋戦略のみの場合、第2引数を適当に変えて実験結果を見ると、次のことが確かめられる。 • 弱タイプの初期信念が1/3以下のときに一括均衡が消え、分離均衡だけになる(ただし後で述べるように混合均衡はある)。 • また1のときに一括均衡のみになり、分離均衡が消える(もっとも、もしそれが正しければ強い企業が参入することはないが)。 • したがって、このモデルでは、たとえわずかな確率でも強い参入企業の可能性がある場合には、分離均衡の完全ベイズ均衡が存在し、そこでは参入すれば強タイプとみなされ阻止される。この分離均衡では明らかに弱い参入企業の側から見てはったりは得にならない。あえて強いふりをしても弱い参入企業にとってけしてうれしくはない。 • これらの間の開区間(1/3,1)では、両均衡がともに存在する。偽の評判が生じるのはこのうち一括均衡のケースであり、強い企業が、弱い企業に混じって阻止されず、独占企業からシェアを奪うことができる。
0.1×nの混合戦略、初期信念0.75 以下では混合戦略の場合を0.1きざみで近似したシミュレーション結果を示す。これは各プレイヤー戦略発生プログラムのわずかな変更で済む。ユーティリティprobability/2述語を用いたが、もちろん、member(P,[0,0.1,0.2,…,0.9,1])としてもよい。 ?- consistency_test. strategy_of_entrant(weak, enter, 0) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.1)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.2)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.3)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.4)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.5)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.6)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.7)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.8)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.9)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(1)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0), deter(1)) strategy_of_entrant(weak, enter, 1) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:1, best:1)), if(enter, belief(weak:0.75), deter(0)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0.75), deter(0)) Yes ?-
0.1×nの混合戦略、初期信念1/3 ?- consistency_test. strategy_of_entrant(weak, enter, 0) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.1)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.2)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.3)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.4)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.5)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.6)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.7)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.8)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(0.9)) consistency(yes), (weak, enter(hypo:0, best:0)), if(exit, belief(weak:1), deter(1)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0), deter(1)) strategy_of_entrant(weak, enter, 1) strategy_of_entrant(tough, enter, 1) consistency(yes), (weak, enter(hypo:1, best:1)), if(enter, belief(weak:0.333333), deter(0.2)) consistency(yes), (tough, enter(hypo:1, best:1)), if(enter, belief(weak:0.333333), deter(0.2)) Yes ?-
参考文献 • クールノーモデルと参入阻止ゲーム(完全ベイジアン均衡)の例題: 武藤滋夫(2001). ゲーム理論入門. 日経文庫. • 0和ゲームの鞍点、線形計画法との関係: 小山昭雄 (1980). ゲームの理論入門. 日経文庫. • 混合均衡の導出: R.J. オーマン (1991).丸山徹・立石寛訳.ゲーム論の基礎.勁草書房. • ナッシュ写像、均衡と解: 西田俊夫(1973). ゲームの理論. 日科技連. Nash, J. F. (1951), Non-Cooperative Games, Annals of Mathematics 54, pp.286-295. • EWA学習 Camerer, C. and T.H. Ho (1999). Experience-weighted Attraction Learning in Normal Form Games. Econometrica 67(4):827 – 874. • 3人クールノーゲームの動学とカオス H. N. Agiza (1998). Explicit Stability Zones for Cournot Game with 3 and 4 Competitors. Chaos, Solitons & Fractals 9(12): 1955-66. • 定和ゲームの例題と解法 土田美廣(2001). Cプログラミングによる経済・経営問題の解決法. 税務経理協会. (モデル分析の授業教材として使いました。他の章にはいくつか誤植が見られます。)