diff --git a/build_support/catalog/catalog.am b/build_support/catalog/catalog.am index d65083cd91..2a0a8a4e53 100644 --- a/build_support/catalog/catalog.am +++ b/build_support/catalog/catalog.am @@ -16,6 +16,8 @@ CATALOG_FILES = \ catalog/selten1975/fig1.efg \ catalog/selten1975/fig2.efg \ catalog/selten1975/fig3.efg \ + catalog/shapley1974/fig2.nfg \ + catalog/shapley1974/fig3.nfg \ catalog/vonstengel2022/fig10.1.efg \ catalog/vonstengel2022/fig10.12.efg \ catalog/vonstengel2022/fig10.5.efg \ diff --git a/catalog/bagwell1995.efg b/catalog/bagwell1995.efg index 3783d16491..84a6fba782 100644 --- a/catalog/bagwell1995.efg +++ b/catalog/bagwell1995.efg @@ -1,6 +1,6 @@ EFG 2 R "Bagwell (GEB 1995) commitment and (un)observability" { "Player 1" "Player 2" } "This is a Stackelberg-type game with imperfectly observed commitment, following the -analysis of `Bag1995 `_. The outcomes and payoffs are the same as in Bagwell's +analysis of :cite:p:`Bag1995`. The outcomes and payoffs are the same as in Bagwell's model. This example sets the probability that the follower 'correctly' observes the leader's action as .99 (99/100). The key result is that the only pure-strategy equilibrium that survives if observability is imperfect is the one in which players diff --git a/catalog/gilboa1997/fig1.efg b/catalog/gilboa1997/fig1.efg index a0d0ceac0f..5d358eda76 100644 --- a/catalog/gilboa1997/fig1.efg +++ b/catalog/gilboa1997/fig1.efg @@ -1,6 +1,6 @@ EFG 2 R "Absent-Minded Driver (Gilboa 1997, GEB, Figure 2)" { "Player 1" } "The original absent-minded driver problem from -`Gil97 `_" +:cite:p:`Gil97`" p "" 1 1 "" { "B" "E" } 0 p "" 1 1 "" { "B" "E" } 0 diff --git a/catalog/gilboa1997/fig2.efg b/catalog/gilboa1997/fig2.efg index d43391744d..9b3fd43602 100644 --- a/catalog/gilboa1997/fig2.efg +++ b/catalog/gilboa1997/fig2.efg @@ -1,6 +1,6 @@ EFG 2 R "Two-Selves Absent-Minded Driver (Gilboa 1997, GEB, Figure 2)" { "Player 1" } "A reformulation of the absent-minded driver problem from -`Gil97 `_ +:cite:p:`Gil97` using a multi-self approach. A chance move determines the order in which two selves act, each facing a binary choice. Neither self knows the order of play, capturing absent-mindedness through information sets that cross the chance branches rather than through imperfect recall. diff --git a/catalog/jakobsen2016/fig1a.efg b/catalog/jakobsen2016/fig1a.efg index a509ab4a72..00199b518f 100644 --- a/catalog/jakobsen2016/fig1a.efg +++ b/catalog/jakobsen2016/fig1a.efg @@ -1,5 +1,5 @@ EFG 2 R "Jakobsen, Sorensen, Conitzer (2016) Figure 1(a)" { "Player 1" "Player 2" } -"An example from `JakSorCon16 `_ illustrating a game +"An example from :cite:p:`JakSorCon16` illustrating a game that is not exactly timeable. A coin toss determines which player moves first. Each player guesses whether she went first, without distinguishing going first from going second. Each player receives a payoff of 1 for a correct guess and 0 otherwise. diff --git a/catalog/jakobsen2016/fig1b.efg b/catalog/jakobsen2016/fig1b.efg index c8ff21ab7a..0232d58340 100644 --- a/catalog/jakobsen2016/fig1b.efg +++ b/catalog/jakobsen2016/fig1b.efg @@ -1,5 +1,5 @@ EFG 2 R "Jakobsen, Sorensen, Conitzer (2016) Figure 1(b)" { "Player 1" "Player 2" } -"An example from `JakSorCon16 `_ illustrating a game +"An example from :cite:p:`JakSorCon16` illustrating a game that has an exact deterministic timing. A coin toss determines the flow of the game; player 1 only plays if the coin comes up Heads, and if so plays first. Player 2 always plays, but cannot distinguish whether the coin came up Heads or Tails. diff --git a/catalog/jakobsen2016/fig1c.efg b/catalog/jakobsen2016/fig1c.efg index f72bf9284a..51bbc6c119 100644 --- a/catalog/jakobsen2016/fig1c.efg +++ b/catalog/jakobsen2016/fig1c.efg @@ -1,5 +1,5 @@ EFG 2 R "Jakobsen, Sorensen, Conitzer (2016) Figure 1(c)" { "Player 1" "Player 2" } -"An example from `JakSorCon16 `_ illustrating a game +"An example from :cite:p:`JakSorCon16` illustrating a game that is not exactly timeable. A coin toss determines the order of players. The player moving second is only offered a bet if the player moving first guessed correctly. Each player receives a payoff of 1 for a correct guess and 0 otherwise. diff --git a/catalog/jakobsen2016/fig3.efg b/catalog/jakobsen2016/fig3.efg index 1429f7481f..430f255594 100644 --- a/catalog/jakobsen2016/fig3.efg +++ b/catalog/jakobsen2016/fig3.efg @@ -1,5 +1,5 @@ EFG 2 R "Jakobsen, Sorensen, Conitzer (2016) Figure 3" { "Player 1" "Player 2" "Player 3" "Player 4" } -"An example from `JakSorCon16 `_ illustrating +"An example from :cite:p:`JakSorCon16` illustrating the extensive form of an onion routing game that is not exactly timeable. Chance chooses a sender by drawing a signal from {0, 1, 2, 3} with equal probability. The sender does not make a strategic choice; only the two intermediary players act. diff --git a/catalog/myerson1991/fig2_1.efg b/catalog/myerson1991/fig2_1.efg index 3c45dedee1..a42b9eff99 100644 --- a/catalog/myerson1991/fig2_1.efg +++ b/catalog/myerson1991/fig2_1.efg @@ -1,12 +1,12 @@ EFG 2 R "A simple Poker game" { "Fred" "Alice" } -"This is a simple game of one-card poker from `Mye91 `_, used as the +"This is a simple game of one-card poker from :cite:p:`Mye91`, used as the introductory example for game models. Note that as specified in the text, the game has the slightly unusual feature that folding with the high (red) card results in the player winning rather than losing. -See also `Rei2008 `_ +See also :cite:p:`Rei2008` Another one-card poker game where folding with the high card is a loss rather than a win. " diff --git a/catalog/myerson1991/fig4_2.efg b/catalog/myerson1991/fig4_2.efg index d7b503beaa..ff391a1a50 100644 --- a/catalog/myerson1991/fig4_2.efg +++ b/catalog/myerson1991/fig4_2.efg @@ -1,5 +1,5 @@ EFG 2 R "Myerson (1991) Figure 4.2" { "Player 1" "Player 2" } -"An example from `Mye91 `_ which illustrates the distinction between +"An example from :cite:p:`Mye91` which illustrates the distinction between an equilibrium of an extensive form game and an equilibrium of its (multi)agent representation. The actions B1, Z1, and W2 form a behavior profile which is an equilibrium in the (multi)agent diff --git a/catalog/nau2004/sec3.nfg b/catalog/nau2004/sec3.nfg index bc203d6b2b..812ca8fad4 100644 --- a/catalog/nau2004/sec3.nfg +++ b/catalog/nau2004/sec3.nfg @@ -3,7 +3,7 @@ NFG 1 R "Battle of the Sexes" { "Player 1" "Player 2" } { { "Top" "Bottom" } { "Left" "Right" } } -"The coordination game known as Battle of the Sexes (section 3 of `Nau2004 `_). Has three Nash equilibria: two pure-strategy (TL and BR) and one completely mixed." +"The coordination game known as Battle of the Sexes (section 3 of :cite:p:`Nau2004`). Has three Nash equilibria: two pure-strategy (TL and BR) and one completely mixed." { { "" 3, 2 } diff --git a/catalog/nau2004/sec4.nfg b/catalog/nau2004/sec4.nfg index 57b754b6f2..0a3ae1b87d 100644 --- a/catalog/nau2004/sec4.nfg +++ b/catalog/nau2004/sec4.nfg @@ -4,7 +4,7 @@ NFG 1 R "Three-player game with a unique Nash solution in irrational strategies" { "Left" "Right" } { "1" "2" } } -"A three-player game with a unique Nash equilibrium in irrational mixed strategies (section 4 of `Nau2004 `_). The correlated equilibrium polytope is seven-dimensional with 33 vertices." +"A three-player game with a unique Nash equilibrium in irrational mixed strategies (section 4 of :cite:p:`Nau2004`). The correlated equilibrium polytope is seven-dimensional with 33 vertices." { { "" 3, 0, 2 } diff --git a/catalog/nau2004/sec5.nfg b/catalog/nau2004/sec5.nfg index fa9f40d53f..dadb0507ec 100644 --- a/catalog/nau2004/sec5.nfg +++ b/catalog/nau2004/sec5.nfg @@ -4,7 +4,7 @@ NFG 1 R "Game with a continuum of completely mixed-strategy Nash equilibria" { " { "Left" "Right" } { "1" "2" } } -"A three-player 2x2x2 game with 3 pure, 2 incompletely mixed, and a continuum of completely mixed Nash equilibria (section 5 of `Nau2004 `_). The correlated equilibrium polytope is seven-dimensional with 8 vertices." +"A three-player 2x2x2 game with 3 pure, 2 incompletely mixed, and a continuum of completely mixed Nash equilibria (section 5 of :cite:p:`Nau2004`). The correlated equilibrium polytope is seven-dimensional with 8 vertices." { { "" 0, 0, 2 } diff --git a/catalog/nau2004/sec6.nfg b/catalog/nau2004/sec6.nfg index bb378500ad..68ef9934cb 100644 --- a/catalog/nau2004/sec6.nfg +++ b/catalog/nau2004/sec6.nfg @@ -4,7 +4,7 @@ NFG 1 R "2x2x4 game with Nash equilibria in the relative interior of the correla { "Left" "Right" } { "1" "2" "3" "4" } } -"A three-player 2x2x4 game (section 6 of `Nau2004 `_). The correlated equilibrium polytope is four-dimensional with six vertices. The set of Nash equilibria is a line segment in the relative interior of the polytope." +"A three-player 2x2x4 game (section 6 of :cite:p:`Nau2004`). The correlated equilibrium polytope is four-dimensional with six vertices. The set of Nash equilibria is a line segment in the relative interior of the polytope." { { "" 2, 0, 0 } diff --git a/catalog/reiley2008/fig1.efg b/catalog/reiley2008/fig1.efg index df8c5a4d83..520edb0f7b 100644 --- a/catalog/reiley2008/fig1.efg +++ b/catalog/reiley2008/fig1.efg @@ -1,7 +1,7 @@ EFG 2 R "Stripped-down poker (Reiley et al 2008)" { "Professor" "Student" } -"This is a one-card poker game used in `Rei2008 `_ as a teaching exercise. +"This is a one-card poker game used in :cite:p:`Rei2008` as a teaching exercise. -See also `Mye91 `_ +See also :cite:p:`Mye91` Another one-card poker game with slightly different rules. " diff --git a/catalog/selten1975/fig1.efg b/catalog/selten1975/fig1.efg index 039d50f8f1..ac33bb27d3 100644 --- a/catalog/selten1975/fig1.efg +++ b/catalog/selten1975/fig1.efg @@ -1,5 +1,5 @@ EFG 2 R "Selten's horse (Selten IJGT 1975, Figure 1)" { "Player 1" "Player 2" "Player 3" } -"This is a three-player game presented in `Sel75 `_, commonly referred +"This is a three-player game presented in :cite:p:`Sel75`, commonly referred to as \"Selten's horse\" owing to the layout in which it can be drawn. It is the motivating example for his definition of (trembling-hand) perfect equilibrium, by showing a game that has an equilibrium which diff --git a/catalog/selten1975/fig2.efg b/catalog/selten1975/fig2.efg index 116dadb5dd..c9775a7207 100644 --- a/catalog/selten1975/fig2.efg +++ b/catalog/selten1975/fig2.efg @@ -1,5 +1,5 @@ EFG 2 R "Selten (IJGT 1975) Figure 2" { "Player 1" "Player 2" } -"This is a counterexample presented in `Sel75 `_, to show that extensive and +"This is a counterexample presented in :cite:p:`Sel75`, to show that extensive and normal form concepts of perfectness do not coincide. This game has one perfect equilibrium in the extensive from, but a distinct (pure) strategy equilibrium is also perfect in the normal form. diff --git a/catalog/selten1975/fig3.efg b/catalog/selten1975/fig3.efg index f7364f91b3..309d894116 100644 --- a/catalog/selten1975/fig3.efg +++ b/catalog/selten1975/fig3.efg @@ -1,5 +1,5 @@ EFG 2 R "Selten (IJGT 1975) Figure 3" { "Player 1" "Player 2" "Player 3" } -"This is a counterexample presented in `Sel75 `_, to show that extensive and +"This is a counterexample presented in :cite:p:`Sel75`, to show that extensive and normal form concepts of perfectness do not coincide. Specifically, there are two equilibria which are perfect in the normal form but not perfect in the extensive form. diff --git a/catalog/shapley1974/fig2.nfg b/catalog/shapley1974/fig2.nfg new file mode 100644 index 0000000000..02d31ffbc7 --- /dev/null +++ b/catalog/shapley1974/fig2.nfg @@ -0,0 +1,19 @@ +NFG 1 R "Fig 2 from 'A Note on the Lemke-Howson Algorithm' (Shapley 1974)" { "1" "2" } + +{ { "1" "2" "3" } +{ "1" "2" "3" } +} +"Fig 2 from :cite:p:`Shap74`. This bimatrix game is used to demonstrate the Lemke-Howson algorithm." + +{ +{ "" 2, 3 } +{ "" 0, 0 } +{ "" 3, 0 } +{ "" 2, 0 } +{ "" 3, 3 } +{ "" 0, 0 } +{ "" 0, 2 } +{ "" 0, 2 } +{ "" 1, 1 } +} +1 2 3 4 5 6 7 8 9 diff --git a/catalog/shapley1974/fig3.nfg b/catalog/shapley1974/fig3.nfg new file mode 100644 index 0000000000..d82373984d --- /dev/null +++ b/catalog/shapley1974/fig3.nfg @@ -0,0 +1,23 @@ +NFG 1 R "Fig 3 from 'A Note on the Lemke-Howson Algorithm' (Shapley 1974)" { "1" "2" } + +{ { "1" "2" "3" } +{ "1" "2" "3" } +} +"Fig 3 from :cite:p:`Shap74`. This bimatrix game has a pair of mixed-strategy equilibria +that are inaccessible to the Lemke-Howson algorithm. That is, the two equilibria in this +pair are connected to each other for all dropped labels, and can thus not be reached by +any concatenation of paths from the artifical equilibrium, where the Lemke-Howson algorithm +starts." + +{ +{ "" 0, 0 } +{ "" 2, 3 } +{ "" 3, 0 } +{ "" 3, 2 } +{ "" 2, 2 } +{ "" 0, 0 } +{ "" 0, 3 } +{ "" 0, 0 } +{ "" 1, 1 } +} +1 2 3 4 5 6 7 8 9 diff --git a/catalog/vonstengel2022/fig10.1.efg b/catalog/vonstengel2022/fig10.1.efg index f94d07eaba..af6ccd0205 100644 --- a/catalog/vonstengel2022/fig10.1.efg +++ b/catalog/vonstengel2022/fig10.1.efg @@ -1,9 +1,9 @@ EFG 2 R "Figure 10.1 from von Stengel (2022)" { "I" "II" } " -Figure 10.1 from `vS22 `_. +Figure 10.1 from :cite:p:`vS22`. It is essentially a type of poker game. Its description as a competition between software firms is due to -`TvS02 `_. +:cite:p:`TvS02`. " c "" 1 "" { "1/2" 1/2 "1/2" 1/2 } 0 diff --git a/catalog/vonstengel2022/fig10.12.efg b/catalog/vonstengel2022/fig10.12.efg index 44bcd679b8..16a65e2475 100644 --- a/catalog/vonstengel2022/fig10.12.efg +++ b/catalog/vonstengel2022/fig10.12.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 10.12 from von Stengel (2022)" { "I" "II" } " -Figure 10.12 from `vS22 `_. +Figure 10.12 from :cite:p:`vS22`. It refers to a non-standard version of the Monty Hall problem where the television show host Monty Hall has the option of opening another door without a prize to the contestant (player I), rather than opening such a door all the time. Its purpose is to demonstrate a whole convex set of optimal diff --git a/catalog/vonstengel2022/fig10.5.efg b/catalog/vonstengel2022/fig10.5.efg index 637a9db224..8e4f29c2df 100644 --- a/catalog/vonstengel2022/fig10.5.efg +++ b/catalog/vonstengel2022/fig10.5.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 10.5 from von Stengel (2022)" { "I" "II" } " -Figure 10.5 from `vS22 `_. +Figure 10.5 from :cite:p:`vS22`. Player II has four reduced strategies in this game, compared to eight unreduced strategies. " diff --git a/catalog/vonstengel2022/fig10.7.efg b/catalog/vonstengel2022/fig10.7.efg index d4f9bc1b6f..690b7f49fa 100644 --- a/catalog/vonstengel2022/fig10.7.efg +++ b/catalog/vonstengel2022/fig10.7.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 10.7 from von Stengel (2022)" { "I" "II" } " -Figure 10.7 from `vS22 `_. +Figure 10.7 from :cite:p:`vS22`. It is a game with imperfect recall, but it has the same strategic form as the game in Figure 10.5 from the same book. One equilibrium strategy of player II as computed from the strategic form is not realization diff --git a/catalog/vonstengelforges2008/fig1.efg b/catalog/vonstengelforges2008/fig1.efg index 5c74de79d4..5541be3013 100644 --- a/catalog/vonstengelforges2008/fig1.efg +++ b/catalog/vonstengelforges2008/fig1.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 1 from von Stengel and Forges (2008)" { "1" "2" } " -Figure 1 from `vSF08 `_. +Figure 1 from :cite:p:`vSF08`. It is a kind of a kind of signaling game. " diff --git a/catalog/vonstengelforges2008/fig6.efg b/catalog/vonstengelforges2008/fig6.efg index 8a798de321..a0cc458f19 100644 --- a/catalog/vonstengelforges2008/fig6.efg +++ b/catalog/vonstengelforges2008/fig6.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 6 from von Stengel and Forges (2008)" { "1" "2" } " -Figure 6 from `vSF08 `_. +Figure 6 from :cite:p:`vSF08`. This game has perfect recall and no chance moves, yet it has a circular precedence structure among the information sets of the two players. The payoffs are not important. " diff --git a/catalog/vonstengelforges2008/fig9.efg b/catalog/vonstengelforges2008/fig9.efg index 6850a0865b..779ec01f33 100644 --- a/catalog/vonstengelforges2008/fig9.efg +++ b/catalog/vonstengelforges2008/fig9.efg @@ -1,6 +1,6 @@ EFG 2 R "Figure 9 from von Stengel and Forges (2008)" { "1" "2" } " -Figure 9 from `vSF08 `_. +Figure 9 from :cite:p:`vSF08`. It encodes the SAT formula :math:`x\wedge (\neg x \vee y) \wedge (\neg x \vee \neg y)` (writing $-x$ for :math:`\neg x`). The formula is satisfiable (which here it is not) if and only diff --git a/catalog/watson2013/exercise29_6.efg b/catalog/watson2013/exercise29_6.efg index e1fbc75515..6b38145e6f 100644 --- a/catalog/watson2013/exercise29_6.efg +++ b/catalog/watson2013/exercise29_6.efg @@ -1,5 +1,5 @@ EFG 2 R "Princess Bride signaling game (from Watson)" { "Wesley" "Prince" } -"This game is Exercise 29.6 from Watson `Wat13 `_, based on a scene from +"This game is Exercise 29.6 from Watson :cite:p:`Wat13`, based on a scene from the Rob Reiner film, The Princess Bride: Wesley (the protagonist) confronts the evil prince Humperdinck. Wesley diff --git a/catalog/watson2013/fig29_1.efg b/catalog/watson2013/fig29_1.efg index 6b08714b21..63b0651743 100644 --- a/catalog/watson2013/fig29_1.efg +++ b/catalog/watson2013/fig29_1.efg @@ -1,6 +1,6 @@ EFG 2 R "Job-market signaling game (version from Watson)" { "You" "Firm" } "This is a version of Spence's classic model of education being a job-market -signal, as presented in Figure 29.1 of Watson `Wat13 `_. +signal, as presented in Figure 29.1 of Watson :cite:p:`Wat13`. " c "" 1 "" { "High" 1/3 "Low" 2/3 } 0 diff --git a/doc/algorithms.rst b/doc/algorithms.rst index 6d1b179629..0f4b332601 100644 --- a/doc/algorithms.rst +++ b/doc/algorithms.rst @@ -36,9 +36,9 @@ enummixed Computes Nash equilibria using extreme point enumeration. In a two-player strategic game, the set of Nash equilibria can be expressed as the union of convex sets. -This program generates all the extreme points of those convex sets. (Mangasarian [Man64]_) +This program generates all the extreme points of those convex sets. (Mangasarian :cite:p:`Man64`) This is a superset of the points generated by the path-following procedure of Lemke and Howson (see :ref:`lcp`). -It was shown by Shapley [Sha74]_ that there are equilibria not accessible via the method in :ref:`lcp`, whereas the output of +It was shown by Shapley :cite:p:`Shap74` that there are equilibria not accessible via the method in :ref:`lcp`, whereas the output of :program:`enummixed` is guaranteed to return all the extreme points. .. _enumpoly: @@ -61,7 +61,7 @@ polynomials, the subdivision constructed is such that each cell contains either no equilibria or exactly one equilibrium. For strategic games, the program searches supports in the order proposed -by Porter, Nudelman, and Shoham [PNS04]_. For two-player games, this +by Porter, Nudelman, and Shoham :cite:p:`PNS04`. For two-player games, this prioritises supports for which both players have the same number of strategies. For games with three or more players, this prioritises supports which have the fewest strategies in total. For many classes @@ -89,7 +89,7 @@ lp Computes a Nash equilibrium in a two-player game by solving a linear program. For extensive games, the program uses the sequence form formulation of Koller, Megiddo, and von -Stengel [KolMegSte94]_. +Stengel :cite:p:`KolMegSte94`. While the set of equilibria in a two-player constant-sum strategic game is convex, this method will only identify one of the extreme @@ -103,15 +103,15 @@ lcp Computes Nash equilibria of a two-player game by finding solutions to a linear complementarity problem. For extensive games, the program uses the sequence form representation of the extensive game, as defined by -Koller, Megiddo, and von Stengel [KolMegSte94]_, and applies the +Koller, Megiddo, and von Stengel :cite:p:`KolMegSte94`, and applies the algorithm developed by Lemke. For strategic games, the program uses the method of Lemke and Howson -[LemHow64]_. In this case, the method will find all "accessible" +:cite:p:`LemHow64`. In this case, the method will find all "accessible" equilibria, i.e., those that can be found as concatenations of Lemke-Howson paths that start at the artificial equilibrium. There exist strategic-form games for which some equilibria cannot be found -by this method, i.e., some equilibria are inaccessible; see Shapley [Sha74]_. +by this method, i.e., some equilibria are inaccessible; see Shapley :cite:p:`Shap74`. In a two-player strategic game, the set of Nash equilibria can be expressed as the union of convex sets. This program will find extreme points @@ -142,8 +142,8 @@ logit Computes the principal branch of the (logit) quantal response correspondence. -The method is based on the procedure described in Turocy [Tur05]_ for -strategic games and Turocy [Tur10]_ for extensive games. +The method is based on the procedure described in Turocy :cite:p:`Tur05` for +strategic games and Turocy :cite:p:`Tur10` for extensive games. It uses standard path-following methods (as described in Allgower and Georg's "Numerical Continuation Methods") to adaptively trace the principal branch of the correspondence @@ -161,7 +161,7 @@ convergence of Newton's method in the corrector step. If the convergence is fast, the step size is adjusted upward (accelerated); if it is slow, the step size is decreased (decelerated). The maximum acceleration (or deceleration) can be set as an argument. As described in -Turocy [Tur05]_, this acceleration helps to +Turocy :cite:p:`Tur05`, this acceleration helps to efficiently trace the correspondence when it reaches its asymptotic phase for large values of the precision parameter lambda. @@ -179,7 +179,7 @@ Computes approximations to Nash equilibria using a simplicial subdivision approach. This program implements the algorithm of van der Laan, Talman, and van -Der Heyden [VTH87]_. The algorithm proceeds by constructing a triangulated grid +Der Heyden :cite:p:`VTH87`. The algorithm proceeds by constructing a triangulated grid over the space of mixed strategy profiles, and uses a path-following method to compute an approximate fixed point. This approximate fixed point can then be used as a starting point on a refinement of the @@ -194,7 +194,7 @@ ipa Computes Nash equilibria using an iterated polymatrix approximation approach -developed by Govindan and Wilson [GovWil04]_. +developed by Govindan and Wilson :cite:p:`GovWil04`. This program is based on the `Gametracer 0.2 `_ implementation by Ben Blum and Christian Shelton. @@ -211,7 +211,7 @@ gnm Computes Nash equilibria using a global Newton method approach developed by Govindan -and Wilson [GovWil03]_. This program is based on the +and Wilson :cite:p:`GovWil03`. This program is based on the `Gametracer 0.2 `_ implementation by Ben Blum and Christian Shelton. diff --git a/doc/biblio.rst b/doc/biblio.rst index 7a20e9ebb6..a50a6fcce5 100644 --- a/doc/biblio.rst +++ b/doc/biblio.rst @@ -5,175 +5,34 @@ Bibliography .. note:: - To reference an entry in this bibliography, use the format ``[key]_``, for example, ``[Mye91]_`` will link to the Myerson (1991) textbook entry. + To reference an entry in this bibliography, use the format ``:cite:p:`key```, for example, ``:cite:p:`Mye91``` will link to the Myerson (1991) textbook entry. Articles on computation of equilibria ------------------------------------- -.. [BlaTur23] Bland, J. R. and Turocy, T. L. 2023, - 'Quantal response equilibrium as a structural model for estimation: the - missing manual', *SSRN Working Paper*, no. 4425515. - -.. [Eav71] Eaves, B. C. 1971, 'The linear complementarity problem', - *Management Science*, vol. 17, pp. 612-634. - -.. [GovWil03] Govindan, S. and Wilson, R. 2003, - 'A global Newton method to compute Nash equilibria', - *Journal of Economic Theory*, vol. 110, no. 1, pp. 65-86. - -.. [GovWil04] Govindan, S. and Wilson, R. 2004, - 'Computing Nash equilibria by iterated polymatrix approximation', - *Journal of Economic Dynamics and Control*, vol. 28, pp. 1229-1241. - -.. [Jiang11] Jiang, A. X., Leyton-Brown, K. and Bhat, N. 2011, - 'Action-graph games', *Games and Economic Behavior*, vol. 71, no. 1, - pp. 141-173. - -.. [KolMegSte94] Koller, D., Megiddo, N. and von Stengel, B. 1996, - 'Efficient computation of equilibria for extensive two-person games', - *Games and Economic Behavior*, vol. 14, pp. 247-259. - -.. [LemHow64] Lemke, C. E. and Howson, J. T. 1964, - 'Equilibrium points of bimatrix games', - *Journal of the Society of Industrial and Applied Mathematics*, - vol. 12, pp. 413-423. - -.. [Man64] Mangasarian, O. 1964, 'Equilibrium points in bimatrix games', - *Journal of the Society for Industrial and Applied Mathematics*, - vol. 12, pp. 778-780. - -.. [McK91] McKelvey, R. 1991, 'A Liapunov function for Nash equilibria', - California Institute of Technology. - -.. [McKMcL96] McKelvey, R. and McLennan, A. 1996, - 'Computation of equilibria in finite games', in Amman, H., Kendrick, - D. and Rust, J. (eds), *Handbook of Computational Economics*, Elsevier, - pp. 87-142. - -.. [Nau2004] Nau, Robert, Gomez Canovas, Sabrina, and Hansen, Pierre (2004). - 'On the geometry of Nash equilibria and correlated equilibria', - *International Journal of Game Theory*, vol. 32, pp. 443-453. - -.. [PNS04] Porter, R., Nudelman, E. and Shoham, Y. 2004, - 'Simple search methods for finding a Nash equilibrium', - *Games and Economic Behavior*, vol. 63, pp. 664-662. - -.. [Ros71] Rosenmuller, J. 1971, - 'On a generalization of the Lemke-Howson algorithm to noncooperative - n-person games', *SIAM Journal of Applied Mathematics*, vol. 21, - pp. 73-79. - -.. [Sha74] Shapley, L. 1974, 'A note on the Lemke-Howson algorithm', - *Mathematical Programming Study*, vol. 1, pp. 175-189. - -.. [Tur05] Turocy, T. L. 2005, - 'A dynamic homotopy interpretation of the logistic quantal response - equilibrium correspondence', *Games and Economic Behavior*, vol. 51, - pp. 243-263. - -.. [Tur10] Turocy, T. L. 2010, - 'Using quantal response to compute Nash and sequential equilibria', - *Economic Theory*, vol. 42, pp. 255-269. - -.. [VTH87] van der Laan, G., Talman, A. J. J. and van Der Heyden, L. 1987, - 'Simplicial variable dimension algorithms for solving the nonlinear - complementarity problem on a product of unit simplices using a general - labelling', *Mathematics of Operations Research*, vol. 12, pp. 377-397. - -.. [vSF08] von Stengel, B. and Forges, F., 2008, - 'Extensive-form correlated equilibrium: Definition and computational complexity', - *Mathematics of Operations Research*, vol. 33, pp. 1002–1022. - -.. [Wil71] Wilson, R. 1971, 'Computing equilibria of n-person games', - *SIAM Applied Math*, vol. 21, pp. 80-87. - -.. [Yam93] Yamamoto, Y. 1993, - 'A path-following procedure to find a proper equilibrium of finite - games', *International Journal of Game Theory*, vol. 22, pp. 249–259. +.. bibliography:: references.bib + :style: keystyle + :filter: category == "articles_equilibria" + :all: General game theory articles and texts -------------------------------------- -.. [Bag1995] Bagwell, K. 1995, 'Commitment and observability in games', - *Games and Economic Behavior*, vol. 8, pp. 271-280. - -.. [Gil97] Gilboa, I. 1997, - 'A Comment on the Absent-Minded Driver Paradox', - *Games and Economic Behavior*, vol. 20, pp. 25-30. - -.. [Harsanyi1967a] Harsanyi, J. 1967, - 'Games of incomplete information played by Bayesian players I', - *Management Science*, vol. 14, pp. 159-182. - -.. [Harsanyi1967b] Harsanyi, J. 1967, - 'Games of incomplete information played by Bayesian players II', - *Management Science*, vol. 14, pp. 320-334. - -.. [Harsanyi1968] Harsanyi, J. 1968, - 'Games of incomplete information played by Bayesian players III', - *Management Science*, vol. 14, pp. 486-502. - -.. [JakSorCon16] Jakobsen, S. K, Sørensen, T. B. and Conitzer, V. 2016, - 'Timeability of Extensive-Form Games', - *Proceedings of the Seventh Innovations in Theoretical Computer Science Conference*, - pp. 191-199. - -.. [KreWil82] Kreps, D. and Wilson, R. 1982, 'Sequential equilibria', - *Econometrica*, vol. 50, pp. 863-894. - -.. [Kre90] Kreps, D. 1990, *A Course in Microeconomic Theory*, - Princeton University Press. - -.. [McKPal95] McKelvey, R. and Palfrey, T. 1995, - 'Quantal response equilibria for normal form games', - *Games and Economic Behavior*, vol. 10, pp. 6-38. - -.. [McKPal98] McKelvey, R. and Palfrey, T. 1998, - 'Quantal response equilibria for extensive form games', - *Experimental Economics*, vol. 1, pp. 9-41. - -.. [Mye78] Myerson, R. 1978, - 'Refinements of the Nash equilibrium concept', - *International Journal of Game Theory*, vol. 7, pp. 73-80. - -.. [Nas50] Nash, J. 1950, 'Equilibrium points in n-person games', - *Proceedings of the National Academy of Sciences*, vol. 36, - pp. 48-49. - -.. [Och95] Ochs, J. 1995, - 'Games with unique, mixed strategy equilibria: an experimental study', - *Games and Economic Behavior*, vol. 10, pp. 202-217. - -.. [Rei2008] Reiley, D. H., Urbancic, M. B. and Walker, M. 2008, - 'Stripped-down poker: a classroom game with signaling and bluffing', - *The Journal of Economic Education*, vol. 4, pp. 323-341. - -.. [Sel75] Selten, R. 1975, - 'Reexamination of the perfectness concept for equilibrium points in - extensive games', *International Journal of Game Theory*, vol. 4, - pp. 25-55. - -.. [vanD83] van Damme, E. 1983, *Stability and Perfection of Nash - Equilibria*, Springer-Verlag, Berlin. +.. bibliography:: references.bib + :style: keystyle + :filter: category == "articles_general" + :all: Textbooks and general references -------------------------------- -.. [Mye91] Myerson, R. 1991, *Game Theory: Analysis of Conflict*, - Harvard University Press. - -.. [TvS02] Turocy, T.L. and von Stengel, B., 2002, - 'Game theory', in: *Encyclopedia of Information Systems*, vol. 2, pp. 403–420, - Elsevier Science. - -.. [vS22] von Stengel, B., 2022, *Game Theory Basics*, - Cambridge University Press. - -.. [Wat13] Watson, J. 2013, *Strategy: An Introduction to Game Theory*, - 3rd edn, W. W. Norton & Company. +.. bibliography:: references.bib + :style: keystyle + :filter: category == "textbooks" + :all: diff --git a/doc/conf.py b/doc/conf.py index f3926f47db..7d2f1aec9f 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -1,4 +1,21 @@ import pathlib +import re + +import pybtex.plugin +from pybtex.richtext import Symbol, Text +from pybtex.style.formatting import toplevel +from pybtex.style.formatting.alpha import Style as AlphaStyle +from pybtex.style.labels import BaseLabelStyle +from pybtex.style.template import ( + field, + first_of, + join, + optional, + optional_field, + sentence, + tag, + words, +) # # Gambit documentation build configuration file, created by @@ -31,9 +48,159 @@ "nbsphinx", "sphinxcontrib.tikz", "jupyter_sphinx", - "jupyter_sphinx", + "sphinxcontrib.bibtex", ] + +# BibTeX configuration +def dashify(text): + dash_re = re.compile(r"-+") + return Text(Symbol("ndash")).join(text.split(dash_re)) + + +pages = field("pages", apply_func=dashify) + +bibtex_bibfiles = ["references.bib"] + + +class KeyLabelStyle(BaseLabelStyle): + """Custom label style that uses the BibTeX entry key as the citation label.""" + + def format_labels(self, sorted_entries): + for entry in sorted_entries: + yield entry.key + + +class CustomAlphaStyle(AlphaStyle): + """Custom formatting style that uses KeyLabelStyle for labels.""" + + default_label_style = "keystyle" + default_name_style = "lastfirst" + + def format_author_or_editor(self, e, as_sentence=False): + return first_of[ + optional[self.format_names("author", as_sentence=as_sentence)], + optional[self.format_editor(e, as_sentence=as_sentence)], + ] + + def format_editor(self, e, as_sentence=True): + editors = self.format_names("editor", as_sentence=False) + if "editor" not in e.persons: + return editors + word = "(eds)" if len(e.persons["editor"]) > 1 else "(ed.)" + result = join(sep=" ")[editors, word] + if as_sentence: + return sentence[result] + return result + + def get_article_template(self, e): + return toplevel[ + sentence[ + join(sep=", ")[ + join(sep=" ")[ + self.format_names("author", as_sentence=False), + field("year"), + ], + join["\u2018", field("title"), "\u2019"], + tag("em")[field("journal")], + optional[words["vol.", field("volume")]], + optional[words["no.", field("number")]], + optional[words["pp.", pages]], + ] + ], + sentence[optional_field("note")], + self.format_web_refs(e), + ] + + def get_book_template(self, e): + return toplevel[ + sentence[ + join(sep=", ")[ + join(sep=" ")[ + self.format_author_or_editor(e, as_sentence=False), + field("year"), + ], + tag("em")[field("title")], + optional[words[field("edition"), "edn"]], + field("publisher"), + optional_field("address"), + ] + ], + sentence[optional_field("note")], + self.format_web_refs(e), + ] + + def get_incollection_template(self, e): + return toplevel[ + sentence[ + join(sep=", ")[ + join(sep=" ")[ + self.format_names("author", as_sentence=False), + field("year"), + ], + join["\u2018", field("title"), "\u2019"], + words[ + "in", + join(sep=", ")[ + optional[self.format_editor(e, as_sentence=False)], + tag("em")[field("booktitle")], + optional[words["vol.", field("volume")]], + ], + ], + field("publisher"), + optional_field("address"), + optional[words["pp.", pages]], + ] + ], + sentence[optional_field("note")], + self.format_web_refs(e), + ] + + def get_inproceedings_template(self, e): + return toplevel[ + sentence[ + join(sep=", ")[ + join(sep=" ")[ + self.format_names("author", as_sentence=False), + field("year"), + ], + join["\u2018", field("title"), "\u2019"], + tag("em")[field("booktitle")], + optional[words["pp.", pages]], + ] + ], + sentence[optional_field("note")], + self.format_web_refs(e), + ] + + def get_techreport_template(self, e): + type_and_number = optional[ + words[ + first_of[optional_field("type"), "Technical Report"], + field("number"), + ] + ] + return toplevel[ + sentence[ + join(sep=", ")[ + join(sep=" ")[ + self.format_names("author", as_sentence=False), + field("year"), + ], + join["\u2018", field("title"), "\u2019"], + type_and_number, + field("institution"), + optional_field("address"), + ] + ], + sentence[optional_field("note")], + self.format_web_refs(e), + ] + + +pybtex.plugin.register_plugin("pybtex.style.labels", "keystyle", KeyLabelStyle) +pybtex.plugin.register_plugin("pybtex.style.formatting", "keystyle", CustomAlphaStyle) + # IPython directive configuration ipython_execlines = ["import pygambit as gbt", "import os", "import sys"] ipython_savefig_dir = "savefig" diff --git a/doc/developer.catalog.rst b/doc/developer.catalog.rst index eb9dcfa5c4..bbed7b3e41 100644 --- a/doc/developer.catalog.rst +++ b/doc/developer.catalog.rst @@ -26,12 +26,12 @@ Currently supported representations are: 1. **Create or edit a game file:** Use either :ref:`pygambit `, the Gambit :ref:`CLI ` or :ref:`GUI ` to create (or edit) and save game in a valid representation :ref:`format `. - Make sure the game includes a description, with any citations referencing the :ref:`bibliography `. - Use a full link to the bibliography entry, so the link can be accessed from the file directly, as well as being rendered in the docs e.g. ```Rei2008 `_`` + Make sure the game includes a description, with any citations referencing the :ref:`bibliography ` using the ``:cite:p:`key``` format, e.g. ``:cite:p:`Rei2008```. .. important:: - If no bibliography entry exists, you should add one by editing `doc/biblio.rst`. + If no bibliography entry exists, you should add one. For instructions, + see :ref:`updating-bibliography`. 2. **Add the game(s) to the repo:** diff --git a/doc/developer.contributing.rst b/doc/developer.contributing.rst index ab8851e37a..72b35612e8 100644 --- a/doc/developer.contributing.rst +++ b/doc/developer.contributing.rst @@ -211,6 +211,32 @@ To submit a tutorial for inclusion in the Gambit documentation, please follow th 4. *[Optional]* If your tutorial requires additional dependencies not already listed in the ``doc`` list under ``[project.optional-dependencies]`` inside ``pyproject.toml``, please add them to the file. +.. _updating-bibliography: + +Updating the Bibliography +^^^^^^^^^^^^^^^^^^^^^^^^^ + +The bibliography entries are stored in BibTeX format in the file `doc/references.bib`. +To add a new entry: + +1. Open `doc/references.bib` and add the BibTeX citation. +2. In your BibTeX entry, include a ``category`` field to specify where the reference + should appear on the bibliography page. The allowed categories are: + + * ``articles_equilibria`` for articles on computation of equilibria. + * ``articles_general`` for general game theory articles and texts. + * ``textbooks`` for textbooks and general references. + +3. To cite the entry in documentation or game files, use the format ``:cite:p:`key```, + where ``key`` is the BibTeX key of your entry. + +.. note:: + + The bibliography is formatted using a custom Harvard referencing style. + This style and its formatting templates are defined within ``doc/conf.py``. + A custom Python implementation is used instead of a traditional ``.bst`` + file because `.bst` styles output raw LaTeX formatting, which cannot be + rendered to HTML by Sphinx. Recognising contributions ------------------------- diff --git a/doc/gui.nash.rst b/doc/gui.nash.rst index d0e57b6a1d..1891dad4ce 100644 --- a/doc/gui.nash.rst +++ b/doc/gui.nash.rst @@ -141,9 +141,9 @@ Computing quantal response equilibria ------------------------------------- Gambit provides methods for computing the logit quantal response -equilibrium correspondence for extensive games [McKPal98]_ -and strategic games [McKPal95]_, -using the tracing method of [Tur05]_. +equilibrium correspondence for extensive games :cite:p:`McKPal98` +and strategic games :cite:p:`McKPal95`, +using the tracing method of :cite:p:`Tur05`. .. image:: screens/qre.* :width: 33% diff --git a/doc/references.bib b/doc/references.bib new file mode 100644 index 0000000000..a7453ca1e8 --- /dev/null +++ b/doc/references.bib @@ -0,0 +1,394 @@ +@article{BlaTur23, + author = {Bland, J. R. and Turocy, T. L.}, + title = {Quantal response equilibrium as a structural model for estimation: the missing manual}, + journal = {SSRN Working Paper}, + number = {4425515}, + year = {2023}, + category = {articles_equilibria} +} + +@article{Eav71, + author = {Eaves, B. C.}, + title = {The linear complementarity problem}, + journal = {Management Science}, + volume = {17}, + pages = {612--634}, + year = {1971}, + category = {articles_equilibria} +} + +@article{GovWil03, + author = {Govindan, S. and Wilson, R.}, + title = {A global {N}ewton method to compute {N}ash equilibria}, + journal = {Journal of Economic Theory}, + volume = {110}, + number = {1}, + pages = {65--86}, + year = {2003}, + category = {articles_equilibria} +} + +@article{GovWil04, + author = {Govindan, S. and Wilson, R.}, + title = {Computing {N}ash equilibria by iterated polymatrix approximation}, + journal = {Journal of Economic Dynamics and Control}, + volume = {28}, + pages = {1229--1241}, + year = {2004}, + category = {articles_equilibria} +} + +@article{Jiang11, + author = {Jiang, A. X. and Leyton-Brown, K. and Bhat, N.}, + title = {Action-graph games}, + journal = {Games and Economic Behavior}, + volume = {71}, + number = {1}, + pages = {141--173}, + year = {2011}, + category = {articles_equilibria} +} + +@article{KolMegSte94, + author = {Koller, D. and Megiddo, N. and von Stengel, B.}, + title = {Efficient computation of equilibria for extensive two-person games}, + journal = {Games and Economic Behavior}, + volume = {14}, + pages = {247--259}, + year = {1996}, + category = {articles_equilibria} +} + +@article{LemHow64, + author = {Lemke, C. E. and Howson, J. T.}, + title = {Equilibrium points of bimatrix games}, + journal = {Journal of the Society of Industrial and Applied Mathematics}, + volume = {12}, + pages = {413--423}, + year = {1964}, + category = {articles_equilibria} +} + +@article{Man64, + author = {Mangasarian, O.}, + title = {Equilibrium points in bimatrix games}, + journal = {Journal of the Society for Industrial and Applied Mathematics}, + volume = {12}, + pages = {778--780}, + year = {1964}, + category = {articles_equilibria} +} + +@techreport{McK91, + author = {McKelvey, R.}, + title = {A {L}iapunov function for {N}ash equilibria}, + institution = {California Institute of Technology}, + year = {1991}, + category = {articles_equilibria} +} + +@incollection{McKMcL96, + author = {McKelvey, R. and McLennan, A.}, + title = {Computation of equilibria in finite games}, + booktitle = {Handbook of Computational Economics}, + editor = {Amman, H. and Kendrick, D. and Rust, J.}, + publisher = {Elsevier}, + pages = {87--142}, + year = {1996}, + category = {articles_equilibria} +} + +@article{Nau2004, + author = {Nau, Robert and Gomez Canovas, Sabrina and Hansen, Pierre}, + title = {On the geometry of {N}ash equilibria and correlated equilibria}, + journal = {International Journal of Game Theory}, + volume = {32}, + pages = {443--453}, + year = {2004}, + category = {articles_equilibria} +} + +@article{PNS04, + author = {Porter, R. and Nudelman, E. and Shoham, Y.}, + title = {Simple search methods for finding a {N}ash equilibrium}, + journal = {Games and Economic Behavior}, + volume = {63}, + pages = {664--662}, + year = {2004}, + category = {articles_equilibria} +} + +@article{Ros71, + author = {Rosenmuller, J.}, + title = {On a generalization of the {L}emke-{H}owson algorithm to noncooperative n-person games}, + journal = {SIAM Journal of Applied Mathematics}, + volume = {21}, + pages = {73--79}, + year = {1971}, + category = {articles_equilibria} +} + +@article{Tur05, + author = {Turocy, T. L.}, + title = {A dynamic homotopy interpretation of the logistic quantal response equilibrium correspondence}, + journal = {Games and Economic Behavior}, + volume = {51}, + pages = {243--263}, + year = {2005}, + category = {articles_equilibria} +} + +@article{Tur10, + author = {Turocy, T. L.}, + title = {Using quantal response to compute {N}ash and sequential equilibria}, + journal = {Economic Theory}, + volume = {42}, + pages = {255--269}, + year = {2010}, + category = {articles_equilibria} +} + +@article{VTH87, + author = {van der Laan, G. and Talman, A. J. J. and van Der Heyden, L.}, + title = {Simplicial variable dimension algorithms for solving the nonlinear complementarity problem on a product of unit simplices using a general labelling}, + journal = {Mathematics of Operations Research}, + volume = {12}, + pages = {377--397}, + year = {1987}, + category = {articles_equilibria} +} + +@article{vSF08, + author = {von Stengel, B. and Forges, F.}, + title = {Extensive-form correlated equilibrium: {D}efinition and computational complexity}, + journal = {Mathematics of Operations Research}, + volume = {33}, + pages = {1002--1022}, + year = {2008}, + category = {articles_equilibria} +} + +@article{Wil71, + author = {Wilson, R.}, + title = {Computing equilibria of n-person games}, + journal = {SIAM Applied Math}, + volume = {21}, + pages = {80--87}, + year = {1971}, + category = {articles_equilibria} +} + +@article{Yam93, + author = {Yamamoto, Y.}, + title = {A path-following procedure to find a proper equilibrium of finite games}, + journal = {International Journal of Game Theory}, + volume = {22}, + pages = {249--259}, + year = {1993}, + category = {articles_equilibria} +} + +@article{Bag1995, + author = {Bagwell, K.}, + title = {Commitment and observability in games}, + journal = {Games and Economic Behavior}, + volume = {8}, + pages = {271--280}, + year = {1995}, + category = {articles_general} +} + +@article{Gil97, + author = {Gilboa, I.}, + title = {A Comment on the Absent-Minded Driver Paradox}, + journal = {Games and Economic Behavior}, + volume = {20}, + pages = {25--30}, + year = {1997}, + category = {articles_general} +} + +@article{Harsanyi1967a, + author = {Harsanyi, J.}, + title = {Games of incomplete information played by {B}ayesian players {I}}, + journal = {Management Science}, + volume = {14}, + pages = {159--182}, + year = {1967}, + category = {articles_general} +} + +@article{Harsanyi1967b, + author = {Harsanyi, J.}, + title = {Games of incomplete information played by {B}ayesian players {II}}, + journal = {Management Science}, + volume = {14}, + pages = {320--334}, + year = {1967}, + category = {articles_general} +} + +@article{Harsanyi1968, + author = {Harsanyi, J.}, + title = {Games of incomplete information played by {B}ayesian players {III}}, + journal = {Management Science}, + volume = {14}, + pages = {486--502}, + year = {1968}, + category = {articles_general} +} + +@inproceedings{JakSorCon16, + author = {Jakobsen, S. K. and S{\o}rensen, T. B. and Conitzer, V.}, + title = {Timeability of Extensive-Form Games}, + booktitle = {Proceedings of the Seventh Innovations in Theoretical Computer Science Conference}, + pages = {191--199}, + year = {2016}, + category = {articles_general} +} + +@article{KreWil82, + author = {Kreps, D. and Wilson, R.}, + title = {Sequential equilibria}, + journal = {Econometrica}, + volume = {50}, + pages = {863--894}, + year = {1982}, + category = {articles_general} +} + +@book{Kre90, + author = {Kreps, D.}, + title = {A Course in Microeconomic Theory}, + publisher = {Princeton University Press}, + year = {1990}, + category = {articles_general} +} + +@article{McKPal95, + author = {McKelvey, R. and Palfrey, T.}, + title = {Quantal response equilibria for normal form games}, + journal = {Games and Economic Behavior}, + volume = {10}, + pages = {6--38}, + year = {1995}, + category = {articles_general} +} + +@article{McKPal98, + author = {McKelvey, R. and Palfrey, T.}, + title = {Quantal response equilibria for extensive form games}, + journal = {Experimental Economics}, + volume = {1}, + pages = {9--41}, + year = {1998}, + category = {articles_general} +} + +@article{Mye78, + author = {Myerson, R.}, + title = {Refinements of the {N}ash equilibrium concept}, + journal = {International Journal of Game Theory}, + volume = {7}, + pages = {73--80}, + year = {1978}, + category = {articles_general} +} + +@article{Nas50, + author = {Nash, J.}, + title = {Equilibrium points in n-person games}, + journal = {Proceedings of the National Academy of Sciences}, + volume = {36}, + pages = {48--49}, + year = {1950}, + category = {articles_general} +} + +@article{Och95, + author = {Ochs, J.}, + title = {Games with unique, mixed strategy equilibria: an experimental study}, + journal = {Games and Economic Behavior}, + volume = {10}, + pages = {202--217}, + year = {1995}, + category = {articles_general} +} + +@article{Rei2008, + author = {Reiley, D. H. and Urbancic, M. B. and Walker, M.}, + title = {Stripped-down poker: a classroom game with signaling and bluffing}, + journal = {The Journal of Economic Education}, + volume = {4}, + pages = {323--341}, + year = {2008}, + category = {articles_general} +} + +@article{Sel75, + author = {Selten, R.}, + title = {Reexamination of the perfectness concept for equilibrium points in extensive games}, + journal = {International Journal of Game Theory}, + volume = {4}, + pages = {25--55}, + year = {1975}, + category = {articles_general} +} + +@book{vanD83, + author = {van Damme, E.}, + title = {Stability and Perfection of {N}ash Equilibria}, + publisher = {Springer-Verlag}, + address = {Berlin}, + year = {1983}, + category = {articles_general} +} + +@book{Mye91, + author = {Myerson, R.}, + title = {Game Theory: Analysis of Conflict}, + publisher = {Harvard University Press}, + year = {1991}, + category = {textbooks} +} + +@incollection{TvS02, + author = {Turocy, T. L. and von Stengel, B.}, + title = {Game theory}, + booktitle = {Encyclopedia of Information Systems}, + volume = {2}, + publisher = {Elsevier Science}, + pages = {403--420}, + year = {2002}, + category = {textbooks} +} + +@book{vS22, + author = {von Stengel, B.}, + title = {Game Theory Basics}, + publisher = {Cambridge University Press}, + year = {2022}, + category = {textbooks} +} + +@book{Wat13, + author = {Watson, Joel}, + title = {Strategy: An Introduction to Game Theory}, + edition = {3rd}, + publisher = {W. W. Norton \& Company}, + year = {2013}, + category = {textbooks} +} + + +@inbook{Shap74, + author = {Shapley, L. S.}, + editor = {Balinski, M. L.}, + title = {A note on the Lemke-Howson algorithm}, + booktitle = {Pivoting and Extension: Mathematical Programming Studies}, + volume = {1}, + year = {1974}, + publisher = {Springer Berlin Heidelberg}, + pages = {175--189}, + category = {articles_equilibria} +} diff --git a/doc/tools.enummixed.rst b/doc/tools.enummixed.rst index fff7149e98..c9f3d28b38 100644 --- a/doc/tools.enummixed.rst +++ b/doc/tools.enummixed.rst @@ -49,7 +49,7 @@ See the :ref:`algorithm description ` for full details. Computing the equilibria, in mixed strategies, of -the reduced strategic form of the example in Figure 2 of [Sel75]_:: +the reduced strategic form of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-enummixed catalog/selten1975/fig2.efg Compute Nash equilibria by enumerating extreme points diff --git a/doc/tools.enumpoly.rst b/doc/tools.enumpoly.rst index d8677041ff..d69c41c997 100644 --- a/doc/tools.enumpoly.rst +++ b/doc/tools.enumpoly.rst @@ -73,7 +73,7 @@ support of some set of equilibria. singular supports are identified with the label "singular." By default, no information about supports is printed. -Computing equilibria of the example in Figure 1 of [Sel75]_, sometimes called +Computing equilibria of the example in Figure 1 of :cite:p:`Sel75`, sometimes called "Selten's horse":: $ gambit-enumpoly -S catalog/selten1975/fig1.efg diff --git a/doc/tools.enumpure.rst b/doc/tools.enumpure.rst index c735edbf2b..582c5036f8 100644 --- a/doc/tools.enumpure.rst +++ b/doc/tools.enumpure.rst @@ -52,7 +52,7 @@ See the :ref:`algorithm description ` for full details. Suppresses printing of the banner at program launch. -Computing the pure-strategy equilibria of extensive game in Figure 2 of [Sel75]_:: +Computing the pure-strategy equilibria of extensive game in Figure 2 of :cite:p:`Sel75`:: $ gambit-enumpure catalog/selten1975/fig2.efg diff --git a/doc/tools.gnm.rst b/doc/tools.gnm.rst index d4a5b63a02..53ed8e687d 100644 --- a/doc/tools.gnm.rst +++ b/doc/tools.gnm.rst @@ -74,7 +74,7 @@ subsets of equilibria being found. not specified, only the equilibria found are reported. Computing an equilibrium of -the reduced strategic form of the example in Figure 2 of [Sel75]_:: +the reduced strategic form of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-gnm catalog/selten1975/fig2.efg Compute Nash equilibria using a global Newton method diff --git a/doc/tools.ipa.rst b/doc/tools.ipa.rst index e08ea7b423..1484a63f1a 100644 --- a/doc/tools.ipa.rst +++ b/doc/tools.ipa.rst @@ -40,7 +40,7 @@ equilibria being found. Computing an equilibrium of -the reduced strategic form of the example in Figure 2 of [Sel75]_:: +the reduced strategic form of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-ipa catalog/selten1975/fig2.efg Compute Nash equilibria using iterated polymatrix approximation diff --git a/doc/tools.lcp.rst b/doc/tools.lcp.rst index ab0d70d2e2..0504aee19a 100644 --- a/doc/tools.lcp.rst +++ b/doc/tools.lcp.rst @@ -54,7 +54,7 @@ See the :ref:`algorithm description ` for full details. Suppresses printing of the banner at program launch. -Computing an equilibrium of the example in Figure 2 of [Sel75]_:: +Computing an equilibrium of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-lcp catalog/selten1975/fig2.efg Compute Nash equilibria by solving a linear complementarity program diff --git a/doc/tools.liap.rst b/doc/tools.liap.rst index 9f0748e964..e4232826f6 100644 --- a/doc/tools.liap.rst +++ b/doc/tools.liap.rst @@ -87,7 +87,7 @@ See the :ref:`algorithm description ` for full details. that is not a Nash equilibrium, are all output, in addition to any equilibria found. -Computing an equilibrium in mixed strategies of the example in Figure 2 of [Sel75]_:: +Computing an equilibrium in mixed strategies of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-liap -S catalog/selten1975/fig2.efg Compute Nash equilibria by minimizing the Lyapunov function diff --git a/doc/tools.logit.rst b/doc/tools.logit.rst index 320a96f37f..eb030b602b 100644 --- a/doc/tools.logit.rst +++ b/doc/tools.logit.rst @@ -76,7 +76,7 @@ See the :ref:`algorithm description ` for full details. Computing the principal branch, in mixed strategies, of the reduced strategic form of the example -in Figure 2 of [Sel75]_:: +in Figure 2 of :cite:p:`Sel75`:: $ gambit-logit -S catalog/selten1975/fig2.efg Compute a branch of the logit equilibrium correspondence diff --git a/doc/tools.rst b/doc/tools.rst index 8a3643b790..7f5aba15a2 100644 --- a/doc/tools.rst +++ b/doc/tools.rst @@ -10,7 +10,7 @@ Gambit provides command-line interfaces for each method for computing Nash equilibria. These are suitable for scripting or calling from other programs. This chapter describes the use of these programs. For a general overview of methods for computing equilibria, -see the survey of [McKMcL96]_. +see the survey of :cite:p:`McKMcL96`. The graphical interface also provides a frontend for calling these programs and evaluating their output. Direct use of the command-line diff --git a/doc/tools.simpdiv.rst b/doc/tools.simpdiv.rst index 5ab525d01a..5a0114239b 100644 --- a/doc/tools.simpdiv.rst +++ b/doc/tools.simpdiv.rst @@ -76,7 +76,7 @@ options to specify additional starting points for the algorithm. in addition to the approximate equilibrium profile found. -Computing an equilibrium in mixed strategies of the example in Figure 2 of [Sel75]_:: +Computing an equilibrium in mixed strategies of the example in Figure 2 of :cite:p:`Sel75`:: $ gambit-simpdiv catalog/selten1975/fig2.efg Compute Nash equilibria using simplicial subdivision diff --git a/doc/tutorials/advanced_tutorials/pygambit.external_programs.rst b/doc/tutorials/advanced_tutorials/pygambit.external_programs.rst index fbed0b9fbf..14614d945a 100644 --- a/doc/tutorials/advanced_tutorials/pygambit.external_programs.rst +++ b/doc/tutorials/advanced_tutorials/pygambit.external_programs.rst @@ -4,7 +4,7 @@ Using external programs to compute Nash equilibria .. TODO: this needs to be updated, see issue #561 Because the problem of finding Nash equilibria can be expressed in various -mathematical formulations (see [McKMcL96]_), it is helpful to make use +mathematical formulations (see :cite:p:`McKMcL96`), it is helpful to make use of other software packages designed specifically for solving those problems. There are currently two integrations offered for using external programs to solve @@ -27,7 +27,3 @@ processing. .. [#lrslib] http://cgm.cs.mcgill.ca/~avis/C/lrs.html .. [#phcpack] https://homepages.math.uic.edu/~jan/PHCpack/phcpack.html - -.. [McKMcL96] McKelvey, Richard D. and McLennan, Andrew M. (1996) Computation of equilibria - in finite games. In Handbook of Computational Economics, Volume 1, - pages 87-142. diff --git a/pyproject.toml b/pyproject.toml index 22c8faaf96..f7a60e8e4f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,6 +48,7 @@ doc = [ "sphinxcontrib-tikz", "jupyter_sphinx", "pyyaml", + "sphinxcontrib-bibtex", ] [project.urls] diff --git a/src/pygambit/behavmixed.pxi b/src/pygambit/behavmixed.pxi index 6fb71c8367..5817a5acb2 100644 --- a/src/pygambit/behavmixed.pxi +++ b/src/pygambit/behavmixed.pxi @@ -858,7 +858,7 @@ class MixedBehaviorProfile: return self._agent_max_regret() def agent_liap_value(self) -> ProfileDType: - """Returns the Lyapunov value (see [McK91]_) of the strategy profile. + """Returns the Lyapunov value (see :cite:p:`McK91`) of the strategy profile. The agent Lyapunov value is a non-negative number which is zero exactly at agent Nash equilibria. @@ -895,7 +895,7 @@ class MixedBehaviorProfile: return self._max_regret() def liap_value(self) -> ProfileDType: - """Returns the Lyapunov value (see [McK91]_) of the strategy profile. + """Returns the Lyapunov value (see :cite:p:`McK91`) of the strategy profile. The Lyapunov value is a non-negative number which is zero exactly at Nash equilibria. diff --git a/src/pygambit/stratmixed.pxi b/src/pygambit/stratmixed.pxi index cc87995d1a..e4ab2a4495 100644 --- a/src/pygambit/stratmixed.pxi +++ b/src/pygambit/stratmixed.pxi @@ -483,7 +483,7 @@ class MixedStrategyProfile: ) def liap_value(self) -> ProfileDType: - """Returns the Lyapunov value (see [McK91]_) of the strategy profile. + """Returns the Lyapunov value (see :cite:p:`McK91`) of the strategy profile. The Lyapunov value is a non-negative number which is zero exactly at Nash equilibria.