Skip to content

Commit 07d6d5e

Browse files
Merge branch 'master' into catalog/744
2 parents 485f9f9 + 06018d9 commit 07d6d5e

65 files changed

Lines changed: 937 additions & 1258 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.17.0
14+
uses: jidicula/clang-format-action@v4.18.0
1515
with:
1616
clang-format-version: '17'
1717
check-path: 'src'

ChangeLog

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,14 @@
11
# Changelog
22

3-
## [16.6.0] - unreleased
3+
## [16.6.0] - 2026-03-24
44

55
### Changed
6+
- Gambit has a refreshed branding and logo which is reflected in this release!
67
- `Game.comment` has been renamed to `Game.description`
8+
- With behaviour profiles that reach some information sets with probability zero, beliefs, action
9+
values, and infoset values are not well-defined. These functions now return a
10+
`std::optional` in C++ and type or `None` in Python, where nulls indicate these quantities
11+
are not defined. (#446)
712

813
### Added
914
- Implement linear-time algorithm to find all root nodes of proper subgames, using an adaptation of
@@ -20,10 +25,6 @@
2025
root node is a member of an absent-minded infoset. (#584)
2126
- Removed spurious warning in graphical interface when loading file as a command-line argument
2227
(or also by clicking on a file in MSW, as that uses the command-line mechanism). (#801)
23-
24-
## [16.5.1] - unreleased
25-
26-
### Fixed
2728
- `Game.reveal` raised a null pointer access exception or dumped core in some cases (#749)
2829

2930
## [16.5.0] - 2026-01-05

MANIFEST.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
recursive-include src/core *.cc *.h *.imp
1+
recursive-include src/core *.cc *.h
22
recursive-include src/games *.cc *.h *.imp
3-
recursive-include src/solvers *.c *.cc *.h *.imp
3+
recursive-include src/solvers *.cc *.h *.imp
44
recursive-include catalog *
55
include src/gambit.h
66
include src/pygambit/*.pxd

Makefile.am

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,6 @@ gambit_enumpoly_SOURCES = \
406406
src/solvers/enumpoly/polypartial.imp \
407407
src/solvers/enumpoly/polysolver.cc \
408408
src/solvers/enumpoly/polysolver.h \
409-
src/solvers/enumpoly/polyfeasible.h \
410-
src/solvers/enumpoly/behavextend.cc \
411-
src/solvers/enumpoly/behavextend.h \
412409
src/solvers/enumpoly/efgpoly.cc \
413410
src/solvers/enumpoly/nfgpoly.cc \
414411
src/solvers/enumpoly/enumpoly.h \

build_support/GAMBIT_VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
16.5.0
1+
16.6.0

catalog/__init__.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ def load(slug: str) -> gbt.Game:
4343
with as_file(resource_path) as path:
4444
return reader(str(path))
4545

46-
# Try loading from family games
47-
fg = family_games()
48-
if slug in fg:
49-
return fg[slug]
50-
5146
# Raise error if game does not exist
5247
raise FileNotFoundError(f"No catalog entry called {slug}")
5348

@@ -175,16 +170,6 @@ def append_record(
175170
if check_filters(game):
176171
append_record(slug, game)
177172

178-
# Add all the games from families
179-
for slug, game in family_games().items():
180-
# Throw an error if there's a slug collision between family games and file-based games
181-
if slug in [r["Game"] for r in records]:
182-
raise ValueError(
183-
f"Slug collision: {slug} is present in both file-based and family games."
184-
)
185-
if check_filters(game):
186-
append_record(slug, game)
187-
188173
if include_descriptions:
189174
return pd.DataFrame.from_records(
190175
records, columns=["Game", "Title", "Description", "Download", "Format"]

catalog/bagwell1995.efg

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
EFG 2 R "Bagwell (GEB 1995) commitment and (un)observability" { "Player 1" "Player 2" }
22
"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
3+
analysis of `Bag1995 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Bag1995>`_. The outcomes and payoffs are the same as in Bagwell's
44
model. This example sets the probability that the follower 'correctly' observes the
55
leader's action as .99 (99/100). The key result is that the only pure-strategy
66
equilibrium that survives if observability is imperfect is the one in which players
77
choose the actions that would form an equilibrium if the game was a *simultaneous-move*
88
game. There is an equilibrium in which the 'Stackelberg' action is played with high
99
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.
1310
"
1411

1512
p "" 1 1 "" { "S" "C" } 0

catalog/myerson1991/fig2_1.efg

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,14 @@
11
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
2+
"This is a simple game of one-card poker from `Mye91 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Mye91>`_, used as the
33
introductory example for game models.
44

55
Note that as specified in the text, the game has the slightly unusual feature
66
that folding with the high (red) card results in the player winning rather than
77
losing.
88

9-
See also
10-
--------
11-
reiley2008/fig1
9+
See also `Rei2008 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Rei2008>`_
1210
Another one-card poker game where folding with the high card is a loss rather
1311
than a win.
14-
15-
16-
[Mye91]_: Myerson, Roger B. (1991) Game Theory: Analysis of Conflict.
17-
Cambridge: Harvard University Press.
1812
"
1913

2014
c "" 1 "" { "Red" 1/2 "Black" 1/2 } 0

catalog/myerson1991/fig4_2.efg

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
EFG 2 R "Myerson (1991) Figure 4.2" { "Player 1" "Player 2" }
2-
"An example from Myerson [Mye91]_ which illustrates the distinction between
2+
"An example from `Mye91 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Mye91>`_ which illustrates the distinction between
33
an equilibrium of an extensive form game and an equilibrium of its
44
(multi)agent representation. The actions B1, Z1, and W2 form a
55
behavior profile which is an equilibrium in the (multi)agent
66
representation. However, it is not a Nash equilibrium of the extensive
77
game, because Player 1 would prefer to switch from (B1, Z1) to
88
(A1, Y1); the (multi)agent representation rules out such coordinated
99
deviations across information sets.
10-
11-
[Mye91]_: Myerson, Roger B. (1991) Game Theory: Analysis of Conflict.
12-
Cambridge: Harvard University Press.
1310
"
1411

1512
p "" 1 1 "" { "A1" "B1" } 0

catalog/reiley2008/fig1.efg

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,8 @@
11
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.
2+
"This is a one-card poker game used in `Rei2008 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Rei2008>`_ as a teaching exercise.
33

4-
See also
5-
--------
6-
myerson1991/fig2_1
4+
See also `Mye91 <https://gambitproject.readthedocs.io/en/latest/biblio.html#Mye91>`_
75
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.
126
"
137

148
c "" 1 "" { "King" 1/2 "Queen" 1/2 } 0

0 commit comments

Comments
 (0)