Skip to content

Commit e117fd3

Browse files
committed
Merge branch 'master' into issue_660
2 parents 66946ee + 7264eff commit e117fd3

56 files changed

Lines changed: 814 additions & 584 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
steps:
1212
- uses: actions/checkout@v6
1313
- name: Run clang-format style check for C/C++
14-
uses: jidicula/clang-format-action@v4.16.0
14+
uses: jidicula/clang-format-action@v4.17.0
1515
with:
1616
clang-format-version: '17'
1717
check-path: 'src'

.github/workflows/osxbinary.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
- run: make
3232
- run: sudo make install
3333
- run: make osx-dmg
34-
- uses: actions/upload-artifact@v6
34+
- uses: actions/upload-artifact@v7
3535
with:
3636
name: artifact-osx-14
3737
path: "*.dmg"

.github/workflows/tools.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
cp gambit* installer
6969
"${WIX}bin/candle" build_support/msw/gambit.wxs
7070
"${WIX}bin/light" -ext WixUIExtension gambit.wixobj
71-
- uses: actions/upload-artifact@v6
71+
- uses: actions/upload-artifact@v7
7272
with:
7373
name: artifact-msw
7474
path: "*.msi"

.github/workflows/wheels.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ jobs:
2727
python -m cibuildwheel --output-dir wheelhouse/
2828
env:
2929
CIBW_SKIP: "pp*"
30-
- uses: actions/upload-artifact@v6
30+
- uses: actions/upload-artifact@v7
3131
with:
3232
path: ./wheelhouse/*.whl

ChangeLog

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,27 @@
55
### Changed
66
- `Game.comment` has been renamed to `Game.description`
77

8+
### Added
9+
- Implement linear-time algorithm to find all root nodes of proper subgames, using an adaptation of
10+
Tarjan's (1974) algorithm for finding bridges in an undirected graph. Subgame roots are cached so
11+
subsequent lookup is constant-time (if the game is unchanged). (#584)
12+
813
### Fixed
914
- `enumpoly` would take a very long time on some supports where an equilibrium is located on the
1015
boundary of the projected game. Search is now restricted to the interior of the space ruling
1116
these out; these will always be found by another projection. (#756)
17+
- In the graphical interface, the logit correspondence display would fail and terminate the program
18+
on very small (<10^{-300}) probabilities.
19+
- The new subgame root computation fixes a bug which failed to detect subgames where the subgame
20+
root node is a member of an absent-minded infoset. (#584)
21+
- Removed spurious warning in graphical interface when loading file as a command-line argument
22+
(or also by clicking on a file in MSW, as that uses the command-line mechanism). (#801)
1223

1324
## [16.5.1] - unreleased
1425

1526
### Fixed
1627
- `Game.reveal` raised a null pointer access exception or dumped core in some cases (#749)
1728

18-
1929
## [16.5.0] - 2026-01-05
2030

2131
### Fixed

Makefile.am

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ EXTRA_DIST = \
8585
src/gui/bitmaps/prev.xpm \
8686
src/gui/bitmaps/print.xpm \
8787
src/gui/bitmaps/profiles.xpm \
88-
src/gui/bitmaps/redo.xpm \
8988
src/gui/bitmaps/saveas.xpm \
9089
src/gui/bitmaps/savedata.xpm \
9190
src/gui/bitmaps/save.xpm \
@@ -94,7 +93,6 @@ EXTRA_DIST = \
9493
src/gui/bitmaps/tobegin.xpm \
9594
src/gui/bitmaps/toend.xpm \
9695
src/gui/bitmaps/tree.xpm \
97-
src/gui/bitmaps/undo.xpm \
9896
src/gui/bitmaps/zoomfit.xpm \
9997
src/gui/bitmaps/zoomin.xpm \
10098
src/gui/bitmaps/zoomout.xpm \
@@ -171,8 +169,6 @@ EXTRA_DIST = \
171169
contrib/games/palf2.efg \
172170
contrib/games/palf3.efg \
173171
contrib/games/palf.efg \
174-
contrib/games/poker2.efg \
175-
contrib/games/poker.efg \
176172
contrib/games/pvw2.efg \
177173
contrib/games/pvw.efg \
178174
contrib/games/sh3.efg \
@@ -188,6 +184,7 @@ EXTRA_DIST = \
188184
contrib/games/work1.efg \
189185
contrib/games/work2.efg \
190186
contrib/games/work3.efg \
187+
contrib/games/2smp.efg \
191188
contrib/games/2x2a.nfg \
192189
contrib/games/2x2const.nfg \
193190
contrib/games/2x2.nfg \
@@ -222,7 +219,6 @@ EXTRA_DIST = \
222219
contrib/games/perfect1.nfg \
223220
contrib/games/perfect2.nfg \
224221
contrib/games/perfect3.nfg \
225-
contrib/games/poker.nfg \
226222
contrib/games/sh3.nfg \
227223
contrib/games/stengel.nfg \
228224
contrib/games/sww1.nfg \
@@ -235,11 +231,15 @@ EXTRA_DIST = \
235231
contrib/games/yamamoto.nfg \
236232
contrib/games/zero.nfg \
237233
src/README.rst \
238-
catalog/2smp.efg \
234+
catalog/bagwell1995.efg \
235+
catalog/myerson1991/fig2_1.efg \
239236
catalog/myerson1991/fig4_2.efg \
237+
catalog/reiley2008/fig1.efg \
240238
catalog/selten1975/fig1.efg \
241239
catalog/selten1975/fig2.efg \
242-
catalog/selten1975/fig3.efg
240+
catalog/selten1975/fig3.efg \
241+
catalog/watson2013/exercise29_6.efg \
242+
catalog/watson2013/fig29_1.efg
243243

244244
core_SOURCES = \
245245
src/core/core.h \

catalog/bagwell1995.efg

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
EFG 2 R "Bagwell (GEB 1995) commitment and (un)observability" { "Player 1" "Player 2" }
2+
"This is a Stackelberg-type game with imperfectly observed commitment, following the
3+
analysis of Bagwell [^Bag1995]. The outcomes and payoffs are the same as in Bagwell's
4+
model. This example sets the probability that the follower 'correctly' observes the
5+
leader's action as .99 (99/100). The key result is that the only pure-strategy
6+
equilibrium that survives if observability is imperfect is the one in which players
7+
choose the actions that would form an equilibrium if the game was a *simultaneous-move*
8+
game. There is an equilibrium in which the 'Stackelberg' action is played with high
9+
probability, but strictly less than one.
10+
11+
[^Bag1995]: Bagwell, Kyle (1995) Commitment and observability in games.
12+
_Games and Economic Behavior_ 8: 271-280.
13+
"
14+
15+
p "" 1 1 "" { "S" "C" } 0
16+
c "" 1 "" { "s" 99/100 "c" 1/100 } 0
17+
p "" 2 1 "" { "S" "C" } 0
18+
t "" 1 "SS" { 5, 2 }
19+
t "" 2 "SC" { 3, 1 }
20+
p "" 2 2 "" { "S" "C" } 0
21+
t "" 1 "SS" { 5, 2 }
22+
t "" 2 "SC" { 3, 1 }
23+
c "" 2 "" { "s" 1/100 "c" 99/100 } 0
24+
p "" 2 1 "" { "S" "C" } 0
25+
t "" 3 "CS" { 6, 3 }
26+
t "" 4 "CC" { 4, 4 }
27+
p "" 2 2 "" { "S" "C" } 0
28+
t "" 3 "CS" { 6, 3 }
29+
t "" 4 "CC" { 4, 4 }

catalog/myerson1991/fig2_1.efg

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
EFG 2 R "A simple Poker game" { "Fred" "Alice" }
2+
"This is a simple game of one-card poker from Myerson [^Mye91], used as the
3+
introductory example for game models.
4+
5+
Note that as specified in the text, the game has the slightly unusual feature
6+
that folding with the high (red) card results in the player winning rather than
7+
losing.
8+
9+
See also
10+
--------
11+
reiley2008/fig1
12+
Another one-card poker game where folding with the high card is a loss rather
13+
than a win.
14+
15+
16+
[^Mye1991]: Myerson, Roger B. (1991) Game Theory: Analysis of Conflict.
17+
Cambridge: Harvard University Press.
18+
"
19+
20+
c "" 1 "" { "Red" 1/2 "Black" 1/2 } 0
21+
p "" 1 1 "" { "Raise" "Fold" } 0
22+
p "" 2 1 "" { "Meet" "Pass" } 0
23+
t "" 1 "Win Big" { 2, -2 }
24+
t "" 2 "Win" { 1, -1 }
25+
t "" 2 "Win" { 1, -1 }
26+
p "" 1 2 "" { "Raise" "Fold" } 0
27+
p "" 2 1 "" { "Meet" "Pass" } 0
28+
t "" 3 "Lose Big" { -2, 2 }
29+
t "" 2 "Win" { 1, -1 }
30+
t "" 4 "Lose" { -1, 1 }

catalog/reiley2008/fig1.efg

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
EFG 2 R "Stripped-down poker (Reiley et al 2008)" { "Professor" "Student" }
2+
"This is a one-card poker game used in [^Rei2008] as a teaching exercise.
3+
4+
See also
5+
--------
6+
myerson1991/fig2_1
7+
Another one-card poker game with slightly different rules.
8+
9+
[^Rei2008]: Reiley, David H., Urbancic, Michael B, and Walker, Mark. (2008)
10+
Stripped-Down Poker: A Classroom Game with Signaling and Bluffing.
11+
_The Journal of Economic Education_ 4: 323-341.
12+
"
13+
14+
c "" 1 "" { "King" 1/2 "Queen" 1/2 } 0
15+
p "" 1 1 "" { "Bet" "Fold" } 0
16+
p "" 2 1 "" { "Call" "Fold" } 0
17+
t "" 1 "Professor Wins Big" { 2, -2 }
18+
t "" 2 "Professor Wins" { 1, -1 }
19+
t "" 4 "Professor Loses" { -1, 1 }
20+
p "" 1 2 "" { "Bet" "Fold" } 0
21+
p "" 2 1 "" { "Call" "Fold" } 0
22+
t "" 3 "Professor Loses Big" { -2, 2 }
23+
t "" 2 "Professor Wins" { 1, -1 }
24+
t "" 4 "Professor Loses" { -1, 1 }
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
EFG 2 R "Princess Bride signaling game (from Watson)" { "Wesley" "Prince" }
2+
"This game is Exercise 29.6 from Watson [^Wat13], based on a scene from
3+
the Rob Reiner film, _The Princess Bride_:
4+
5+
Wesley (the protagonist) confronts the evil prince Humperdinck. Wesley
6+
is one of two types: weak or strong. Wesley knows whether he is weak or
7+
strong, but the prince only knows that he is weak with probability 1/2 and
8+
strong with probability 1/2. Wesley is lying in a bed in the prince's
9+
castle when the prince enters the room. Wesley decides whether to get out
10+
of bed or stay in bed. The prince observes Wesley's action but does not
11+
observe Wesley's type. The prince then decides whether to fight or
12+
surrender to Wesley. The payoffs are such that the prince prefers to fight
13+
only with the weak Wesley, because otherwise the prince is an inferior
14+
swordsman. Also, the weak Wesley must pay a cost to get out of bed.
15+
16+
In the game in this file, the cost the weak Wesley pays to get out of bed
17+
is set to 2.
18+
19+
[^Wat13]: Watson, Joel. (2013) Strategy: An Introduction to Game Theory,
20+
third edition. W. W. Norton & Company.
21+
"
22+
23+
c "" 1 "" { "Strong" 1/2 "Weak" 1/2 } 0
24+
p "" 1 1 "" { "Up" "Stay" } 0
25+
p "" 2 1 "" { "Surrender" "Fight" } 0
26+
t "" 1 "Outcome1" { 1, 0 }
27+
t "" 2 "Outcome2" { 0, -2 }
28+
p "" 2 2 "" { "Surrender" "Fight" } 0
29+
t "" 3 "Outcome3" { 1, 0 }
30+
t "" 4 "Outcome4" { 0, -2 }
31+
p "" 1 2 "" { "Up" "Stay" } 0
32+
p "" 2 1 "" { "Surrender" "Fight" } 0
33+
t "" 5 "Outcome5" { -1, 0 }
34+
t "" 6 "Outcome6" { -3, 1 }
35+
p "" 2 2 "" { "Surrender" "Fight" } 0
36+
t "" 7 "Outcome7" { 1, 0 }
37+
t "" 8 "Outcome8" { -1, 1 }

0 commit comments

Comments
 (0)