Skip to content

Commit 9bdf19f

Browse files
committed
Some tidying up of the documentation changes.
1 parent 60936a4 commit 9bdf19f

13 files changed

Lines changed: 89 additions & 85 deletions

doc/algorithms.rst

Lines changed: 43 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
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
================ =========================================================================== ======================================== ==========================================
1010
Algorithm 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

2626
enumpure
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

3333
enummixed
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

3838
In a two-player strategic game, the set of Nash equilibria can be expressed as the union of convex sets.
3939
This 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
4646
enumpoly
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
5150
and inequalities.
5251

5352
This 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
6968
of games, this will tend to lower the average time until finding one equilibrium,
7069
as 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

7486
lp
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
7991
program uses the sequence form formulation of Koller, Megiddo, and von
80-
Stengel [KolMegSte94]_ for extensive games.
92+
Stengel [KolMegSte94]_.
8193

8294
While the set of equilibria in a two-player constant-sum strategic
8395
game is convex, this method will only identify one of the extreme
@@ -88,8 +100,7 @@ points of that set.
88100
lcp
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
93104
complementarity problem. For extensive games, the program uses the
94105
sequence form representation of the extensive game, as defined by
95106
Koller, Megiddo, and von Stengel [KolMegSte94]_, and applies the
@@ -113,8 +124,7 @@ game.
113124
liap
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

119129
This procedure searches for equilibria by generating random starting
120130
points and using conjugate gradient descent to minimize the Lyapunov
@@ -129,7 +139,7 @@ not guaranteed to find all, or even any, Nash equilibria.
129139
logit
130140
-----
131141

132-
Reads a game on standard input and computes the
142+
Computes the
133143
principal branch of the (logit) quantal response correspondence.
134144

135145
The 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
145155
prediction using Newton's method for finding a zero of a function. Two
146156
parameters 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+
148168
In extensive games, logit quantal response equilibria are not well-defined
149169
if an information set is not reached due to being the successor of chance
150170
moves 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.
155175
simpdiv
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
160179
approach.
161180

162181
This program implements the algorithm of van der Laan, Talman, and van
@@ -173,7 +192,7 @@ small.
173192
ipa
174193
---
175194

176-
Reads a game on standard input and computes Nash
195+
Computes Nash
177196
equilibria using an iterated polymatrix approximation approach
178197
developed by Govindan and Wilson [GovWil04]_.
179198
This program is based on the
@@ -190,7 +209,7 @@ be unique.
190209
gnm
191210
---
192211

193-
Reads a game on standard input and computes Nash
212+
Computes Nash
194213
equilibria using a global Newton method approach developed by Govindan
195214
and Wilson [GovWil03]_. This program is based on the
196215
`Gametracer 0.2 <http://dags.stanford.edu/Games/gametracer.html>`_

doc/index.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ construction and analysis of finite extensive and strategic games.
3434
:expand:
3535

3636

37-
.. grid-item-card:: 🧮 Algorithms for computing Nash equilibria
37+
.. grid-item-card:: 🧮 Analysing games
3838
:columns: 4
3939

40-
Read about the algorithms available in Gambit for computing Nash equilibria.
40+
Compute equilibria and run econometric estimations.
4141

4242
.. button-ref:: algorithms
4343
:ref-type: ref

doc/tools.convert.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
:program:`gambit-convert`: Convert games among various representations
2-
======================================================================
1+
:program:`gambit-convert`
2+
=========================
33

44
:program:`gambit-convert` reads a game on standard input in any supported format
55
and converts it to another text representation. Currently, this tool supports

doc/tools.enummixed.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
.. _gambit-enummixed:
22

3-
:program:`gambit-enummixed`: Enumerate equilibria in a two-player game
4-
======================================================================
3+
:program:`gambit-enummixed`
4+
===========================
55

6-
:ref:`Algorithm description <enummixed>`
6+
Enumerate equilibria in a two-player game.
7+
See the :ref:`algorithm description <enummixed>` for full details.
78

89
.. program:: gambit-enummixed
910

