11.. _algorithms :
22
3- Nash equilibria algorithms
4- ==========================
3+ Equilibrium computation
4+ =======================
55
6- The table below summarizes the available PyGambit functions and corresponding Gambit CLI commandsto algorithms for computing Nash equilibria.
7- Scroll down for detailed descriptions of each algorithm .
6+ The table below summarizes the available PyGambit functions and corresponding Gambit CLI programs
7+ for algorithms for computing Nash equilibria .
88
99================ =========================================================================== ======================================== ==========================================
1010Algorithm Description PyGambit function CLI command
@@ -14,26 +14,26 @@ Algorithm Description
1414:ref: `enumpoly ` Compute equilibria of a game using polynomial systems of equations :py:func: `pygambit.nash.enumpoly_solve ` :ref: `gambit-enumpoly <gambit-enumpoly >`
1515:ref: `lp ` Compute equilibria in a two-player constant-sum game via linear programming :py:func: `pygambit.nash.lp_solve ` :ref: `gambit-lp <gambit-lp >`
1616:ref: `lcp ` Compute equilibria in a two-player game via linear complementarity :py:func: `pygambit.nash.lcp_solve ` :ref: `gambit-lcp <gambit-lcp >`
17- :ref: `liap ` Compute Nash equilibria using function minimization :py:func: `pygambit.nash.liap_solve ` :ref: `gambit-liap <gambit-liap >`
18- :ref: `logit ` Compute quantal response equilbria :py:func: `pygambit.nash.logit_solve ` :ref: `gambit-logit <gambit-logit >`
17+ :ref: `liap ` Compute equilibria using function minimization :py:func: `pygambit.nash.liap_solve ` :ref: `gambit-liap <gambit-liap >`
18+ :ref: `logit ` Compute quantal response equilibria :py:func: `pygambit.nash.logit_solve ` :ref: `gambit-logit <gambit-logit >`
1919:ref: `simpdiv ` Compute equilibria via simplicial subdivision :py:func: `pygambit.nash.simpdiv_solve ` :ref: `gambit-simpdiv <gambit-simpdiv >`
20- :ref: `ipa ` Compute Nash equilibria using iterated polymatrix approximation :py:func: `pygambit.nash.ipa_solve ` :ref: `gambit-ipa <gambit-ipa >`
21- :ref: `gnm ` Compute Nash equilibria using a global Newton method :py:func: `pygambit.nash.gnm_solve ` :ref: `gambit-gnm <gambit-gnm >`
20+ :ref: `ipa ` Compute equilibria using iterated polymatrix approximation :py:func: `pygambit.nash.ipa_solve ` :ref: `gambit-ipa <gambit-ipa >`
21+ :ref: `gnm ` Compute equilibria using a global Newton method :py:func: `pygambit.nash.gnm_solve ` :ref: `gambit-gnm <gambit-gnm >`
2222================ =========================================================================== ======================================== ==========================================
2323
2424.. _enumpure :
2525
2626enumpure
2727--------
2828
29- Reads a game on standard input and searches for pure-strategy Nash equilibria.
29+ Searches for pure-strategy Nash or agent Nash equilibria.
3030
3131.. _enummixed :
3232
3333enummixed
3434---------
3535
36- Reads a two-player game on standard input and computes Nash equilibria using extreme point enumeration.
36+ Computes Nash equilibria using extreme point enumeration.
3737
3838In a two-player strategic game, the set of Nash equilibria can be expressed as the union of convex sets.
3939This program generates all the extreme points of those convex sets. (Mangasarian [Man64 ]_)
@@ -46,8 +46,7 @@ It was shown by Shapley [Sha74]_ that there are equilibria not accessible via th
4646enumpoly
4747--------
4848
49- Reads a game on standard input and
50- computes Nash equilibria by solving systems of polynomial equations
49+ Computes Nash equilibria by solving systems of polynomial equations
5150and inequalities.
5251
5352This program searches for all Nash equilibria in a strategic game
@@ -69,15 +68,28 @@ supports which have the fewest strategies in total. For many classes
6968of games, this will tend to lower the average time until finding one equilibrium,
7069as well as finding the second equilibrium (if one exists).
7170
71+ For extensive games, a support of actions equates to allowing positive
72+ probabilities over a subset of terminal nodes. The indifference conditions
73+ used are those for the sequence form defined on the projection of the game
74+ to that support of actions. A solution to these equations implies a probability
75+ distribution over terminal nodes. The algorithm then searches for
76+ a profile that is a Nash equilibrium that implements that probability
77+ distribution. If there exists at least one such profile, a sample one is returned.
78+ Note that for probability distributions which assign zero probability to some terminal
79+ nodes, it is generally the case that there are (infinitely) many such profiles.
80+ Subsequent analysis of unreached information sets can yield alternative
81+ profiles that specify different choices at unreached information sets
82+ while still satisfying the Nash equilibrium conditions.
83+
7284.. _lp :
7385
7486lp
7587---
7688
77- Reads a two-player constant-sum game on standard input
78- and computes a Nash equilibrium by solving a linear program. The
89+ Computes a Nash equilibrium in a two-player game by solving a linear program.
90+ For extensive games, the
7991program uses the sequence form formulation of Koller, Megiddo, and von
80- Stengel [KolMegSte94 ]_ for extensive games .
92+ Stengel [KolMegSte94 ]_.
8193
8294While the set of equilibria in a two-player constant-sum strategic
8395game is convex, this method will only identify one of the extreme
@@ -88,8 +100,7 @@ points of that set.
88100lcp
89101---
90102
91- Reads a two-player game on standard input and
92- computes Nash equilibria by finding solutions to a linear
103+ Computes Nash equilibria of a two-player game by finding solutions to a linear
93104complementarity problem. For extensive games, the program uses the
94105sequence form representation of the extensive game, as defined by
95106Koller, Megiddo, and von Stengel [KolMegSte94 ]_, and applies the
@@ -113,8 +124,7 @@ game.
113124liap
114125----
115126
116- Reads a game on standard input and computes
117- approximate Nash equilibria using a function minimization approach.
127+ Computes approximate Nash equilibria using a function minimization approach.
118128
119129This procedure searches for equilibria by generating random starting
120130points and using conjugate gradient descent to minimize the Lyapunov
@@ -129,7 +139,7 @@ not guaranteed to find all, or even any, Nash equilibria.
129139logit
130140-----
131141
132- Reads a game on standard input and computes the
142+ Computes the
133143principal branch of the (logit) quantal response correspondence.
134144
135145The method is based on the procedure described in Turocy [Tur05 ]_ for
@@ -145,6 +155,16 @@ the correspondence, followed by a corrector step which refines the
145155prediction using Newton's method for finding a zero of a function. Two
146156parameters control the operation of this tracing.
147157
158+ The algorithm accepts an initial step size for the predictor phase of the tracing. This
159+ step size is then dynamically adjusted based on the rate of
160+ convergence of Newton's method in the corrector step. If the
161+ convergence is fast, the step size is adjusted upward (accelerated);
162+ if it is slow, the step size is decreased (decelerated). The
163+ maximum acceleration (or deceleration) can be set as an argument. As described in
164+ Turocy [Tur05 ]_, this acceleration helps to
165+ efficiently trace the correspondence when it reaches its asymptotic
166+ phase for large values of the precision parameter lambda.
167+
148168In extensive games, logit quantal response equilibria are not well-defined
149169if an information set is not reached due to being the successor of chance
150170moves with zero probability. In such games, the implementation treats
@@ -155,8 +175,7 @@ the beliefs at such information sets as being uniform across all member nodes.
155175simpdiv
156176--------
157177
158- Reads a game on standard input and computes
159- approximations to Nash equilibria using a simplicial subdivision
178+ Computes approximations to Nash equilibria using a simplicial subdivision
160179approach.
161180
162181This program implements the algorithm of van der Laan, Talman, and van
@@ -173,7 +192,7 @@ small.
173192ipa
174193---
175194
176- Reads a game on standard input and computes Nash
195+ Computes Nash
177196equilibria using an iterated polymatrix approximation approach
178197developed by Govindan and Wilson [GovWil04 ]_.
179198This program is based on the
@@ -190,7 +209,7 @@ be unique.
190209gnm
191210---
192211
193- Reads a game on standard input and computes Nash
212+ Computes Nash
194213equilibria using a global Newton method approach developed by Govindan
195214and Wilson [GovWil03 ]_. This program is based on the
196215`Gametracer 0.2 <http://dags.stanford.edu/Games/gametracer.html >`_
0 commit comments