MatrixGamePlot[mgame]
MatrixGame mgame のプロットを生成する.
MatrixGamePlot[mgame,strat]
ゲーム戦略 strat をハイライトする.
MatrixGamePlot
MatrixGamePlot[mgame]
MatrixGame mgame のプロットを生成する.
MatrixGamePlot[mgame,strat]
ゲーム戦略 strat をハイライトする.
詳細とオプション
- MatrixGamePlotは,通常,行列ゲームとのやり取りとその理解のために使われる.
- 2人ゲームには利得ベクトルの行列がある.各ベクトルは各プレーヤーの利得を表す.
- 次のプロットはプレーヤーが2人のゲームである.利得はグラフとしてプロットされており,プレーヤーに関連付けられた色で彩色されている.
- 戦略も各プレーヤーの行と列の線の太さとして表すことができる.プレーヤーの行動の順序は上から下,左から右である.
- 行または列に複数のプレーヤーがいる場合,プレーヤーの行動の各組合せに行または列が使われる.
- MatrixGamePlotにはGraphicsと同じオプションに以下の追加・変更を加えたものが使える. [全オプションのリスト]
-
ColorFunction Automatic 各プレーヤーの利得の彩色方法 ColorFunctionScaling False ColorFunctionの引数をスケールするかどうか GameActionLabels Automatic 行動に使うラベル GamePlayerLabels Automatic プレーヤーに使うラベル PlotLayout Automatic 矩形と行のレイアウトを指定する PlotLegends Automatic 利得値の凡例 - ColorData["DefaultPlotColors"]は,ColorFunctionで使われるデフォルトの色のシーケンスを与える.
- 次は,PlotLayoutの可能な設定である.
-

