From 6099701d6630d08964aa584d3a3a737c31a4f653 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Tue, 5 Mar 2024 21:26:55 +0000 Subject: twoxtwogame (5mar24) git-svn-id: svn://tug.org/texlive/trunk@70423 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/twoxtwogame/README.md | 28 +- .../doc/latex/twoxtwogame/twoxtwogame.pdf | Bin 465201 -> 0 bytes .../doc/latex/twoxtwogame/twoxtwogame_bibtex.bib | 63 ++ .../doc/latex/twoxtwogame/twoxtwogame_doc.pdf | Bin 0 -> 458421 bytes .../doc/latex/twoxtwogame/twoxtwogame_doc.tex | 892 +++++++++++++++++++++ 5 files changed, 982 insertions(+), 1 deletion(-) delete mode 100644 Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame.pdf create mode 100644 Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_bibtex.bib create mode 100644 Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.pdf create mode 100644 Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.tex (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex/twoxtwogame/README.md b/Master/texmf-dist/doc/latex/twoxtwogame/README.md index 3856e3f087c..ca22ad54b10 100644 --- a/Master/texmf-dist/doc/latex/twoxtwogame/README.md +++ b/Master/texmf-dist/doc/latex/twoxtwogame/README.md @@ -6,10 +6,12 @@ scientific publications. Commands include producing graphical representations of 2x2 games, plotting the equilibria in 2x2 games, and game embeddings for 2x2 games. + ## Installation Simply include the `twoxtwogame.sty` file in your working directory. + ## Usage Include in the preamble the `twoxtwogame` package. @@ -29,6 +31,31 @@ equilibrium. For further information, please refer to the included package documentation: `twoxtwogame_doc.pdf` which can be built from `twoxtwogame_doc.tex`. + +## Citing this package + +Please use the following citation when using this package: +``` +@misc{marris2024_twoxtwogame, + title={Visualizing 2x2 Normal-Form Games: twoxtwogame LaTeX Package}, + author={Luke Marris and Ian Gemp and Siqi Liu and Joel Z. Leibo and Georgios Piliouras}, + year={2024}, + eprint={2402.16985}, + archivePrefix={arXiv}, + primaryClass={cs.GT}, + url={https://arxiv.org/abs/2402.16985}, +} +``` + + +## Contributing + +If considering contributoing to the package, please read CONTRIBUTING.md. +This package is maintained on +[GitHub](https://github.com/google-deepmind/twoxtwogame) and mirrored on +[CTAN](https://ctan.org/pkg/twoxtwogame). + + ## License and disclaimer Copyright 2024 DeepMind Technologies Limited @@ -49,4 +76,3 @@ either express or implied. See the licenses for the specific language governing permissions and limitations under those licenses. This is not an official Google product. - diff --git a/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame.pdf b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame.pdf deleted file mode 100644 index bc3b5bcd45c..00000000000 Binary files a/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame.pdf and /dev/null differ diff --git a/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_bibtex.bib b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_bibtex.bib new file mode 100644 index 00000000000..9f477e16a37 --- /dev/null +++ b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_bibtex.bib @@ -0,0 +1,63 @@ + +@inproceedings{liu2024_nfgtransformer, + title={NfgTransformer: Equivariant Representation Learning for Normal-form Games}, + author={Siqi Liu and Luke Marris and Georgios Piliouras and Ian Gemp and Nicolas Heess}, + booktitle={The Twelfth International Conference on Learning Representations}, + year={2024}, + url={https://openreview.net/forum?id=4YESQqIys7} +} + +@misc{marris2023_equilibrium_invariant_embedding_2x2_arxiv, + title={Equilibrium-Invariant Embedding, Metric Space, and Fundamental Set of 2×2 Normal-Form Games}, + author={Luke Marris and Ian Gemp and Georgios Piliouras}, + year={2023}, + eprint={2304.09978}, + archivePrefix={arXiv}, + primaryClass={cs.GT}, + url = {https://arxiv.org/abs/2304.09978}, +} + +@article{bruns2015_names_for_games, + author = {Bruns, Bryan Randolph}, + title = {Names for Games: Locating 2 × 2 Games}, + journal = {Games}, + volume = {6}, + year = {2015}, + number = {4}, + pages = {495--520}, + url = {https://www.mdpi.com/2073-4336/6/4/495}, + issn = {2073-4336}, + abstract = {Prisoner’s Dilemma, Chicken, Stag Hunts, and other two-person two-move (2 × 2) models of strategic situations have played a central role in the development of game theory. The Robinson–Goforth topology of payoff swaps reveals a natural order in the payoff space of 2 × 2 games, visualized in their four-layer “periodic table” format that elegantly organizes the diversity of 2 × 2 games, showing relationships and potential transformations between neighboring games. This article presents additional visualizations of the topology, and a naming system for locating all 2 × 2 games as combinations of game payoff patterns from the symmetric ordinal 2 × 2 games. The symmetric ordinal games act as coordinates locating games in maps of the payoff space of 2 × 2 games, including not only asymmetric ordinal games and the complete set of games with ties, but also ordinal and normalized equivalents of all games with ratio or real-value payoffs. An efficient nomenclature can contribute to a systematic understanding of the diversity of elementary social situations; clarify relationships between social dilemmas and other joint preference structures; identify interesting games; show potential solutions available through transforming incentives; catalog the variety of models of 2 × 2 strategic situations available for experimentation, simulation, and analysis; and facilitate cumulative and comparative research in game theory.}, + doi = {10.3390/g6040495} +} + +@book{robinsonandgoforth2005_topology_of_2x2_games_book, + author = {Robinson, David and Goforth, David}, + year = {2005}, + month = {01}, + pages = {}, + title = {The Topology of the 2x2 games: A New Periodic Table}, + doi = {10.4324/9780203340271} +} + +@book{goforth2005_periodic_table_of_games, + author = {Goforth, David and Robinson, David}, + year = {2005}, + month = {01}, + pages = {}, + title = {Dynamic Periodic Table of the 2 × 2 Games: User's Reference and Manual}, +} + +@article{borm1987_classification_of_2x2_games, + title = "A classification of 2x2 bimatrix games", + author = "P.E.M. Borm", + note = "Pagination: 16", + year = "1987", + language = "English", + volume = "29", + pages = "69--84", + journal = "Cahiers du Centre d'{\'E}tudes de Recherche Op{\'e}rationnelle", + issn = "0008-9737", + publisher = "Universit{\'e} libre de Bruxelles, Centre d'{\'e}tudes de recherche op{\'e}rationnelle", + number = "1-2", +} diff --git a/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.pdf b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.pdf new file mode 100644 index 00000000000..ac8c6aa4c0a Binary files /dev/null and b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.pdf differ diff --git a/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.tex b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.tex new file mode 100644 index 00000000000..4306aa0fd85 --- /dev/null +++ b/Master/texmf-dist/doc/latex/twoxtwogame/twoxtwogame_doc.tex @@ -0,0 +1,892 @@ +\documentclass[10pt]{article} +\usepackage[utf8]{inputenc} +\usepackage{twoxtwogame} +\usepackage{subcaption} +\usepackage{hyperref} +\usepackage{cprotect} + +% Optionally uncomment this code to cache figure generation. +% \usepackage{tikz} +% \usetikzlibrary{external} +% \tikzexternalize[prefix=cache/,up to date check=md5] + +\usepackage[authoryear, sort&compress, round]{natbib} +\usepackage{booktabs,array} +\bibliographystyle{abbrvnat} + +\title{twoxtwogame Package Documentation} +\author{Luke Marris} + +% Make a tabular column suitable for verbatim code input. +\makeatletter + \newcolumntype{V}[1]{>{\@minipagetrue}p{#1}<{\vspace{-0.8\baselineskip}}} +\makeatother + +\begin{document} + +\maketitle + +\section{Introduction} + +2×2 normal-form games are widely studied in game theory and economics. They are the simplest type of normal-form game, consisting of only two players, each with two strategies. This package provides tools for representing, visualizing, tabulating, and naming such games and their equilibrium solutions in \LaTeX. + + +\section{Functionality} + +\begin{table}[!b] + \centering + \begin{subtable}[t]{0.4\linewidth} + \centering + \payoffstable[label=$G$]{a}{b}{c}{d}{e}{f}{g}{h} + \caption{Payoffs arguments.} + \label{tab:2x2_payoffs_parameterization} + \end{subtable} + ~~~~ + \begin{subtable}[t]{0.4\linewidth} + \centering + \jointtable[label=$\sigma$]{a}{b}{c}{d} + \caption{Joint arguments.} + \label{tab:2x2_joint_parameterization} + \end{subtable} + \caption{2×2 normal-form game function arguments.} + \label{tab:2x2_parameterization} +\end{table} + +2×2 normal-form games are parameterized with 8 variables which describe the payoffs received by each player. Therefore, the majority of functions in the \verb!twoxtwogame! package have 8 mandatory arguments, \verb!{a}{b}{c}...{h}!, corresponding to these variables. The first four arguments, \verb!{a}{b}{c}{d}!, are payoffs of the row player in row-wise order, and the last four arguments, \verb!{e}{f}{g}{h}!, are the payoffs of the column player also in row-wise order. These payoffs, $G$, are often represented in a tabular form, where each player has strategies A and B (Table~\ref{tab:2x2_payoffs_parameterization}). The joint strategy distribution, $\sigma$, is parameterized with four arguments, \verb!{a}{b}{c}{d}! (Table~\ref{tab:2x2_joint_parameterization}). Some commands have additional optional keyword arguments. + +\subsection{Payoffs Representations} + +Traditionally payoffs can be represented as tables containing their raw payoff values and labeled actions. Additionally, payoffs can be represented graphically as either \emph{best-response graphs} or \emph{partial ordinal graphs}. These representations are compact enough to be inserted inline into text. + +\subsubsection{Best-Response Graphs} + +The best-response dynamics of 2×2 games are easily visualized. 2×2 games have been categorized according to these dynamics \citep{borm1987_classification_of_2x2_games,marris2023_equilibrium_invariant_embedding_2x2_arxiv}. \cite{marris2023_equilibrium_invariant_embedding_2x2_arxiv} proposed the best-response graphical representation used in this package. + +The graph contains up to four directed edges: two for each player. The row player has up to two vertical directed edges which point from each of the column player's two strategies to the row player's corresponding best-response strategy (BR). Similarly, the column player has up to two horizontal edges which correspond to the best-response to each of the row player's two strategies. Self-loop edges are omitted from the graph and indicate indifference between two strategies. For example, when \verb!a! = \verb!c!. The graph can be placed inline using \verb!\brgraph{a}...{h}!, for example: Matching Pennies~\brgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1}, Prisoner's Dilemma~\brgraph{1}{1}{0}{0}{1}{0}{1}{0}, and Null~\brgraph{0}{0}{0}{0}{0}{0}{0}{0}. The graphs inherit color from its surrounding text. The graphs are customizable with optional keyword arguments (Table~\ref{tab:brgraph}). + +\begin{table}[t] + \centering + \footnotesize + \begin{tabular}{lll} + Keyword Argument & Description & Default \\ \hline + point offset & The distance of the points from the center & 0.38em \\ + point color & Color of points & . \\ + point radius & Radius of points (filled circles) & 0.06em \\ + row player color & Color of row player's BR edges & . \\ + column player color & Color of column player's BR edges & . \\ + arrow width & Arrow head width & 0.25em \\ + arrow length & Arrow head length & 0.35em \\ + line width & Arrow line width & 0.05em \\ + \end{tabular} + + \vspace{1.0em} + + \begin{tabular}{V{0.8\linewidth}l} + Command & Output \\ \hline +\begin{verbatim} +\brgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1} +\end{verbatim} + & \brgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1} \\ +\begin{verbatim} +\brgraph[ + point color=green +]{1}{-1}{-1}{1}{-1}{1}{1}{-1} +\end{verbatim} + & \brgraph[point color=green]{1}{-1}{-1}{1}{-1}{1}{1}{-1} \\ +\begin{verbatim} +\brgraph[ + row player color=red, + column player color=blue +]{1}{-1}{-1}{1}{-1}{1}{1}{-1} +\end{verbatim} + & \brgraph[row player color=red,column player color=blue]{1}{-1}{-1}{1}{-1}{1}{1}{-1} + \end{tabular} + \cprotect\caption{Parameterization, default values, and example usage of the \verb!\brgraph[...]{a}...{h}! command, which produces inline best-response graphs. Default period indicates inheritance from outer scope.} + \label{tab:brgraph} +\end{table} + +The graphs belong to 15 equivalence classes which have been named \citep{marris2023_equilibrium_invariant_embedding_2x2_arxiv}. Names for any payoff can be determined using \verb!\brname{a}...{h}! (examples in Table~\ref{tab:brname}). It is common to have the equivalent class name appear along with the best-response graph. Canonical graphs for each equivalence class are given in Table~\ref{tab:namebrgraph}, and can be inserted using the commands \verb!\brgraph!. This command also accepts the same optional keyword arguments as \verb!\brgraph[...]{a}...{h}!. + +\begin{table}[t] + \centering + \footnotesize + \begin{tabular}{ll} + Example & Output \\ \hline + \verb!\brname{1}{2}{3}{4}{5}{6}{7}{8}! & \brname{1}{2}{3}{4}{5}{6}{7}{8} \\ + \verb!\brname{1.1}{-1}{3.7}{4}{-1.2}{3}{1}{5}! & \brname{1.1}{-1}{3.7}{4}{-1.2}{3}{9}{5} \\ + \verb!\brname{1}{-1}{-1}{1}{1}{-1}{-1}{1}! & \brname{1}{-1}{-1}{1}{1}{-1}{-1}{1} \\ + \verb!\brname{-1}{1}{1}{-1}{-1}{1}{1}{-1}! & \brname{-1}{1}{1}{-1}{-1}{1}{1}{-1} \\ + \verb!\brname{0}{0}{0}{0}{0}{0}{0}{1}! & \brname{0}{0}{0}{0}{0}{0}{0}{1} \\ + \end{tabular} + \cprotect\caption{Example usage of the \verb!\brname{a}...{h}! command, which produces best-response equivalence class names. Many payoffs map to the same equivalence class.} + \label{tab:brname} +\end{table} + +\begin{table}[t] + \centering + \footnotesize + \begin{tabular}{ll|ll|ll} + Graph Command & & Graph Command & & Graph Command & \\ \hline + \verb!\dominantbrgraph! & \dominantbrgraph & \verb!\safetybrgraph! & \safetybrgraph & \verb!\heistbrgraph! & \heistbrgraph \\ + \verb!\coordinationbrgraph! & \coordinationbrgraph & \verb!\aidosbrgraph! & \aidosbrgraph & \verb!\ignorancebrgraph! & \ignorancebrgraph \\ + \verb!\cyclebrgraph! & \cyclebrgraph & \verb!\picnicnbrgraph! & \picnicbrgraph & \verb!\horseplaybrgraph! & \horseplaybrgraph \\ + \verb!\samaritanbrgraph! & \samaritanbrgraph & \verb!\daredevilbrgraph! & \daredevilbrgraph & \verb!\dressbrgraph! & \dressbrgraph \\ + \verb!\hazardbrgraph! & \hazardbrgraph & \verb!\fossickbrgraph! & \fossickbrgraph & \verb!\nullbrgraph! & \nullbrgraph + \end{tabular} + \cprotect\caption{Example usage of the \verb!\brgraph[...]{a}...{h}! commands, which produce the canonical graphs for the 15 equivalence classes proposed by \cite{borm1987_classification_of_2x2_games} and \cite{marris2023_equilibrium_invariant_embedding_2x2_arxiv}. These commands have the same key word arguments as \verb!\brgraph!.} + \label{tab:namebrgraph} +\end{table} + + +\subsubsection{Ordinal Graphs and Partial Ordinal Graphs} + +It is also possible to visualize payoff orderings in graphical form using the \verb!\ordgraph[]{a}...{h}! command. Ordinal games have a simple four edge directed graph representation for each player. The ``periodic table'' of ordinal games is shown in Table~\ref{tab:ordinal_games}. The command is also able to handle partial ordinal graphs. In the literature, these are categorized as triple, double, high, low, middle and basic ties. The representation consists of two directed graphs, one for each player. The row player's graph is black and shifted to the bottom left, by default. The column player's graph is gray and shifted to the top right, by default. Each graph then represents the partial ordering of the payoffs of each pure joint strategy. The ordinal representation of some common games is shown in Table~\ref{tab:ord_examples}. Examples of partially ordinal games are given in Table~\ref{tab:partial_ord_examples}. + +\begin{table}[t!] + \centering + \footnotesize + \begin{tabular}{lll} + Keyword Argument & Description & Default \\ \hline + point offset & The distance of the points from the center & 0.38em \\ + row player x offset & Additional horizontal offset applied to row player & -0.1e, \\ + row player y offset & Additional vertical offset applied to row player & -0.5em \\ + column player x offset & Additional horizontal offset applied to column player & 0.1em \\ + column player y offset & Additional vertical offset applied to column player & 0.05em \\ + point color & Color of points & . \\ + point radius & Radius of points & 0.04em \\ + row player color & Color of row player's BR edges & . \\ + column player color & Color of column player's BR edges & gray \\ + arrow width & Arrow head width & 0.25em \\ + arrow length & Arrow head length & 0.35em \\ + line width & Arrow line width & 0.04em \\ + \end{tabular} + + \vspace{1.0em} + + \begin{tabular}{V{0.8\linewidth}l} + Command & Output \\ \hline +\begin{verbatim} +\ordgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1} +\end{verbatim} + & \ordgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1} \\ +\begin{verbatim} +\ordgraph[ + row player color=red, + column player color=blue +]{1}{-1}{-1}{1}{-1}{1}{1}{-1} +\end{verbatim} + & \ordgraph[row player color=red,column player color=blue]{1}{-1}{-1}{1}{-1}{1}{1}{-1} + \end{tabular} + + \cprotect\caption{Parameterization, default values, and example usage of the \verb!\ordgraph[...]{a}...{h}! command, which produces inline ordinal graphs. Default period indicates inheritance from outer scope.} + \label{tab:ordgraph} +\end{table} + +\begin{table}[t] + \centering + \footnotesize + \begingroup + \renewcommand{\arraystretch}{1.3} + \addtolength{\tabcolsep}{-3pt} + \begin{tabular}{r|cccccccccccc} + Chicken \ordgraph{2}{3}{1}{4}{0}{0}{0}{0} & + \ordgraph{2}{3}{1}{4}{3}{4}{1}{2} & + \ordgraph{2}{3}{1}{4}{2}{4}{1}{3} & + \ordgraph{2}{3}{1}{4}{1}{4}{2}{3} & + \ordgraph{2}{3}{1}{4}{1}{4}{3}{2} & + \ordgraph{2}{3}{1}{4}{2}{4}{3}{1} & + \ordgraph{2}{3}{1}{4}{3}{4}{2}{1} & + \ordgraph{2}{3}{1}{4}{4}{3}{2}{1} & + \ordgraph{2}{3}{1}{4}{4}{2}{3}{1} & + \ordgraph{2}{3}{1}{4}{4}{1}{3}{2} & + \ordgraph{2}{3}{1}{4}{3}{1}{2}{4} & + \ordgraph{2}{3}{1}{4}{4}{2}{1}{3} & + \ordgraph{2}{3}{1}{4}{4}{3}{1}{2} \\ + Battle \ordgraph{3}{2}{1}{4}{0}{0}{0}{0} & + \ordgraph{3}{2}{1}{4}{3}{4}{1}{2} & + \ordgraph{3}{2}{1}{4}{2}{4}{1}{3} & + \ordgraph{3}{2}{1}{4}{1}{4}{2}{3} & + \ordgraph{3}{2}{1}{4}{1}{4}{3}{2} & + \ordgraph{3}{2}{1}{4}{2}{4}{3}{1} & + \ordgraph{3}{2}{1}{4}{3}{4}{2}{1} & + \ordgraph{3}{2}{1}{4}{4}{3}{2}{1} & + \ordgraph{3}{2}{1}{4}{4}{2}{3}{1} & + \ordgraph{3}{2}{1}{4}{4}{1}{3}{2} & + \ordgraph{3}{2}{1}{4}{3}{1}{2}{4} & + \ordgraph{3}{2}{1}{4}{4}{2}{1}{3} & + \ordgraph{3}{2}{1}{4}{4}{3}{1}{2} \\ + Hero \ordgraph{3}{1}{2}{4}{0}{0}{0}{0} & + \ordgraph{3}{1}{2}{4}{3}{4}{1}{2} & + \ordgraph{3}{1}{2}{4}{2}{4}{1}{3} & + \ordgraph{3}{1}{2}{4}{1}{4}{2}{3} & + \ordgraph{3}{1}{2}{4}{1}{4}{3}{2} & + \ordgraph{3}{1}{2}{4}{2}{4}{3}{1} & + \ordgraph{3}{1}{2}{4}{3}{4}{2}{1} & + \ordgraph{3}{1}{2}{4}{4}{3}{2}{1} & + \ordgraph{3}{1}{2}{4}{4}{2}{3}{1} & + \ordgraph{3}{1}{2}{4}{4}{1}{3}{2} & + \ordgraph{3}{1}{2}{4}{3}{1}{2}{4} & + \ordgraph{3}{1}{2}{4}{4}{2}{1}{3} & + \ordgraph{3}{1}{2}{4}{4}{3}{1}{2} \\ + Compromise \ordgraph{2}{1}{3}{4}{0}{0}{0}{0} & + \ordgraph{2}{1}{3}{4}{3}{4}{1}{2} & + \ordgraph{2}{1}{3}{4}{2}{4}{1}{3} & + \ordgraph{2}{1}{3}{4}{1}{4}{2}{3} & + \ordgraph{2}{1}{3}{4}{1}{4}{3}{2} & + \ordgraph{2}{1}{3}{4}{2}{4}{3}{1} & + \ordgraph{2}{1}{3}{4}{3}{4}{2}{1} & + \ordgraph{2}{1}{3}{4}{4}{3}{2}{1} & + \ordgraph{2}{1}{3}{4}{4}{2}{3}{1} & + \ordgraph{2}{1}{3}{4}{4}{1}{3}{2} & + \ordgraph{2}{1}{3}{4}{3}{1}{2}{4} & + \ordgraph{2}{1}{3}{4}{4}{2}{1}{3} & + \ordgraph{2}{1}{3}{4}{4}{3}{1}{2} \\ + Deadlock \ordgraph{1}{2}{3}{4}{0}{0}{0}{0} & + \ordgraph{1}{2}{3}{4}{3}{4}{1}{2} & + \ordgraph{1}{2}{3}{4}{2}{4}{1}{3} & + \ordgraph{1}{2}{3}{4}{1}{4}{2}{3} & + \ordgraph{1}{2}{3}{4}{1}{4}{3}{2} & + \ordgraph{1}{2}{3}{4}{2}{4}{3}{1} & + \ordgraph{1}{2}{3}{4}{3}{4}{2}{1} & + \ordgraph{1}{2}{3}{4}{4}{3}{2}{1} & + \ordgraph{1}{2}{3}{4}{4}{2}{3}{1} & + \ordgraph{1}{2}{3}{4}{4}{1}{3}{2} & + \ordgraph{1}{2}{3}{4}{3}{1}{2}{4} & + \ordgraph{1}{2}{3}{4}{4}{2}{1}{3} & + \ordgraph{1}{2}{3}{4}{4}{3}{1}{2} \\ + Dilemma \ordgraph{1}{3}{2}{4}{0}{0}{0}{0} & + \ordgraph{1}{3}{2}{4}{3}{4}{1}{2} & + \ordgraph{1}{3}{2}{4}{2}{4}{1}{3} & + \ordgraph{1}{3}{2}{4}{1}{4}{2}{3} & + \ordgraph{1}{3}{2}{4}{1}{4}{3}{2} & + \ordgraph{1}{3}{2}{4}{2}{4}{3}{1} & + \ordgraph{1}{3}{2}{4}{3}{4}{2}{1} & + \ordgraph{1}{3}{2}{4}{4}{3}{2}{1} & + \ordgraph{1}{3}{2}{4}{4}{2}{3}{1} & + \ordgraph{1}{3}{2}{4}{4}{1}{3}{2} & + \ordgraph{1}{3}{2}{4}{3}{1}{2}{4} & + \ordgraph{1}{3}{2}{4}{4}{2}{1}{3} & + \ordgraph{1}{3}{2}{4}{4}{3}{1}{2} \\ + Hunt \ordgraph{1}{4}{2}{3}{0}{0}{0}{0} & + \ordgraph{1}{4}{2}{3}{3}{4}{1}{2} & + \ordgraph{1}{4}{2}{3}{2}{4}{1}{3} & + \ordgraph{1}{4}{2}{3}{1}{4}{2}{3} & + \ordgraph{1}{4}{2}{3}{1}{4}{3}{2} & + \ordgraph{1}{4}{2}{3}{2}{4}{3}{1} & + \ordgraph{1}{4}{2}{3}{3}{4}{2}{1} & + \ordgraph{1}{4}{2}{3}{4}{3}{2}{1} & + \ordgraph{1}{4}{2}{3}{4}{2}{3}{1} & + \ordgraph{1}{4}{2}{3}{4}{1}{3}{2} & + \ordgraph{1}{4}{2}{3}{3}{1}{2}{4} & + \ordgraph{1}{4}{2}{3}{4}{2}{1}{3} & + \ordgraph{1}{4}{2}{3}{4}{3}{1}{2} \\ + Assurance \ordgraph{1}{4}{3}{2}{0}{0}{0}{0} & + \ordgraph{1}{4}{3}{2}{3}{4}{1}{2} & + \ordgraph{1}{4}{3}{2}{2}{4}{1}{3} & + \ordgraph{1}{4}{3}{2}{1}{4}{2}{3} & + \ordgraph{1}{4}{3}{2}{1}{4}{3}{2} & + \ordgraph{1}{4}{3}{2}{2}{4}{3}{1} & + \ordgraph{1}{4}{3}{2}{3}{4}{2}{1} & + \ordgraph{1}{4}{3}{2}{4}{3}{2}{1} & + \ordgraph{1}{4}{3}{2}{4}{2}{3}{1} & + \ordgraph{1}{4}{3}{2}{4}{1}{3}{2} & + \ordgraph{1}{4}{3}{2}{3}{1}{2}{4} & + \ordgraph{1}{4}{3}{2}{4}{2}{1}{3} & + \ordgraph{1}{4}{3}{2}{4}{3}{1}{2} \\ + Coordination \ordgraph{2}{4}{3}{1}{0}{0}{0}{0} & + \ordgraph{2}{4}{3}{1}{3}{4}{1}{2} & + \ordgraph{2}{4}{3}{1}{2}{4}{1}{3} & + \ordgraph{2}{4}{3}{1}{1}{4}{2}{3} & + \ordgraph{2}{4}{3}{1}{1}{4}{3}{2} & + \ordgraph{2}{4}{3}{1}{2}{4}{3}{1} & + \ordgraph{2}{4}{3}{1}{3}{4}{2}{1} & + \ordgraph{2}{4}{3}{1}{4}{3}{2}{1} & + \ordgraph{2}{4}{3}{1}{4}{2}{3}{1} & + \ordgraph{2}{4}{3}{1}{4}{1}{3}{2} & + \ordgraph{2}{4}{3}{1}{3}{1}{2}{4} & + \ordgraph{2}{4}{3}{1}{4}{2}{1}{3} & + \ordgraph{2}{4}{3}{1}{4}{3}{1}{2} \\ + Peace \ordgraph{3}{4}{2}{1}{0}{0}{0}{0} & + \ordgraph{3}{4}{2}{1}{3}{4}{1}{2} & + \ordgraph{3}{4}{2}{1}{2}{4}{1}{3} & + \ordgraph{3}{4}{2}{1}{1}{4}{2}{3} & + \ordgraph{3}{4}{2}{1}{1}{4}{3}{2} & + \ordgraph{3}{4}{2}{1}{2}{4}{3}{1} & + \ordgraph{3}{4}{2}{1}{3}{4}{2}{1} & + \ordgraph{3}{4}{2}{1}{4}{3}{2}{1} & + \ordgraph{3}{4}{2}{1}{4}{2}{3}{1} & + \ordgraph{3}{4}{2}{1}{4}{1}{3}{2} & + \ordgraph{3}{4}{2}{1}{3}{1}{2}{4} & + \ordgraph{3}{4}{2}{1}{4}{2}{1}{3} & + \ordgraph{3}{4}{2}{1}{4}{3}{1}{2} \\ + Harmony \ordgraph{3}{4}{1}{2}{0}{0}{0}{0} & + \ordgraph{3}{4}{1}{2}{3}{4}{1}{2} & + \ordgraph{3}{4}{1}{2}{2}{4}{1}{3} & + \ordgraph{3}{4}{1}{2}{1}{4}{2}{3} & + \ordgraph{3}{4}{1}{2}{1}{4}{3}{2} & + \ordgraph{3}{4}{1}{2}{2}{4}{3}{1} & + \ordgraph{3}{4}{1}{2}{3}{4}{2}{1} & + \ordgraph{3}{4}{1}{2}{4}{3}{2}{1} & + \ordgraph{3}{4}{1}{2}{4}{2}{3}{1} & + \ordgraph{3}{4}{1}{2}{4}{1}{3}{2} & + \ordgraph{3}{4}{1}{2}{3}{1}{2}{4} & + \ordgraph{3}{4}{1}{2}{4}{2}{1}{3} & + \ordgraph{3}{4}{1}{2}{4}{3}{1}{2} \\ + Concord \ordgraph{2}{4}{1}{3}{0}{0}{0}{0} & + \ordgraph{2}{4}{1}{3}{3}{4}{1}{2} & + \ordgraph{2}{4}{1}{3}{2}{4}{1}{3} & + \ordgraph{2}{4}{1}{3}{1}{4}{2}{3} & + \ordgraph{2}{4}{1}{3}{1}{4}{3}{2} & + \ordgraph{2}{4}{1}{3}{2}{4}{3}{1} & + \ordgraph{2}{4}{1}{3}{3}{4}{2}{1} & + \ordgraph{2}{4}{1}{3}{4}{3}{2}{1} & + \ordgraph{2}{4}{1}{3}{4}{2}{3}{1} & + \ordgraph{2}{4}{1}{3}{4}{1}{3}{2} & + \ordgraph{2}{4}{1}{3}{3}{1}{2}{4} & + \ordgraph{2}{4}{1}{3}{4}{2}{1}{3} & + \ordgraph{2}{4}{1}{3}{4}{3}{1}{2} \\ \hline + & + \rotatebox[origin=tr]{90}{Concord \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{3}{4}{1}{2}} } & + \rotatebox[origin=tr]{90}{Harmony \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{2}{4}{1}{3}} } & + \rotatebox[origin=tr]{90}{Peace \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{1}{4}{2}{3}} } & + \rotatebox[origin=tr]{90}{Coordination \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{1}{4}{3}{2}} } & + \rotatebox[origin=tr]{90}{Assurance \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{2}{4}{3}{1}} } & + \rotatebox[origin=tr]{90}{Hunt \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{3}{4}{2}{1}} } & + \rotatebox[origin=tr]{90}{Dilemma \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{4}{3}{2}{1}} } & + \rotatebox[origin=tr]{90}{Deadlock \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{4}{2}{3}{1}} } & + \rotatebox[origin=tr]{90}{Compromise \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{4}{1}{3}{2}} } & + \rotatebox[origin=tr]{90}{Hero \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{3}{1}{2}{4}} } & + \rotatebox[origin=tr]{90}{Battle \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{4}{2}{1}{3}} } & + \rotatebox[origin=tr]{90}{Chicken \rotatebox[origin=c]{-90}{\ordgraph{0}{0}{0}{0}{4}{3}{1}{2}} } + \end{tabular} + \addtolength{\tabcolsep}{3pt} + \endgroup + \caption{Periodic table of ordinal games \citep{robinsonandgoforth2005_topology_of_2x2_games_book,goforth2005_periodic_table_of_games} with a naming scheme proposed by \cite{bruns2015_names_for_games}.} + \label{tab:ordinal_games} +\end{table} + +\begin{table}[t!] + \centering + \begin{subtable}[t]{0.3\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{3}{0}{0}{2}{2}{0}{0}{3} & M & F \\ \hline + M & 3,2 & 0,0 \\ + F & 0,0 & 2,3 \\ + \end{tabular} + \caption{Battle of the Sexes} + \label{tab:ord_battle_of_the_sexes} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{2}{7}{0}{4}{2}{0}{7}{4} & C & D \\ \hline + C & 2,2 & 7,0 \\ + D & 0,7 & 4,4 \\ + \end{tabular} + \caption{Prisoner's Dilemma} + \label{tab:ord_prisoners_dillema} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1} & H & T \\ \hline + H & $+1$,$-1$ & $-1$,$+1$ \\ + T & $-1$,$+1$ & $+1$,$-1$ \\ + \end{tabular} + \caption{Matching Pennies} + \label{tab:ord_matching_pennies} + \end{subtable} + \caption{Ordinal and partial ordinal graphs for common normal-form games.} + \label{tab:ord_examples} +\end{table} + +\begin{table}[t!] + \centering + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{1}{2}{3}{4}{2}{3}{1}{4} & A & B \\ \hline + A & 1,2 & 2,3 \\ + B & 3,1 & 4,4 \\ + \end{tabular} + \caption{Strict Tie} + \label{tab:strict_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{2}{2}{2}{1}{1}{0}{1}{1} & A & B \\ \hline + A & 2,1 & 2,0 \\ + B & 2,1 & 1,1 \\ + \end{tabular} + \caption{Triple Tie} + \label{tab:triple_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{1}{0}{1}{0}{1}{1}{0}{0} & A & B \\ \hline + A & 1,1 & 0,1 \\ + B & 1,0 & 0,0 \\ + \end{tabular} + \caption{Double Tie} + \label{tab:double_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{1}{0}{0}{0}{0}{0}{0}{1} & A & B \\ \hline + A & 1,0 & 0,0 \\ + B & 0,0 & 0,1 \\ + \end{tabular} + \caption{Basic Tie} + \label{tab:basic_tie} + \end{subtable} + + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{0}{0}{0}{0}{1}{1}{1}{1} & A & B \\ \hline + A & 0,1 & 0,1 \\ + B & 0,1 & 0,1 \\ + \end{tabular} + \caption{Zero Tie} + \label{tab:zero_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{3}{3}{2}{1}{1}{3}{3}{2} & A & B \\ \hline + A & 3,1 & 3,3 \\ + B & 2,3 & 1,2 \\ + \end{tabular} + \caption{High Tie} + \label{tab:high_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{1}{0}{0}{-1}{2}{-1}{1}{0} & A & B \\ \hline + A & $1$,0 & 0,$-1$ \\ + B & 0,$1$ & $-1$,0 \\ + \end{tabular} + \caption{Middle Tie} + \label{tab:middle_tie} + \end{subtable} \hfill + \begin{subtable}[t]{0.22\linewidth} + \centering + \begin{tabular}{c|cc} + \ordgraph{2}{1}{0}{0}{0}{1}{2}{0} & A & B \\ \hline + A & 2,0 & 1,1 \\ + B & 0,2 & 0,0 \\ + \end{tabular} + \caption{Low Tie} + \label{tab:low_tie} + \end{subtable} + \caption{Examples of partial ordinal graphs for each of the possible ties.} + \label{tab:partial_ord_examples} +\end{table} + + +\subsubsection{Payoff Tables} + +This package also provides commands for specifying payoff tables. The \verb!\smallpayoffstable[...]{a}...{h}! command produces inline payoff tables (Table~\ref{tab:smallpayoffstable}). + +While the \verb!\payoffstable[...]{a}...{h}! command produces full tabular payoff tables with strategy labels. + + +For example, \verb!\smallpayoffstable{1}{+2}{9}{-4}{3}{2}{1}{0}! results in a small inline payoff table, \smallpayoffstable{1}{+2}{9}{-4}{3}{2}{1}{0}. It is also possible to modify the values with keyword arguments (Table~\ref{tab:smallpayoffstable}). + +\begin{table}[t!] + \centering + \footnotesize + \begin{tabular}{lll} + Keyword Argument & Description & Default \\ \hline + row player color & Color of row player's payoffs & . \\ + column player color & Color of column player's payoffs & . \\ + row player first strategy color & Color of row player's first strategies & \verb!\empty! \\ + row player second strategy color & Color of row player's second strategies & \verb!\empty! \\ + column player first strategy color & Color of column player's first strategies & \verb!\empty! \\ + column player second strategy color & Color of column player's second strategies & \verb!\empty! \\ + \end{tabular} + + \vspace{1.0em} + + \begin{tabular}{V{0.8\linewidth}l} + Example & Output \\ \hline +\begin{verbatim} +\smallpayoffstable{1}{2}{9}{-4}{3}{2}{1}{0} +\end{verbatim} + & \smallpayoffstable{1}{2}{9}{-4}{3}{2}{1}{0} \\ +\begin{verbatim} +\smallpayoffstable[ + row player color=red, + column player color=blue +]{1}{2}{9}{-4}{3}{2}{1}{0} +\end{verbatim} + & \smallpayoffstable[row player color=red,column player color=blue]{1}{2}{9}{-4}{3}{2}{1}{0} \\ +\begin{verbatim} +\smallpayoffstable[ + row player first strategy color=red, + row player second strategy color=orange, + column player first strategy color=purple, + column player second strategy color=blue +]{1}{2}{9}{-4}{3}{2}{1}{0} +\end{verbatim} + & \smallpayoffstable[row player first strategy color=red,row player second strategy color=orange,column player first strategy color=purple,column player second strategy color=blue]{1}{2}{9}{-4}{3}{2}{1}{0} \\ + \end{tabular} + \cprotect\caption{Parameterization, default values, and example usage of the \verb!\smallpayoffstable[...]{a}...{h}! command, which produces inline payoff tables. Default period indicates inheritance from outer scope.} + \label{tab:smallpayoffstable} +\end{table} + + +Larger payoff tables can be represented with the \verb!\payoffstable[...]{a}...{h}!, \verb!\brpayoffstable[...]{a}...{h}!, and \verb!\ordpayoffstable[...]{a}...{h}! commands. Examples are given in Table~\ref{fig:table_examples}. + +\begin{table}[t!] + \centering + \begin{subtable}[t]{0.32\linewidth} + \centering + \payoffstable[row player color=red, column player color=blue]{1}{+2}{9}{-4}{3}{2}{1}{0} + \cprotect\caption{\verb!\payoffstable!} + \label{fig:empty_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.32\linewidth} + \centering + \brpayoffstable[row player color=red, column player color=blue]{1}{+2}{9}{-4}{3}{2}{1}{0} + \cprotect\caption{\verb!\brpayoffstable!} + \label{fig:br_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.32\linewidth} + \centering + \ordpayoffstable[row player color=red, column player color=blue]{1}{+2}{9}{-4}{3}{2}{1}{0} + \cprotect\caption{\verb!\ordpayoffstable!} + \label{fig:ord_table} + \end{subtable} \hfill + \caption{Examples of the three table commands.} + \label{fig:table_examples} +\end{table} + + +\subsection{Distribution Representations} + +Distributions, including joint, marginal, and conditional distributions can be visualised using either small inline graphs, tables, or larger figures. + + +\subsubsection{Inline Distribution Graphs} + +Inline graphs for joint, conditional, and marginal distributions can be produced using the commands in Table~\ref{tab:inline_dist_graphs}. All the commands take a joint distribution as arguments (Table~\ref{tab:2x2_joint_parameterization}). Optional arguments include \verb!color!, \verb!border color!, \verb!row player color!, and \verb!column player color!. + +\begin{table}[h!] + \footnotesize + \noindent\begin{tabular}{llr} + Command Signature & Example Command & \\ \hline + \verb!\jointgraph[..]{a}..{d}! & \verb!\jointgraph{.4}{.3}{.1}{.2}! & \jointgraph{.4}{.3}{.1}{.2} \\ + \verb!\rowcondgraph[..]{a}..{d}! & \verb!\rowcondgraph{.4}{.3}{.1}{.2}! & \rowcondgraph{.4}{.3}{.1}{.2} \\ + \verb!\colcondgraph[..]{a}..{d}! & \verb!\colcondgraph{.4}{.3}{.1}{.2}! & \colcondgraph{.4}{.3}{.1}{.2} \\ + \verb!\marginalgraph[..]{a}..{d}! & \verb!\marginalgraph{.4}{.3}{.1}{.2}! & \marginalgraph{.4}{.3}{.1}{.2} \\ + \verb!\jmgraph[..]{a}..{d}! & \verb!\jmgraph{.4}{.3}{.1}{.2} ! & \jmgraph{.4}{.3}{.1}{.2} + \end{tabular} + \caption{Inline distribution graphs.} + \label{tab:inline_dist_graphs} +\end{table} + +\subsubsection{Distribution Tables} + +Tables can also be easily defined for joint distributions (Figure~\ref{fig:joint_table_examples}). Optional arguments include \verb!label!, \verb!color!, \verb!border color!, \verb!row player color!, and \verb!column player color!. + +\begin{table}[h!] + \centering + \begin{subtable}[t]{0.3\linewidth} + \centering + \jgjointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\jgjointtable!} + \label{fig:jg_joint_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \rcgjointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\rcgjointtable!} + \label{fig:rcg_joint_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \ccgjointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\ccgjointtable!} + \label{fig:ccg_joint_table} + \end{subtable} \hfill + + \begin{subtable}[t]{0.3\linewidth} + \centering + \mgjointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\mgjointtable!} + \label{fig:mg_joint_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \jmgjointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\jmgjointtable!} + \label{fig:jmg_joint_table} + \end{subtable} \hfill + \begin{subtable}[t]{0.3\linewidth} + \centering + \jointtable[row player color=red, column player color=blue]{0.1}{0.2}{0.3}{0.4} + \cprotect\caption{\verb!\jointtable!} + \label{fig:empty_joint_table} + \end{subtable} + + \caption{Examples of joint distribution table commands. The naming convention is: ``jg'' for ``joint graph'', ``rcg'' for ``row conditional graph'', ``ccg'' for ``column conditional graph'', ``mg'' for ``marginal graph'', and ``jmg'' for ``joint-marginal graph''.} + \label{fig:joint_table_examples} +\end{table} + + + +\subsubsection{Marginal Simplex} + +Marginals, $\sigma_r = [\sigma_r^A, \sigma_r^B]$ and $\sigma_c = [\sigma_c^A, \sigma_c^B]$, can be plotted in two dimensions and the product of two 1-simplices. Points, images, heatmaps, and quiver plots can be generated from data (Figure~\ref{fig:marginal_simplex}). + +\begin{figure}[t] + \centering + \footnotesize + \begin{subfigure}[t]{0.32\linewidth} + \marginalsimplex[width=\linewidth,points=doc_data/marginal_simplex/points.dat] + \caption{Points} + \label{fig:marginal_simplex_points} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.32\linewidth} + \marginalsimplex[width=\linewidth,heatmap=doc_data/marginal_simplex/heatmap.dat] + \caption{Heatmap} + \label{fig:marginal_simplex_heatmap} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.32\linewidth} + \marginalsimplex[width=\linewidth,quiver=doc_data/marginal_simplex/quiver.dat,quiver scale arrows=0.1] + \caption{Quiver} + \label{fig:marginal_simplex_quiver} + \end{subfigure} + + \caption{Marginal Simplex Plots} + \label{fig:marginal_simplex} +\end{figure} + + +\subsubsection{Joint Simplex} + +The joint of a 2×2 normal-form game is described by four probabilities, $\{\sigma(\text{AA}),\allowbreak\sigma(\text{AB}),\allowbreak\sigma(\text{BA}),\allowbreak\sigma(\text{BB})\}$. Due to the constraint that $\sum_{a \in \mathcal{A}} \sigma(a) = 1$, there is redundancy in this parameterization. Therefore probability distributions (a 4-dimensional barycentric coordinate system) can be visualized on a 3-simplex in 3-dimensional Cartesian coordinates. + +A joint distribution is a point within this simplex, with pure joint strategies corresponding to the vertices of the simplex. Sets of points can also be visualized. In particular, convex polytope sets can be visualized by tracing the edges of the polytope. Games permit a convex polytope of (C)CE equilibria, and therefore these can be easily visualized. In fact, in two-strategy games, CEs and CCEs are equivalent. NEs are equilibria that are (C)CEs and also factorize, $\sigma(a_1,a_2)=\sigma_1(a_1)\sigma_2(a_2)$. In 2×2 normal-form games, NEs can be either points, lines, or in a degenerate case a manifold which stretches across all the vertices of the simplex. These polytopes can be visualized using the \verb!polytope[...]{a}...{h}! command. + +\begin{figure}[t] + \centering + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{1}{1}{0}{0}{1}{0}{1}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{1}{1}{0}{0}{1}{0}{1}{0}~\brname{1}{1}{0}{0}{1}{0}{1}{0}} + \label{fig:simplex_dominant} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{0}{1}{1}{0}{0}{1}{1}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{0}{1}{1}{0}{0}{1}{1}{0}~\brname{0}{1}{1}{0}{0}{1}{1}{0}} + \label{fig:simplex_coordination} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{1}{-1}{-1}{1}{-1}{1}{1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{1}{-1}{-1}{1}{-1}{1}{1}{-1}~\brname{1}{-1}{-1}{1}{-1}{1}{1}{-1}} + \label{fig:simplex_cycle} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{1}{0}{0}{1}{1}{0}{1}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{1}{0}{0}{1}{1}{0}{1}{0}~\brname{1}{0}{0}{1}{1}{0}{1}{0}} + \label{fig:simplex_samaritan} + \end{subfigure} + + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{-1}{-1}{+1}{0}{0}{+1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{-1}{-1}{+1}{0}{0}{+1}{-1}~\brname{+1}{-1}{-1}{+1}{0}{0}{+1}{-1}} + \label{fig:simplex_hazard} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{-1}{-1}{+1}{+1}{-1}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{-1}{-1}{+1}{+1}{-1}{0}{0}~\brname{+1}{-1}{-1}{+1}{+1}{-1}{0}{0}} + \label{fig:simplex_safety} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{+1}{-1}{-1}{0}{0}{+1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brname{+1}{+1}{-1}{-1}{0}{0}{+1}{-1}~\brgraph{+1}{+1}{-1}{-1}{0}{0}{+1}{-1}} + \label{fig:simplex_aidos} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{0}{-1}{0}{+1}{-1}{+1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brname{+1}{0}{-1}{0}{+1}{-1}{+1}{-1}~\brgraph{+1}{0}{-1}{0}{+1}{-1}{+1}{-1}} + \label{fig:simplex_picnic} + \end{subfigure} + + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{0}{+1}{0}{-1}{0}{0}{+1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{0}{+1}{0}{-1}{0}{0}{+1}{-1}~\brname{0}{+1}{0}{-1}{0}{0}{+1}{-1}} + \label{fig:simplex_daredevil} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{0}{-1}{0}{+1}{-1}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{0}{-1}{0}{+1}{-1}{0}{0}~\brname{+1}{0}{-1}{0}{+1}{-1}{0}{0}} + \label{fig:simplex_fossick} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{0}{-1}{0}{0}{0}{+1}{-1} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{0}{-1}{0}{0}{0}{+1}{-1}~\brname{+1}{0}{-1}{0}{0}{0}{+1}{-1}} + \label{fig:simplex_heist} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{+1}{-1}{-1}{0}{0}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brname{+1}{+1}{-1}{-1}{0}{0}{0}{0}~\brgraph{+1}{+1}{-1}{-1}{0}{0}{0}{0}} + \label{fig:simplex_ignoreance} + \end{subfigure} + + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{-1}{-1}{+1}{0}{0}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{-1}{-1}{+1}{0}{0}{0}{0}~\brname{+1}{-1}{-1}{+1}{0}{0}{0}{0}} + \label{fig:simplex_horseplay} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{+1}{0}{-1}{0}{0}{0}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{+1}{0}{-1}{0}{0}{0}{0}{0}~\brname{+1}{0}{-1}{0}{0}{0}{0}{0}} + \label{fig:simplex_dress} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.24\linewidth} + \polytope[width=\linewidth]{0}{0}{0}{0}{0}{0}{0}{0} + \vspace{-1.5em} + \caption{\footnotesize\brgraph{0}{0}{0}{0}{0}{0}{0}{0}~\brname{0}{0}{0}{0}{0}{0}{0}{0}} + \label{fig:simplex_zero} + \end{subfigure}\hfill + \hspace{0.24\linewidth} + + \caption{Equilibrium polytopes of the canonical games introduced by \cite{marris2023_equilibrium_invariant_embedding_2x2_arxiv}. The black lines represent edges of the joint probability simplex. The solid purple lines represent the edges of the (C)CE polytope. The dashed blue lines represent a continuum of NE. Points with respective colours represent (C)CE and NE point solutions.} + \label{fig:polytopes} +\end{figure} + + +\subsection{Embeddings} + +The equilibrium-invariant embeddings introduced by \cite{marris2023_equilibrium_invariant_embedding_2x2_arxiv} can be visualized using the \verb!\nontrivialembedding[...]! command. + +\begin{table}[t] + \centering + \footnotesize + \begin{tabular}{lll} + Keyword Argument & Description & Default \\ \hline + width & Width of plot & \verb!\linewidth! \\ + image & File path to background image & empty \\ + matrix & File path to background matrix data & empty \\ + points & File path to background points data & empty \\ + axis color & & black \\ + partial trivial & & false \\ + symmetric strategies & & false \\ + symmetric players & & false \\\ + no class boundaries & Suppress class boundaries & false\\ + no equilibrium boundaries & Suppress equilibrium boundaries & false\\ + no best-response graphs & Suppress false best-response graphs & false \\ + best-response graph color & & black\\ + best-response graph font size & & \verb!\scriptsize! \\ + no best-response names & Suppress best-response names & false \\ + best-response name orientation & & -90 \\ + best-response name distance & & -0.1em \\ + best-response name color & & black!70 \\ + best-response name font size & & \verb!\tiny! \\ + no axes labels & Suppress axes labels & false \\ + no tick labels & Suppress tick labels & false \\ + \end{tabular} + \cprotect\caption{\verb!embedding[...]! command parameterization.} + \label{tab:embedding_command_args} +\end{table} + +\begin{figure}[t] + \nontrivialembedding[no axes labels,no tick labels] + \caption{Embeddings plot.} +\end{figure} + +\begin{figure} + \centering + \begin{subfigure}[t]{0.49\linewidth} + \nontrivialembedding[matrix=doc_data/embedding/heatmap.dat,no axes labels,no tick labels,no best-response names] + \caption{Heatmap. Data from \cite{liu2024_nfgtransformer}.} + \end{subfigure}\hfill + \begin{subfigure}[t]{0.49\linewidth} + \nontrivialembedding[points=doc_data/embedding/points.dat,no axes labels,no tick labels,no best-response names] + \caption{Points} + \end{subfigure} + + \caption{Embedding plots with different backgrounds.} + \label{fig:embedding} +\end{figure} + +\begin{figure*}[!t] + \centering + + \begin{subfigure}[b]{0.49\linewidth} + \centering + \nontrivialembedding[width=1.0\linewidth,no axes labels,no tick labels,no best-response names] + \vspace{-1.0em} + \caption{Embedding} + \label{fig:example_embedding} + \end{subfigure}\hfill + \begin{subfigure}[b]{0.49\linewidth} + \centering + \nontrivialembedding[width=1.0\linewidth,no axes labels,no tick labels,no best-response names] + \vspace{-1.0em} + \caption{Non-trivial Embedding} + \label{fig:example_nontrivial_embedding} + \end{subfigure} + + \begin{subfigure}[b]{0.49\linewidth} + \centering + \nontrivialembedding[width=1.0\linewidth,no axes labels,no tick labels,no best-response names] + \vspace{-1.0em} + \caption{Symmetric Embedding} + \label{fig:example_symmetric_embedding} + \end{subfigure}\hfill + \begin{subfigure}[b]{0.49\linewidth} + \centering + \nontrivialembedding[width=1.0\linewidth,no axes labels,no tick labels,no best-response names] + \vspace{-1.0em} + \caption{Zero-Sum Embedding} + \label{fig:example_zero_sum_embedding} + \end{subfigure} + + \caption{Embedding Visualizations.} + \label{fig:embedding_visualizations} +\end{figure*} + + +\section{Tips and Tricks} + +\paragraph{Slow Builds or Out of Memory Errors} + +Some of the figures created by this package can take time to compile, and may slow down compile times for your project. Consider using the externalize command of TikZ/PFGplots to mitigate this issue: + +\begin{verbatim} +\usepackage{tikz} +\usetikzlibrary{external} +\tikzexternalize[prefix=cache/, up to date check=md5] +\end{verbatim} + +This will sequentially build each each TikZ picture individually and cache it. Subsequent project builds will use the cache rather than rebuild the picture each time. When modifying commands, it may be necessary to clear the cache to regenerate the pictures. Some setups may require manually making the cache directory and adding a dummy file in that directory. This process may be slower on the first build run. If your build times out trying again may work (because it will reuse the pictures that were cached on the first run). + +\section{Acknowledgements} + +Thank you to Ian Gemp, Georgios Piliouras, and Siqi Liu for their helpful feedback. + +\bibliography{twoxtwogame_bibtex} + +\end{document} -- cgit v1.2.3