FindMatrixGameStrategies[mgame]
MatrixGame mgame の最適な戦略プロファイル(ナッシュ均衡)を求める.
FindMatrixGameStrategies[mgame,spec]
指定 spec に従って戦略プロファイルを求める.
FindMatrixGameStrategies
FindMatrixGameStrategies[mgame]
MatrixGame mgame の最適な戦略プロファイル(ナッシュ均衡)を求める.
FindMatrixGameStrategies[mgame,spec]
指定 spec に従って戦略プロファイルを求める.
詳細とオプション
- FindMatrixGameStrategiesは,ゲームの解法あるいはナッシュ均衡のようなゲームの最適戦略を求めることとしても知られている.
- 最適なゲーム戦略は,通常,ゲームの戦い方として,あるいはゲームを行うことから得られる期待利得の計算に使われる.
- FindMatrixGameStrategiesはゲーム戦略のリストを返す.
- 全プレーヤーが同時に利得を最大化するなら,戦略プロファイル
はナッシュ均衡である.同様に,どのプレーヤーも戦略を変更することで期待される利益を向上させることはできない. - 戦略プロファイルは
, …,
で与えられる.ここで,各最大化は戦略
を確率ベクトルとして取る. - どの行列ゲームも,通常は多数の,混合戦略の形のナッシュ均衡を持つ,
- 次は,spec の可能な指定方法である.
-
"Mixed" 行動の確率混合 "Pure" 単一の行動 - FindMatrixGameStrategiesには次のオプションがある.
-
Method "SolveValues" 使用するメソッド - 次は,可能なMethod設定である.
-
"FindInstance" 整方程式にFindInstanceを使う {"FindInstance",n} 整方程式の
個の解を求める"NSolveValues" 整方程式にNSolveValuesを使う "SolveValues" 整方程式にSolveValuesを使う
例題
すべて開く すべて閉じる例 (5)
FindMatrixGameStrategies[GameTheoryData["PrisonersDilemma"]]この戦略は,両方のプレーヤーが常に"Defect"を選ぶことに対応する.
GameTheoryData["PrisonersDilemma"]["GameActionLabels"]FindMatrixGameStrategies[GameTheoryData["Chicken"]]FindMatrixGameStrategies[GameTheoryData["Chicken"], "Mixed"]FindMatrixGameStrategies[GameTheoryData["VolunteersDilemma"]]FindMatrixGameStrategies[GameTheoryData["VolunteersDilemma"], "Pure"]ゲームの中には無数の解があるものがある.次の行列ゲームについて考える:
game = MatrixGame[{{{0, 0}, {0, 1}}, {{1, 0}, {0, 0}}}]FindMatrixGameStrategies[game, Method -> {"FindInstance", 3}]game = GameTheoryData["DinersDilemma", 3]FindMatrixGameStrategies[game]スコープ (5)
基本的な用法 (3)
FindMatrixGameStrategies[GameTheoryData["DinersDilemma"]]FindMatrixGameStrategies[GameTheoryData["BattleOfTheBismarck"], Method -> "FindInstance"]GameTheoryData["BattleOfTheBismarck"]["GameActionLabels"]無限個の解が可能なので,ナッシュ均衡を3つだけ求めることを考える:
FindMatrixGameStrategies[GameTheoryData["BattleOfTheBismarck"], Method -> {"FindInstance", 3}]FindMatrixGameStrategies[GameTheoryData["RockPaperScissors"]]これは,両方のプレーヤーが,石,紙,はさみからランダムに選ぶことに対応する:
GameTheoryData["RockPaperScissors"]["GameActionLabels"]指定 (2)
FindMatrixGameStrategies[GameTheoryData["PlatoniaDilemma"], Method -> {"FindInstance", 7}]"Mixed"指定を使って混合戦略だけが与えられるようにフィルタをかける:
FindMatrixGameStrategies[GameTheoryData["PlatoniaDilemma"], "Mixed", Method -> {"FindInstance", 7}]FindMatrixGameStrategies[GameTheoryData["Hero"]]FindMatrixGameStrategies[GameTheoryData["Hero"], "Pure"]オプション (1)
Method (1)
game = GameTheoryData["DangerousCoordination"]デフォルトのSolveValuesメソッドを使うことができる:
FindMatrixGameStrategies[game, Method -> "SolveValues"]NSolveValuesメソッドを使う:
FindMatrixGameStrategies[game, Method -> "NSolveValues"]FindInstanceメソッドを使う:
FindMatrixGameStrategies[game, Method -> "FindInstance"]アプリケーション (8)
社会ゲーム (2)
ボランティアのジレンマは,各プレーヤーがボランティア活動に参加することもしないこともできる環境を表している.少なくとも1人のプレーヤーがボランティア活動に参加すると他のすべてのプレーヤーは参加しないことによってわずかに得をする.誰も参加しないとすべてのプレーヤーの利得が低くなる.プレーヤーが4人のボランティアのジレンマゲームを生成する:
game = GameTheoryData["VolunteersDilemma", 4]ボランティアのジレンマは,多くの場合ナッシュ均衡が存在し,厳密に1人のプレーヤーが活動に参加する可能性が最も高くなる.このゲームに最適な戦略を求める:
FindMatrixGameStrategies[game]非調整ゲームは調整ゲームと反調整ゲームのハイブリッド形式で,片方のプレーヤーのインセンティブが調整することであるのに対しもう一方のプレーヤーはこれを回避しようとする.1人の志願者と1人の反対者からなる非調整ゲームを生成する:
game = GameTheoryData["Discoordination"]FindMatrixGameStrategies[game]MatrixGamePayoff[game, %]経済ゲーム (3)
腹をすかせた3人の男がレストランに行く.支払いは割り勘にすることにした.レストランには3種類の定食(安い,普通,高い)がある.この状況をMatrixGameとして表す:
game = GameTheoryData["DinersDilemma", 3]MatrixGamePlot[game]FindMatrixGameStrategies[game]Cournot寡占ゲームは複数の企業が同じ製品を製造している状況を表している.各企業は製造コストと他の企業の製品製造数を考慮しなければならない.最低価格の企業だけが商品を販売することができる.Cournot寡占ゲームを生成する:
game = GameTheoryData["CournotOligopoly"]FindMatrixGameStrategies[game]すべてのプレーヤーを考慮すると,利得は2番目の行動で最大になると直感的に分かる:
game["Plot"]価格戦争は,複数の企業が最低価格を提供しようとするが任意の企業の利得が選択される価格に直接相関することである.3つの企業間の価格戦争について考える.各企業は低価格か高価格を選ぶことができる:
game = MatrixGame[{{{{2, 2, 2}, {(8/3), (8/3), (5/3)}}, {{(8/3), (5/3), (8/3)}, {(10/3), (7/3), (7/3)}}}, {{{(5/3), (8/3), (8/3)}, {(7/3), (10/3), (7/3)}}, {{(7/3), (7/3), (10/3)}, {3, 3, 3}}}}]MatrixGamePlot[game]価格をできるだけ高くするという共通の利害があるにもかかわらず,競争によって低価格でナッシュ均衡が生まれる:
FindMatrixGameStrategies[game]軍事ゲーム (1)
ブロット大佐ゲームは,将校(プレーヤー)が同時にいくつかの戦場(オブジェクト)に限られた資材を分配する状況を表している.戦場に最も多くの資材を届けたプレーヤーがその戦闘に勝つ.利得は勝利を収めた戦場数である.ブロット大佐ゲームを生成する:
game = GameTheoryData["ColonelBlotto"]FindMatrixGameStrategies[game]2番目のプレーヤーがより多くの資材を持っていることを考慮すると直感的に理解できるが,資材を分散するとプレーヤーが勝利できる可能性のある戦場の数が増える:
game["Dataset"]娯楽ゲーム (1)
グラフを使って優位性順位を設定し,ジャンケンを石・紙・ハサミ・火・水に一般化する:
grpsfw = Graph[{"rock", "paper", "scissors", "fire", "water"}, {"rock""scissors", "scissors""paper", "paper""rock", "scissors""water", "fire""scissors", "fire""rock", "paper""water", "rock""water", "fire""paper", "water""fire"}, ...]rpsfw = MatrixGame[Normal[# - Transpose[#]]&@WeightedAdjacencyMatrix[grpsfw]]rpsfw["Dataset"]FindMatrixGameStrategies[rpsfw]ゲームの対称性 (1)
おもしろい例題 (2)
Manipulate[game = GameTheoryData["Compound", Players];MatrixGamePlot[game, FindMatrixGameStrategies[game, Method -> "NSolveValues"][[1]]], {Players, 2, 5, 1, ImageSize -> Tiny}, ControlPlacement -> Left, SaveDefinitions -> True]3つの行動がある戦略の場合,確率は2つの確率,つまり2つの二次元の点のみを使用して可視化できることについて考える.戦略を簡単に可視化できる関数を書く:
simplexView[point_List, color_, num_] := Graphics[{AbsolutePointSize[6], color, Point[Take[point[[1 ;; 2]], 2]]}, ...]
oneStrategy[strat_, color_, i_] := Row[{simplexView[strat[[1]], color, i], simplexView[strat[[2]], color, i]}]
listStrategies[strats_] := Column@Table[oneStrategy[strats[[i]], ColorData[97][i], i], {i, Length[strats]}]Manipulate[game = MatrixGame[{{aa, ab, ac}, {ba, bb, bc}, {ca, cb, cc}}];Row[{MatrixGamePlot[game], listStrategies[FindMatrixGameStrategies[game, Method -> "NSolveValues"]]}], ...]関連するガイド
-
▪
- ゲーム理論
テキスト
Wolfram Research (2025), FindMatrixGameStrategies, Wolfram言語関数, https://reference.wolfram.com/language/ref/FindMatrixGameStrategies.html.
CMS
Wolfram Language. 2025. "FindMatrixGameStrategies." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/FindMatrixGameStrategies.html.
APA
Wolfram Language. (2025). FindMatrixGameStrategies. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/FindMatrixGameStrategies.html
BibTeX
@misc{reference.wolfram_2026_findmatrixgamestrategies, author="Wolfram Research", title="{FindMatrixGameStrategies}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/FindMatrixGameStrategies.html}", note=[Accessed: 14-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_findmatrixgamestrategies, organization={Wolfram Research}, title={FindMatrixGameStrategies}, year={2025}, url={https://reference.wolfram.com/language/ref/FindMatrixGameStrategies.html}, note=[Accessed: 14-July-2026]}