File: app.alg.html

package info (click to toggle)
gambit-doc 0.97.0-1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k, lenny, sarge, squeeze
  • size: 1,344 kB
  • sloc: makefile: 19; sh: 10
file content (344 lines) | stat: -rw-r--r-- 7,320 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML
><HEAD
><TITLE
>Reference: Algorithms to Compute Nash Equilibria</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.59"><LINK
REL="HOME"
TITLE="Gambit"
HREF="gambit.html"><LINK
REL="PREVIOUS"
TITLE="Categorical listing of functions"
HREF="gcl.funccat.html"><LINK
REL="NEXT"
TITLE="EnumMixedSolve"
HREF="app.alg.enummixed.html"></HEAD
><BODY
CLASS="APPENDIX"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>Gambit: Software Tools for Game Theory</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="gcl.funccat.html"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
></TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="app.alg.enummixed.html"
>Next &#62;&#62;&#62;</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="APPENDIX"
><H1
><A
NAME="APP.ALG"
>Reference: Algorithms to Compute Nash Equilibria</A
></H1
><P
>This appendix is an overview of the literature on computing
Nash equilibria in finite games.  The focus here is on detailing the
essentials of the theory for the user who wants to compute equilibria, 
and to document the implementations of the algorithms provided in
Gambit.  The interested user should consult McKelvey and McLennan's
survey article [<SPAN
CLASS="CITATION"
><A
HREF="bib.html#MCKMCL96"
>McKMcL96</A
></SPAN
>],
plus the references
therein and the <A
HREF="bib.html"
>bibliography</A
> of this manual for more information.
    </P
><DIV
CLASS="SECT1"
><H1
CLASS="SECT1"
><A
NAME="APP.ALG.START"
>Tips on getting started</A
></H1
><P
>Gambit has a number of algorithms to find Nash equilibria.  The
appropriate algorithm to use depends on a number of factors, most
importantly, the number of players in the game, and the number of
equilibria you want to find.  </P
><P
>Before computing equilibria, you may wish to eliminate
dominated strategies.  The smaller the number of strategies the
algorithm must consider, 
the faster any algorithm will run.  However, dominance
elimination can itself be computationally intensive, especially if
domination by mixed strategies (for the normal form) is considered,
or if dominance elimination is done on a large extensive form.
<P
></P
><UL
><LI
><P
>If you want to find more than one, or all Nash equilibria of a game,
then you may first successively eliminate strongly dominated
strategies.  Any equilibrium of the original game will also be an
equilibrium of the reduced game.</P
></LI
><LI
><P
>If you just want to find <I
CLASS="EMPHASIS"
>one</I
> Nash equilibrium,
you can first successively eliminate <I
CLASS="EMPHASIS"
>weakly</I
>
dominated strategies.  Elimination of weakly dominated strategies may
eliminate some Nash equilibria of the original game, so it should not
be used if you want to find multiple Nash equilibria, but any Nash
equilibrium to the reduced game will be an equilibrium to the original
game, so it can be used if you only want to find one equilibrium.</P
></LI
></UL
></P
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.COMMON"
>Common algorithm parameters</A
></H2
><P
>There are a few parameters which are common among several algorithms.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.PURE"
>Pure strategy equilibria</A
></H2
><P
>The <A
HREF="app.alg.enumpure.html"
>EnumPureSolve</A
> algorithm can be used to enumerate
all of the pure strategy equilibria for both extensive and normal form
games.  </P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.ZEROSUM"
>Two Person Constant Sum Games</A
></H2
><P
>For two person constant sum normal form games, the minimax theorem
applies.  The set of Nash equilibria is a convex set, and the problem
of finding Nash equilibria can be formulated as a linear program.  The 
<A
HREF="app.alg.lp.html"
>LpSolve</A
> algorithm
will solve a constant sum game using this approach.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.2P"
>Two Person Games</A
></H2
><P
>For two person nonzero sum games, the problem of finding Nash
equilibria can be formulated as a linear complementarity problem, and
exact solutions can be found as long as computations are done in
rationals.  The <A
HREF="app.alg.lcp.html"
>LcpSolve</A
>
algorithm solves a two person game
using this approach.  Note that this algorithm can also be used
directly on an extensive form game, where it implements the Koller,
Megiddo, von Stengel sequence form
[<SPAN
CLASS="CITATION"
><A
HREF="bib.html#KOLMEGSTE94"
>KolMegSte94</A
></SPAN
>].</P
><P
>For a two person game the <A
HREF="app.alg.enummixed.html"
>EnumMixedSolve</A
> algorithm
will enumerate all of the extreme points of the components of the set
of Nash equilibria, and hence can be used to find <I
CLASS="EMPHASIS"
>all</I
> Nash
equilibria.  </P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.NP"
>Games With More Than Two Players</A
></H2
><P
>For n-person normal form games, with n greater than two, the
<A
HREF="app.alg.polenum.html"
>PolEnumSolve</A
> algorithm will find all Nash
equilibria. The PolEnum algorithm may be computationally infeasible on
large games.  Thus other algorithms are also available for finding one
or a sample of Nash equilibria.  Since Nash equilibria can be
irrational, the algorithms to locate one equilibrium will only find
approximations (to machine accuracy) of Nash equilibria.</P
><P
><A
HREF="app.alg.simpdiv.html"
>SimpDivSolve</A
>SimpDivSolve is guaranteed to locate one
equilibrium for an n-person normal form game.  This algorithm can be
very slow on some games.  Hence two other algorithms are also
implemented, <A
HREF="app.alg.qre.html"
>QreSolve</A
>
and <A
HREF="app.alg.liap.html"
>LiapSolve</A
>.  These
algorithms can also be used to search for multiple equilibria (with no
guarantee that all have been found), and to search for equilibria
close to a given starting point.</P
></DIV
><DIV
CLASS="SECT2"
><H2
CLASS="SECT2"
><A
NAME="APP.ALG.START.SEQUENTIAL"
>Sequential Equilibria</A
></H2
><P
>Sequential equilibria are equilibria that prescribe optimal behavior
at any information set of the extensive form, given a consistent
assessment of beliefs.  See [<SPAN
CLASS="CITATION"
><A
HREF="bib.html#KREWIL82"
>KreWil82</A
></SPAN
>].  
<A
HREF="app.alg.qre.html"
>QreSolve</A
> on extensive form games
is guaranteed to converge to a sequential equilibrium.</P
></DIV
></DIV
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="gcl.funccat.html"
>&#60;&#60;&#60; Previous</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="gambit.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="app.alg.enummixed.html"
>Next &#62;&#62;&#62;</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Categorical listing of functions</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
>&nbsp;</TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>EnumMixedSolve</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>