doc/tools.enumpoly.rst

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,10 @@
11
.. _gambit-enumpoly:
22

3-
:program:`gambit-enumpoly`: Compute equilibria of a game using polynomial systems of equations
4-
==============================================================================================
5-
6-
:ref:`Algorithm description <enumpoly>`
7-
8-
For extensive games, a support of actions equates to allowing positive
9-
probabilities over a subset of terminal nodes. The indifference conditions
10-
used are those for the sequence form defined on the projection of the game
11-
to that support of actions. A solution to these equations implies a probability
12-
distribution over terminal nodes. The algorithm then searches for
13-
a profile that is a Nash equilibrium that implements that probability
14-
distribution. If there exists at least one such profile, a sample one is returned.
15-
Note that for probability distributions which assign zero probability to some terminal
16-
nodes, it is generally the case that there are (infinitely) many such profiles.
17-
Subsequent analysis of unreached information sets can yield alternative
18-
profiles that specify different choices at unreached information sets
19-
while still satisfying the Nash equilibrium conditions.
3+
:program:`gambit-enumpoly`
4+
==========================
5+
6+
Compute equilibria of a game using polynomial systems of equations
7+
See the :ref:`algorithm description <enumpoly>` for full details.
208

219
When the verbose switch `-v` is used, the program outputs each support
2210
as it is considered. The supports are presented as a comma-separated

doc/tools.enumpure.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
.. _gambit-enumpure:
22

3-
:program:`gambit-enumpure`: Enumerate pure-strategy equilibria of a game
4-
========================================================================
3+
:program:`gambit-enumpure`
4+
==========================
55

6-
:ref:`Algorithm description <enumpure>`
6+
Enumerate pure-strategy equilibria of a game.
7+
See the :ref:`algorithm description <enumpure>` for full details.
78

89
.. versionchanged:: 14.0.2
910
The effect of the `-S` switch is now purely cosmetic, determining

doc/tools.gnm.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
.. _gambit-gnm:
22

3-
:program:`gambit-gnm`: Compute Nash equilibria in a strategic game using a global Newton method
4-
===============================================================================================
3+
:program:`gambit-gnm`
4+
=====================
55

6-
:ref:`Algorithm description <gnm>`
6+
Compute Nash equilibria in a strategic game using a global Newton method.
7+
See the :ref:`algorithm description <gnm>` for full details.
78

89
The algorithm finds a subset of equilibria starting from any given profile.
910
Multiple starting profiles may be generated via the `-n` option or specified

doc/tools.ipa.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
.. _gambit-ipa:
22

3-
:program:`gambit-ipa`: Compute Nash equilibria in a strategic game using iterated polymatrix approximation
4-
==========================================================================================================
3+
:program:`gambit-ipa`
4+
=====================
55

6-
:ref:`Algorithm description <ipa>`
6+
Compute Nash equilibria in a strategic game using iterated polymatrix approximation.
7+
See the :ref:`algorithm description <ipa>` for full details.
78

89
The algorithm finds at most one equilibrium starting from any given profile.
910
Multiple starting profiles may be generated via the `-n` option or specified

doc/tools.lcp.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
.. _gambit-lcp:
22

3-
:program:`gambit-lcp`: Compute equilibria in a two-player game via linear complementarity
4-
=========================================================================================
3+
:program:`gambit-lcp`
4+
=====================
55

6-
7-
:ref:`Algorithm description <lcp>`
6+
Compute equilibria in a two-player game via linear complementarity.
7+
See the :ref:`algorithm description <lcp>` for full details.
88

99
.. program:: gambit-lcp
1010

doc/tools.liap.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
.. _gambit-liap:
22

3-
:program:`gambit-liap`: Compute Nash equilibria using function minimization
4-
===========================================================================
3+
:program:`gambit-liap`
4+
======================
55

6-
:ref:`Algorithm description <liap>`
6+
Compute Nash equilibria using function minimization.
7+
See the :ref:`algorithm description <liap>` for full details.
78

89
.. versionchanged:: 16.2.0
910

0 commit comments

Comments
 (0)