"BarChart" 各利得の矩形をBarChartとしてプロットする 
"SplitSquare" 各利得の矩形を分割矩形としてプロットする 
{{r1,…,rk},{c1,…,cn-k}} 行のプレーヤーと列のプレーヤーを変更する 
{"SplitSquare",{{…},{…}}} 前の2つのオプションを組み合せる - 利得配列は,プレーヤー{r1,…,rk}を行プレーヤー,{c1,…,cn-k}を列プレーヤーとする行列になるように再形成される可能性がある点に注意のこと.例えばプレーヤーが5人いる場合,デフォルトの順序では,最初の2人のプレーヤー({1,2}) が行に,他の3人のプレーヤー({3,4,5})が列に分割される.この順序はこのオプションを使用して変更できる.
全オプションのリスト
例題
すべて開く すべて閉じる例 (4)
game = MatrixGame[{{{2, 2}, {2, 1}}, {{0, 1}, {1, 2}}}]MatrixGamePlot[game]game = GameTheoryData["PrisonersDilemma"]MatrixGamePlot[game]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]game = GameTheoryData["PrisonersDilemma"]GameActionLabels配列と同じ次元の配列を使って戦略を表示する:
MatrixGamePlot[game, {{1, 0}, {0.7, 0.3}}, PlotLayout -> "SplitSquare"]game = GameTheoryData["NashPoker"]MatrixGamePlot[game]3人目のプレーヤーが行にくるようにしてゲームをプロットする:
MatrixGamePlot[game, PlotLayout -> {{1, 3}, {2}}]スコープ (5)
プレーヤーが2人のゲーム (3)
game = MatrixGame[{{1, -1}, {-1, 1}}]MatrixGamePlot[game, PlotLayout -> {"SplitSquare", {{2}, {1}}}]game = MatrixGame[{{{1, 2}, {7, 3}}, {{4, 4}, {6, 3}}}]MatrixGamePlot[game]game = GameTheoryData["StagHunt"]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]プレーヤーが多人数のゲーム (2)
game = MatrixGame[{{{{{1, 2, 3, 4}, {4, 3, 2, 1}}, {{4, 3, 1, 2}, {3, 1, 4, 2}}}, {{{2, 4, 3, 1}, {1, 4, 2, 3}}, {{2, 3, 1, 4}, {1, 2, 3, 4}}}}, {{{{2, 1, 4, 3}, {3, 4, 1, 2}}, {{1, 3, 4, 2}, {2, 1, 4, 3}}}, {{{3, 4, 2, 1}, {2, 4, 1, 3}}, {{4, 2, 1, 3}, {3, 1, 2, 4}}}}}]MatrixGamePlot[game]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]game = GameTheoryData["VolunteersDilemma", 4]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]オプション (6)
ColorFunction (1)
game = GameTheoryData["PrisonersDilemma"]ColorDataに見られるようにカラースキームを指定する:
MatrixGamePlot[game, ColorFunction -> 96]ColorFunctionScaling (1)
GameActionLabels (1)
GamePlayerLabels (1)
PlotLayout (1)
game = GameTheoryData["3Coordination"]MatrixGamePlot[game, {{1}, {2, 3}}, PlotLayout -> "BarChart"]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]プレーヤーのインデックスのリスト{{r1,…,rk},{c1,…,cn-k}}を使って,n 人のプレーヤーを行のプレーヤー{r1,…,rk}と列のプレーヤー{c1,…,cn-k}にグループ化する:
MatrixGamePlot[game, PlotLayout -> {{3, 1}, {2}}]MatrixGamePlot[game, PlotLayout -> {"SplitSquare", {{3, 1}, {2}}}]PlotLegends (1)
game = GameTheoryData["PrisonersDilemma"]MatrixGamePlot[game]MatrixGamePlot[game, PlotLegends -> None]これは,スタイルが"SplitSquare"のときに特に役に立つ.
MatrixGamePlot[game, PlotLayout -> "SplitSquare"]MatrixGamePlot[game, PlotLayout -> "SplitSquare", PlotLegends -> None]アプリケーション (9)
娯楽ゲーム (2)
ジャンケン(石・紙・はさみ)は,1人のプレーヤーが勝って他が負けるか引き分けるかのゼロ和ゲームである.プレーヤーが2人のときのプロットスタイルは,"SplitSquare"が最も適している:
MatrixGamePlot[GameTheoryData["RockPaperScissors"], PlotLayout -> "SplitSquare", PlotLegends -> Automatic]このプロットは,負け(最低点)に灰色,勝ち(最高点)に濃い青またはオレンジ色,引分け(平均点)に薄い青またはオレンジ色を使う.
グラフを使って支配順を設定し,ジャンケン(石・紙・はさみ)を石・紙・はさみ・火・水に一般化する:
game = MatrixGame[Normal[# - Transpose[#]]&@WeightedAdjacencyMatrix[Graph[{"rock""scissors", "scissors""paper", "paper""rock", "scissors""water", "fire""scissors", "fire""rock", "paper""water", "rock""water", "fire""paper", "water""fire"}]]]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]社会ゲーム (1)
ボランティアのジレンマは,各プレーヤーがボランティアするかしないかを選択できる状況を表す.少なくとも1人のプレーヤーがボランティアすると,他のすべてのプレーヤーはしないことで限界利益を得る.ボランティアするプレーヤーがいない場合,すべてのプレーヤーの利得は非常に低くなる.4プレーヤーのボランティアのジレンマゲームを生成する:
game = GameTheoryData["VolunteersDilemma", 4]プレーヤーが3人以上のほとんどのゲームを可視化する最良の方法は,デフォルトの"BarChart"スタイルを使うことである.ゲームをプロットする:
MatrixGamePlot[game]"SplitSquare"スタイルでは,プレーヤーにその選択に基づいて何が起こったかが分かりにくい:
MatrixGamePlot[game, PlotLayout -> "SplitSquare"]MatrixGamePlot[game, PlotLayout -> {"SplitSquare", {{1}, {2, 3, 4}}}]MatrixGamePlot[game, PlotLayout -> {"SplitSquare", {{1}, {2, 3, 4}}}]囚人のジレンマ (2)
game = GameTheoryData["PrisonersDilemma"]game["Dataset"]VerifyMatrixGameStrategy[game, {{0, 1}, {0, 1}}]MatrixGamePlot[game, {{0, 1}, {0, 1}}]game = GameTheoryData["OptionalPrisonersDilemma"]MatrixGamePlot[game, PlotLayout -> "SplitSquare"]FindMatrixGameStrategies[game]メッセージで示されているように,解の数は無数であり,さらなる分析が必要である:
FindMatrixGameStrategies[game, Method -> {"FindInstance", 5}]確認してみると分かるが,戦略{0,0,1}は支配戦略ではない:
VerifyMatrixGameStrategy[game, {{a, b, c}, {0, 0, 1}}]戦略{{0,0,1},{0,0,1}}はナッシュ均衡である:
VerifyMatrixGameStrategy[game, {{0, 0, 1}, {0, 0, 1}}]経済ゲーム (3)
腹を空かせた3人の男がレストランに行き,割り勘にすることにした.店には,安い,中間,高いの3種類の定食がある.この状況をMatrixGameとして表す:
game = GameTheoryData["DinersDilemma", 3]MatrixGamePlot[game]FindMatrixGameStrategies[game]Cournot寡占ゲームは,一組の企業が同じ製品を生産している状況を表している.各企業が生産コストと他の企業の製品品質を考慮しなければならない.最低価格の企業だけが製品を販売することができる.
game = GameTheoryData["CournotOligopoly"]FindMatrixGameStrategies[game]直感的に,すべてのプレーヤーを考慮した際に,2番目の行動の利得が最大であることが分かる:
MatrixGamePlot[game]価格戦争は,複数の企業が最低価格の製品を提供しようとしている状況を表している.企業の利得は選択した価格と直接の相関関係がある.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)
プレーヤーの利得間の対称性あるいは差を可視化する簡単な方法は,行と列に別々のプレーヤーを置くことである.例として,純粋な調整ゲームと危険な調整ゲームの違いを考えてみる.前者では,プレーヤーの利得は同じになる:
MatrixGamePlot[GameTheoryData["PureCoordination"], PlotLayout -> {{1}, {2}}]ゲームがプレーヤー間で対称なら,プロットの形状を保持する任意の並べ替えが同等の利得を示すはずである:
MatrixGamePlot[GameTheoryData["PureCoordination"], PlotLayout -> {{2}, {1}}]関連するガイド
-
▪
- ゲーム理論
テキスト
Wolfram Research (2025), MatrixGamePlot, Wolfram言語関数, https://reference.wolfram.com/language/ref/MatrixGamePlot.html.
CMS
Wolfram Language. 2025. "MatrixGamePlot." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/MatrixGamePlot.html.
APA
Wolfram Language. (2025). MatrixGamePlot. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MatrixGamePlot.html
BibTeX
@misc{reference.wolfram_2026_matrixgameplot, author="Wolfram Research", title="{MatrixGamePlot}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/MatrixGamePlot.html}", note=[Accessed: 11-November-2026]}
BibLaTeX
@online{reference.wolfram_2026_matrixgameplot, organization={Wolfram Research}, title={MatrixGamePlot}, year={2025}, url={https://reference.wolfram.com/language/ref/MatrixGamePlot.html}, note=[Accessed: 11-November-2026]}