From 5f4e50b7e4469a1494ebf56b9faafd118f19213e Mon Sep 17 00:00:00 2001 From: wangyzh Date: Sun, 7 Jun 2026 21:18:20 +0800 Subject: [PATCH 01/16] Add EFGs from Shoham and Leyton-Brown (2008) --- catalog/books/shohambrown2008/MAS_Fig5_1.efg | 21 ++++++++++ catalog/books/shohambrown2008/MAS_Fig5_10.efg | 16 ++++++++ catalog/books/shohambrown2008/MAS_Fig5_11.efg | 14 +++++++ catalog/books/shohambrown2008/MAS_Fig5_12.efg | 16 ++++++++ catalog/books/shohambrown2008/MAS_Fig5_15.efg | 17 +++++++++ catalog/books/shohambrown2008/MAS_Fig5_2.efg | 16 ++++++++ catalog/books/shohambrown2008/MAS_Fig5_9.efg | 22 +++++++++++ catalog/books/shohambrown2008/MAS_Fig6_2.efg | 38 +++++++++++++++++++ catalog/books/shohambrown2008/MAS_Fig6_8.efg | 36 ++++++++++++++++++ 9 files changed, 196 insertions(+) create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_1.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_10.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_11.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_12.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_15.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_2.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_9.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig6_2.efg create mode 100644 catalog/books/shohambrown2008/MAS_Fig6_8.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_1.efg b/catalog/books/shohambrown2008/MAS_Fig5_1.efg new file mode 100644 index 000000000..d1acf0cc9 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_1.efg @@ -0,0 +1,21 @@ +EFG 2 R "Fig 5.1 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.1 from :cite:p:`ShoLeyB08`. +This is a sharing game. Imagine a brother and sister sharing two indivisible and identical presents +from their parents. First the brother suggests a split, which can be one of three—he +keeps both, she keeps both, or they each keep one. Then the sister chooses whether +to accept or reject the split. If she accepts they each get their allocated present(s), +and otherwise neither gets any gift. +" + +p "" 1 1 "" { "2-0" "1-1" "0-2" } 0 +p "" 2 2 "" { "no" "yes" } 0 +t "" 1 "" { 0 0 } +t "" 2 "" { 2 0 } +p "" 2 3 "" { "no" "yes" } 0 +t "" 3 "" { 0 0 } +t "" 4 "" { 1 1 } +p "" 2 4 "" { "no" "yes" } 0 +t "" 5 "" { 0 0 } +t "" 6 "" { 0 2 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_10.efg b/catalog/books/shohambrown2008/MAS_Fig5_10.efg new file mode 100644 index 000000000..94cd759ff --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_10.efg @@ -0,0 +1,16 @@ +EFG 2 R "Fig 5.10 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.10 from :cite:p:`ShoLeyB08`. +This is an example of an imperfect-information game. +" + +p "" 1 2 "" { "L" "R" } 0 +p "" 2 3 "" { "A" "B" } 0 +p "" 1 1 "" { "l" "r" } 0 +t "" 1 "" { 0 0 } +t "" 2 "" { 2 4 } +p "" 1 1 0 +t "" 3 "" { 4 2 } +t "" 4 "" { 0 0 } +t "" 5 "" { 0 0 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_11.efg b/catalog/books/shohambrown2008/MAS_Fig5_11.efg new file mode 100644 index 000000000..246a91a9b --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_11.efg @@ -0,0 +1,14 @@ +EFG 2 R "Fig 5.11 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.11 from :cite:p:`ShoLeyB08`. +The Prisoner’s Dilemma game in extensive form. +" + +p "" 1 2 "" { "C" "D" } 0 +p "" 2 1 "" { "c" "d" } 0 +t "" 1 "" { -1 -1 } +t "" 2 "" { -4 0 } +p "" 2 1 0 +t "" 3 "" { 0 -4 } +t "" 4 "" { -3 -3 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_12.efg b/catalog/books/shohambrown2008/MAS_Fig5_12.efg new file mode 100644 index 000000000..2e08ce364 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_12.efg @@ -0,0 +1,16 @@ +EFG 2 R "Fig 5.12 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.12 from :cite:p:`ShoLeyB08`. +A game with imperfect recall. +Please read carefully about the definition of perfect recall, which infers three types of imperfect recall. +" + + +p "" 1 1 "" { "L" "R" } 0 +p "" 1 1 0 +t "" 1 "" { 1 0 } +t "" 2 "" { 100 100 } +p "" 2 2 "" { "U" "D" } 0 +t "" 3 "" { 5 1 } +t "" 4 "" { 2 2 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_15.efg b/catalog/books/shohambrown2008/MAS_Fig5_15.efg new file mode 100644 index 000000000..8f5a9414f --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_15.efg @@ -0,0 +1,17 @@ +EFG 2 R "Fig 5.15 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.15 from :cite:p:`ShoLeyB08`. +A game with imperfect information. +This example shows how a requirement that a substrategy be a best response in +all subgames is too simplistic for defining SPE in games with imperfect information. +" + +p "" 1 2 "" { "L" "C" "R" } 0 +t "" 1 "" { 1 1 } +p "" 2 1 "" { "U" "D" } 0 +t "" 2 "" { 0 1000 } +t "" 3 "" { 0 0 } +p "" 2 1 0 +t "" 4 "" { 1 0 } +t "" 5 "" { 3 1 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_2.efg b/catalog/books/shohambrown2008/MAS_Fig5_2.efg new file mode 100644 index 000000000..5ed1bd189 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_2.efg @@ -0,0 +1,16 @@ +EFG 2 R "Fig 5.2 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.2 from :cite:p:`ShoLeyB08`. +This is an example of a perfect-information game in extensive form. +" + +p "" 1 1 "" { "A" "B" } 0 +p "" 2 2 "" { "C" "D" } 0 +t "" 1 "" { 3 8 } +t "" 2 "" { 8 3 } +p "" 2 3 "" { "E" "F" } 0 +t "" 3 "" { 5 5 } +p "" 1 4 "" { "G" "H" } 0 +t "" 4 "" { 2 10 } +t "" 5 "" { 1 0 } diff --git a/catalog/books/shohambrown2008/MAS_Fig5_9.efg b/catalog/books/shohambrown2008/MAS_Fig5_9.efg new file mode 100644 index 000000000..68e2181ea --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_9.efg @@ -0,0 +1,22 @@ +EFG 2 R "Fig 5.9 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 5.9 from :cite:p:`ShoLeyB08`. +This is the centipede game. In this game two players alternate in making decisions, at each +turn choosing between going down and ending the game or going across and +continuing it. +This example is usd to explain the criticisms of backward induction for finding subgame-perfect equilibrium. +Note that centipede is also a parametrized game, with the parameter being the number of rounds. +" + +p "" 1 1 "" { "A" "D" } 0 +t "" 1 "" { 1 0 } +p "" 2 2 "" { "A" "D" } 0 +t "" 2 "" { 0 2 } +p "" 1 3 "" { "A" "D" } 0 +t "" 3 "" { 3 1 } +p "" 2 4 "" { "A" "D" } 0 +t "" 4 "" { 2 4 } +p "" 1 5 "" { "A" "D" } 0 +t "" 5 "" { 4 3 } +t "" 6 "" { 3 5 } diff --git a/catalog/books/shohambrown2008/MAS_Fig6_2.efg b/catalog/books/shohambrown2008/MAS_Fig6_2.efg new file mode 100644 index 000000000..3eedbbcc8 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig6_2.efg @@ -0,0 +1,38 @@ +EFG 2 R "Fig 6.2 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 6.2 from :cite:p:`ShoLeyB08`. +This is a repeated game, where Prisoner’s Dilemma is played twice. +" + +p "" 1 6 "" { "C" "D" } 0 +p "" 2 1 "" { "c" "d" } 0 +p "" 1 7 "" { "C" "D" } 0 +p "" 2 4 "" { "c" "d" } 0 +t "" 1 "" { -2 -2 } +t "" 2 "" { -5 -1 } +p "" 2 4 0 +t "" 3 "" { -1 -5 } +t "" 4 "" { -4 -4 } +p "" 1 8 "" { "C" "D" } 0 +p "" 2 5 "" { "c" "d" } 0 +t "" 5 "" { -5 -1 } +t "" 6 "" { -8 0 } +p "" 2 5 0 +t "" 7 "" { -4 -4 } +t "" 8 "" { -7 -3 } +p "" 2 1 0 +p "" 1 9 "" { "C" "D" } 0 +p "" 2 2 "" { "c" "d" } 0 +t "" 9 "" { -1 -5 } +t "" 10 "" { -4 -4 } +p "" 2 2 0 +t "" 11 "" { 0 -8 } +t "" 12 "" { -3 -7 } +p "" 1 10 "" { "C" "D" } 0 +p "" 2 3 "" { "c" "d" } 0 +t "" 13 "" { -4 -4 } +t "" 14 "" { -7 -3 } +p "" 2 3 0 +t "" 15 "" { -3 -7 } +t "" 16 "" { -6 -6 } diff --git a/catalog/books/shohambrown2008/MAS_Fig6_8.efg b/catalog/books/shohambrown2008/MAS_Fig6_8.efg new file mode 100644 index 000000000..08e0e3cba --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig6_8.efg @@ -0,0 +1,36 @@ +EFG 2 R "Fig 6.8 from Shoham and Leyton-Brown (2008)" { "1" "2" } + +" +Figure 6.8 from :cite:p:`ShoLeyB08`. +This is a Bayesian game, represented in EFG with Nature deciding the types. +" + +c "" 5 "" { "MP" 1/4 "PD" 1/4 "Coord" 1/4 "BoS" 1/4 } 0 +p "" 1 1 "" { "U" "D" } 0 +p "" 2 3 "" { "L" "R" } 0 +t "" 1 "" { 2 0 } +t "" 2 "" { 0 2 } +p "" 2 3 0 +t "" 3 "" { 0 2 } +t "" 4 "" { 2 0 } +p "" 1 1 0 +p "" 2 4 "" { "L" "R" } 0 +t "" 5 "" { 2 2 } +t "" 6 "" { 0 3 } +p "" 2 4 0 +t "" 7 "" { 3 0 } +t "" 8 "" { 1 1 } +p "" 1 2 "" { "U" "D" } 0 +p "" 2 3 0 +t "" 9 "" { 2 2 } +t "" 10 "" { 0 0 } +p "" 2 3 0 +t "" 11 "" { 0 0 } +t "" 12 "" { 1 1 } +p "" 1 2 0 +p "" 2 4 0 +t "" 13 "" { 2 1 } +t "" 14 "" { 0 0 } +p "" 2 4 0 +t "" 15 "" { 0 0 } +t "" 16 "" { 1 2 } From 5e2ef68119c1c1a071bfcfa9f97ddff6894298a8 Mon Sep 17 00:00:00 2001 From: wangyzh Date: Sun, 7 Jun 2026 22:45:10 +0800 Subject: [PATCH 02/16] Add EFGs from Shoham and Leyton-Brown (2008) --- catalog/books/shohambrown2008/MAS_Fig5_1.efg | 2 +- catalog/books/shohambrown2008/MAS_Fig5_11.efg | 2 +- catalog/books/shohambrown2008/MAS_Fig6_2.efg | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/catalog/books/shohambrown2008/MAS_Fig5_1.efg b/catalog/books/shohambrown2008/MAS_Fig5_1.efg index d1acf0cc9..b83e826c9 100644 --- a/catalog/books/shohambrown2008/MAS_Fig5_1.efg +++ b/catalog/books/shohambrown2008/MAS_Fig5_1.efg @@ -3,7 +3,7 @@ EFG 2 R "Fig 5.1 from Shoham and Leyton-Brown (2008)" { "1" "2" } " Figure 5.1 from :cite:p:`ShoLeyB08`. This is a sharing game. Imagine a brother and sister sharing two indivisible and identical presents -from their parents. First the brother suggests a split, which can be one of three—he +from their parents. First the brother suggests a split, which can be one of three-he keeps both, she keeps both, or they each keep one. Then the sister chooses whether to accept or reject the split. If she accepts they each get their allocated present(s), and otherwise neither gets any gift. diff --git a/catalog/books/shohambrown2008/MAS_Fig5_11.efg b/catalog/books/shohambrown2008/MAS_Fig5_11.efg index 246a91a9b..a972fb90b 100644 --- a/catalog/books/shohambrown2008/MAS_Fig5_11.efg +++ b/catalog/books/shohambrown2008/MAS_Fig5_11.efg @@ -2,7 +2,7 @@ EFG 2 R "Fig 5.11 from Shoham and Leyton-Brown (2008)" { "1" "2" } " Figure 5.11 from :cite:p:`ShoLeyB08`. -The Prisoner’s Dilemma game in extensive form. +The Prisoner's Dilemma game in extensive form. " p "" 1 2 "" { "C" "D" } 0 diff --git a/catalog/books/shohambrown2008/MAS_Fig6_2.efg b/catalog/books/shohambrown2008/MAS_Fig6_2.efg index 3eedbbcc8..6a543e361 100644 --- a/catalog/books/shohambrown2008/MAS_Fig6_2.efg +++ b/catalog/books/shohambrown2008/MAS_Fig6_2.efg @@ -2,7 +2,7 @@ EFG 2 R "Fig 6.2 from Shoham and Leyton-Brown (2008)" { "1" "2" } " Figure 6.2 from :cite:p:`ShoLeyB08`. -This is a repeated game, where Prisoner’s Dilemma is played twice. +This is a repeated game, where Prisoner's Dilemma is played twice. " p "" 1 6 "" { "C" "D" } 0 From 69481d25566a1e685d3e669c0dc1924c7bb1ecaa Mon Sep 17 00:00:00 2001 From: wangyzh Date: Sun, 7 Jun 2026 23:39:51 +0800 Subject: [PATCH 03/16] Add EFGs from Shoham and Leyton-Brown (2008) --- build_support/catalog/catalog.am | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build_support/catalog/catalog.am b/build_support/catalog/catalog.am index 58c225f42..e04816ed3 100644 --- a/build_support/catalog/catalog.am +++ b/build_support/catalog/catalog.am @@ -1,6 +1,15 @@ CATALOG_FILES = \ catalog/books/myerson1991/fig2_1.efg \ catalog/books/myerson1991/fig4_2.efg \ + catalog/books/shohambrown2008/MAS_Fig5_1.efg \ + catalog/books/shohambrown2008/MAS_Fig5_10.efg \ + catalog/books/shohambrown2008/MAS_Fig5_11.efg \ + catalog/books/shohambrown2008/MAS_Fig5_12.efg \ + catalog/books/shohambrown2008/MAS_Fig5_15.efg \ + catalog/books/shohambrown2008/MAS_Fig5_2.efg \ + catalog/books/shohambrown2008/MAS_Fig5_9.efg \ + catalog/books/shohambrown2008/MAS_Fig6_2.efg \ + catalog/books/shohambrown2008/MAS_Fig6_8.efg \ catalog/books/vonstengel2022/fig10.1.efg \ catalog/books/vonstengel2022/fig10.12.efg \ catalog/books/vonstengel2022/fig10.5.efg \ From 666711fd1e3ef5260d2075885713d3950501fa2b Mon Sep 17 00:00:00 2001 From: wangyzh Date: Mon, 8 Jun 2026 21:39:23 +0800 Subject: [PATCH 04/16] Add EFGs from Shoham and Leyton-Brown (2008) --- build_support/catalog/catalog.am | 9 ++++ build_support/catalog/catalog_hierarchy.yaml | 1 + catalog/books/shohambrown2008/MAS_Fig5_1.ef | 12 +++++ catalog/books/shohambrown2008/MAS_Fig5_10.ef | 12 +++++ catalog/books/shohambrown2008/MAS_Fig5_11.ef | 10 ++++ catalog/books/shohambrown2008/MAS_Fig5_12.ef | 15 ++++++ catalog/books/shohambrown2008/MAS_Fig5_15.ef | 11 ++++ catalog/books/shohambrown2008/MAS_Fig5_2.ef | 11 ++++ catalog/books/shohambrown2008/MAS_Fig5_9.ef | 13 +++++ catalog/books/shohambrown2008/MAS_Fig6_2.ef | 38 ++++++++++++++ catalog/books/shohambrown2008/MAS_Fig6_8.ef | 54 ++++++++++++++++++++ doc/references.bib | 7 +++ 12 files changed, 193 insertions(+) create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_1.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_10.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_11.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_12.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_15.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_2.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig5_9.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig6_2.ef create mode 100644 catalog/books/shohambrown2008/MAS_Fig6_8.ef diff --git a/build_support/catalog/catalog.am b/build_support/catalog/catalog.am index e04816ed3..f18a78e9e 100644 --- a/build_support/catalog/catalog.am +++ b/build_support/catalog/catalog.am @@ -1,14 +1,23 @@ CATALOG_FILES = \ catalog/books/myerson1991/fig2_1.efg \ catalog/books/myerson1991/fig4_2.efg \ + catalog/books/shohambrown2008/MAS_Fig5_1.ef \ catalog/books/shohambrown2008/MAS_Fig5_1.efg \ + catalog/books/shohambrown2008/MAS_Fig5_10.ef \ catalog/books/shohambrown2008/MAS_Fig5_10.efg \ + catalog/books/shohambrown2008/MAS_Fig5_11.ef \ catalog/books/shohambrown2008/MAS_Fig5_11.efg \ + catalog/books/shohambrown2008/MAS_Fig5_12.ef \ catalog/books/shohambrown2008/MAS_Fig5_12.efg \ + catalog/books/shohambrown2008/MAS_Fig5_15.ef \ catalog/books/shohambrown2008/MAS_Fig5_15.efg \ + catalog/books/shohambrown2008/MAS_Fig5_2.ef \ catalog/books/shohambrown2008/MAS_Fig5_2.efg \ + catalog/books/shohambrown2008/MAS_Fig5_9.ef \ catalog/books/shohambrown2008/MAS_Fig5_9.efg \ + catalog/books/shohambrown2008/MAS_Fig6_2.ef \ catalog/books/shohambrown2008/MAS_Fig6_2.efg \ + catalog/books/shohambrown2008/MAS_Fig6_8.ef \ catalog/books/shohambrown2008/MAS_Fig6_8.efg \ catalog/books/vonstengel2022/fig10.1.efg \ catalog/books/vonstengel2022/fig10.12.efg \ diff --git a/build_support/catalog/catalog_hierarchy.yaml b/build_support/catalog/catalog_hierarchy.yaml index 9280493a6..2feffdd7b 100644 --- a/build_support/catalog/catalog_hierarchy.yaml +++ b/build_support/catalog/catalog_hierarchy.yaml @@ -14,6 +14,7 @@ labels: books/myerson1991: "Myerson (1991) — Game Theory: Analysis of Conflict" books/vonstengel2022: "von Stengel (2022) — Game Theory Basics" books/watson2013: "Watson (2013) — Strategy: An Introduction to Game Theory" + books/shohambrown2008: "Shoham and Leyton-Brown (2008) — Multiagent Systems, Algorithmic, Game-Theoretic, and Logical Foundations" journals/geb/gilboa1997: "Gilboa (1997)" journals/geb/wichardt2008: "Wichardt (2008)" journals/ijgt/nau2004: "Nau et al. (2004)" diff --git a/catalog/books/shohambrown2008/MAS_Fig5_1.ef b/catalog/books/shohambrown2008/MAS_Fig5_1.ef new file mode 100644 index 000000000..4eb06de72 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_1.ef @@ -0,0 +1,12 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 player 2 xshift -4.77 from 0,1 move 2-0 +level 2 node 2 player 2 xshift 0 from 0,1 move 1-1 +level 4 node 1 xshift -1.19 from 2,1 move no payoffs 0 0 +level 4 node 2 xshift 1.19 from 2,1 move yes payoffs 2 0 +level 2 node 3 player 2 xshift 4.77 from 0,1 move 0-2 +level 4 node 3 xshift -1.19 from 2,2 move no payoffs 0 0 +level 4 node 4 xshift 1.19 from 2,2 move yes payoffs 1 1 +level 4 node 5 xshift -1.19 from 2,3 move no payoffs 0 0 +level 4 node 6 xshift 1.19 from 2,3 move yes payoffs 0 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_10.ef b/catalog/books/shohambrown2008/MAS_Fig5_10.ef new file mode 100644 index 000000000..bc10d8212 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_10.ef @@ -0,0 +1,12 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 player 2 xshift -3.58 from 0,1 move L +level 2 node 2 xshift 3.58 from 0,1 move R payoffs 0 0 +level 4 node 1 xshift -2.86 from 2,1 move A +level 4 node 2 xshift 2.86 from 2,1 move B +level 6 node 1 xshift -1.43 from 4,1 move l payoffs 0 0 +level 6 node 2 xshift 1.43 from 4,1 move r payoffs 2 4 +level 6 node 3 xshift -1.43 from 4,2 move l payoffs 4 2 +level 6 node 4 xshift 1.43 from 4,2 move r payoffs 0 0 +iset 4,1 4,2 player 1 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_11.ef b/catalog/books/shohambrown2008/MAS_Fig5_11.ef new file mode 100644 index 000000000..13246edad --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_11.ef @@ -0,0 +1,10 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 xshift -3.58 from 0,1 move C +level 2 node 2 xshift 3.58 from 0,1 move D +level 4 node 1 xshift -1.79 from 2,1 move c payoffs -1 -1 +level 4 node 2 xshift 1.79 from 2,1 move d payoffs -4 0 +level 4 node 3 xshift -1.79 from 2,2 move c payoffs 0 -4 +level 4 node 4 xshift 1.79 from 2,2 move d payoffs -3 -3 +iset 2,1 2,2 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_12.ef b/catalog/books/shohambrown2008/MAS_Fig5_12.ef new file mode 100644 index 000000000..98b720cdc --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_12.ef @@ -0,0 +1,15 @@ +% Extensive-form game transcribed from the uploaded image +player 1 name 1 +player 2 name 2 + +% Player 1's two decision nodes are in the same information set. +level 0 node 1 +level 2 node 1 xshift -3 from 0,1 move L +level 2 node 2 xshift 3 from 0,1 move R player 2 + +level 4 node 1 xshift -1 from 2,1 move L payoffs 1 0 +level 4 node 2 xshift 1 from 2,1 move R payoffs 100 100 +level 4 node 3 xshift -1 from 2,2 move U payoffs 5 1 +level 4 node 4 xshift 1 from 2,2 move D payoffs 2 2 + +iset 0,1 2,1 player 1 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_15.ef b/catalog/books/shohambrown2008/MAS_Fig5_15.ef new file mode 100644 index 000000000..adb455c49 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_15.ef @@ -0,0 +1,11 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 xshift -5.01 from 0,1 move L payoffs 1 1 +level 2 node 2 xshift -0.72 from 0,1 move C +level 2 node 3 xshift 5.01 from 0,1 move R +level 4 node 1 xshift -1.43 from 2,2 move U payoffs 0 1000 +level 4 node 2 xshift 1.43 from 2,2 move D payoffs 0 0 +level 4 node 3 xshift -1.43 from 2,3 move U payoffs 1 0 +level 4 node 4 xshift 1.43 from 2,3 move D payoffs 3 1 +iset 2,2 2,3 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_2.ef b/catalog/books/shohambrown2008/MAS_Fig5_2.ef new file mode 100644 index 000000000..630246f0b --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_2.ef @@ -0,0 +1,11 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 player 2 xshift -3.22 from 0,1 move A +level 2 node 2 player 2 xshift 3.22 from 0,1 move B +level 4 node 1 xshift -1.43 from 2,1 move C payoffs 3 8 +level 4 node 2 xshift 1.43 from 2,1 move D payoffs 8 3 +level 4 node 3 xshift -2.15 from 2,2 move E payoffs 5 5 +level 4 node 4 player 1 xshift 2.15 from 2,2 move F +level 6 node 1 xshift -1.43 from 4,4 move G payoffs 2 10 +level 6 node 2 xshift 1.43 from 4,4 move H payoffs 1 0 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_9.ef b/catalog/books/shohambrown2008/MAS_Fig5_9.ef new file mode 100644 index 000000000..168078648 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig5_9.ef @@ -0,0 +1,13 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 xshift -2.31 from 0,1 move A payoffs 1 0 +level 2 node 2 player 2 xshift 2.31 from 0,1 move D +level 4 node 1 xshift -2.24 from 2,2 move A payoffs 0 2 +level 4 node 2 player 1 xshift 2.24 from 2,2 move D +level 6 node 1 xshift -2.09 from 4,2 move A payoffs 3 1 +level 6 node 2 player 2 xshift 2.09 from 4,2 move D +level 8 node 1 xshift -1.79 from 6,2 move A payoffs 2 4 +level 8 node 2 player 1 xshift 1.79 from 6,2 move D +level 10 node 1 xshift -1.19 from 8,2 move A payoffs 4 3 +level 10 node 2 xshift 1.19 from 8,2 move D payoffs 3 5 diff --git a/catalog/books/shohambrown2008/MAS_Fig6_2.ef b/catalog/books/shohambrown2008/MAS_Fig6_2.ef new file mode 100644 index 000000000..4571fb548 --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig6_2.ef @@ -0,0 +1,38 @@ +player 1 name 1 +player 2 name 2 +level 0 node 1 player 1 +level 2 node 1 xshift -6.37 from 0,1 move C +level 2 node 2 xshift 6.37 from 0,1 move D +level 4 node 1 player 1 xshift -3.19 from 2,1 move c +level 4 node 2 player 1 xshift 3.19 from 2,1 move d +level 4 node 3 player 1 xshift -3.19 from 2,2 move c +level 4 node 4 player 1 xshift 3.19 from 2,2 move d +level 6 node 1 xshift -1.59 from 4,1 move C +level 6 node 2 xshift 1.59 from 4,1 move D +level 6 node 3 xshift -1.59 from 4,2 move C +level 6 node 4 xshift 1.59 from 4,2 move D +level 6 node 5 xshift -1.59 from 4,3 move C +level 6 node 6 xshift 1.59 from 4,3 move D +level 6 node 7 xshift -1.59 from 4,4 move C +level 6 node 8 xshift 1.59 from 4,4 move D +level 8 node 1 xshift -0.8 from 6,1 move c payoffs -2 -2 +level 8 node 2 xshift 0.8 from 6,1 move d payoffs -5 -1 +level 8 node 3 xshift -0.8 from 6,2 move c payoffs -1 -5 +level 8 node 4 xshift 0.8 from 6,2 move d payoffs -4 -4 +level 8 node 5 xshift -0.8 from 6,3 move c payoffs -5 -1 +level 8 node 6 xshift 0.8 from 6,3 move d payoffs -8 0 +level 8 node 7 xshift -0.8 from 6,4 move c payoffs -4 -4 +level 8 node 8 xshift 0.8 from 6,4 move d payoffs -7 -3 +level 8 node 9 xshift -0.8 from 6,5 move c payoffs -1 -5 +level 8 node 10 xshift 0.8 from 6,5 move d payoffs -4 -4 +level 8 node 11 xshift -0.8 from 6,6 move c payoffs 0 -8 +level 8 node 12 xshift 0.8 from 6,6 move d payoffs -3 -7 +level 8 node 13 xshift -0.8 from 6,7 move c payoffs -4 -4 +level 8 node 14 xshift 0.8 from 6,7 move d payoffs -7 -3 +level 8 node 15 xshift -0.8 from 6,8 move c payoffs -3 -7 +level 8 node 16 xshift 0.8 from 6,8 move d payoffs -6 -6 +iset 2,1 2,2 player 2 +iset 6,5 6,6 player 2 +iset 6,7 6,8 player 2 +iset 6,1 6,2 player 2 +iset 6,3 6,4 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig6_8.ef b/catalog/books/shohambrown2008/MAS_Fig6_8.ef new file mode 100644 index 000000000..c115b8e3d --- /dev/null +++ b/catalog/books/shohambrown2008/MAS_Fig6_8.ef @@ -0,0 +1,54 @@ +% Four games with uniform chance and corrected player 2 information sets +% Nature chooses among MP, PD, Coord, BoS with probability 1/4 each. +player 0 name Nature +player 1 name 1 +player 2 name 2 + +% Nature root +level 0 node 1 player 0 + +% Nature moves: uniform distribution shown on each branch +level 2 node 1 xshift -7.5 from 0,1 move MP~(1/4) +level 2 node 2 xshift -2.5 from 0,1 move PD~(1/4) +level 2 node 3 xshift 2.5 from 0,1 move Coord~(1/4) +level 2 node 4 xshift 7.5 from 0,1 move BoS~(1/4) + +% Player 1 moves U/D +level 4 node 1 xshift -1 from 2,1 move U +level 4 node 2 xshift 1 from 2,1 move D +level 4 node 3 xshift -1 from 2,2 move U +level 4 node 4 xshift 1 from 2,2 move D +level 4 node 5 xshift -1 from 2,3 move U +level 4 node 6 xshift 1 from 2,3 move D +level 4 node 7 xshift -1 from 2,4 move U +level 4 node 8 xshift 1 from 2,4 move D + +% Player 2 moves L/R and payoffs, left-to-right as in the figure +level 6 node 1 xshift -0.55 from 4,1 move L payoffs 2 0 +level 6 node 2 xshift 0.55 from 4,1 move R payoffs 0 2 +level 6 node 3 xshift -0.55 from 4,2 move L payoffs 0 2 +level 6 node 4 xshift 0.55 from 4,2 move R payoffs 2 0 + +level 6 node 5 xshift -0.55 from 4,3 move L payoffs 2 2 +level 6 node 6 xshift 0.55 from 4,3 move R payoffs 0 3 +level 6 node 7 xshift -0.55 from 4,4 move L payoffs 3 0 +level 6 node 8 xshift 0.55 from 4,4 move R payoffs 1 1 + +level 6 node 9 xshift -0.55 from 4,5 move L payoffs 2 2 +level 6 node 10 xshift 0.55 from 4,5 move R payoffs 0 0 +level 6 node 11 xshift -0.55 from 4,6 move L payoffs 0 0 +level 6 node 12 xshift 0.55 from 4,6 move R payoffs 1 1 + +level 6 node 13 xshift -0.55 from 4,7 move L payoffs 2 1 +level 6 node 14 xshift 0.55 from 4,7 move R payoffs 0 0 +level 6 node 15 xshift -0.55 from 4,8 move L payoffs 0 0 +level 6 node 16 xshift 0.55 from 4,8 move R payoffs 1 2 + +% Player 1 information sets +iset 2,1 2,2 player 1 +iset 2,3 2,4 player 1 + +% Player 2 information sets: +% first and third are the same; second and fourth are the same. +iset 4,1 4,2 4,5 4,6 player 2 +iset 4,3 4,4 4,7 4,8 player 2 diff --git a/doc/references.bib b/doc/references.bib index 108be64fe..4d02f9f2e 100644 --- a/doc/references.bib +++ b/doc/references.bib @@ -404,3 +404,10 @@ @article{Wichardt2008 year = {2008}, category = {articles_equilibria} } + +@book{ShoLeyB08, + title={Multiagent systems: Algorithmic, game-theoretic, and logical foundations}, + author={Shoham, Yoav and Leyton-Brown, Kevin}, + year={2008}, + publisher={Cambridge University Press} +} \ No newline at end of file From c0888aa8cdc239d3c2536ca5af9c23f2873536bc Mon Sep 17 00:00:00 2001 From: wangyzh Date: Tue, 9 Jun 2026 19:44:01 +0800 Subject: [PATCH 05/16] Add EFGs from Shoham and Leyton-Brown (2008) --- build_support/catalog/catalog.am | 27 ++++------ catalog/books/shohambrown2008/MAS_Fig5_1.ef | 12 ----- catalog/books/shohambrown2008/MAS_Fig5_10.ef | 12 ----- catalog/books/shohambrown2008/MAS_Fig5_11.ef | 10 ---- catalog/books/shohambrown2008/MAS_Fig5_12.ef | 15 ------ catalog/books/shohambrown2008/MAS_Fig5_15.ef | 11 ---- catalog/books/shohambrown2008/MAS_Fig5_2.ef | 11 ---- catalog/books/shohambrown2008/MAS_Fig5_9.ef | 13 ----- catalog/books/shohambrown2008/MAS_Fig6_2.ef | 38 ------------- catalog/books/shohambrown2008/MAS_Fig6_8.ef | 54 ------------------- .../{MAS_Fig5_1.efg => fig5_1.efg} | 0 .../{MAS_Fig5_10.efg => fig5_10.efg} | 0 .../{MAS_Fig5_11.efg => fig5_11.efg} | 0 .../{MAS_Fig5_12.efg => fig5_12.efg} | 0 .../{MAS_Fig5_15.efg => fig5_15.efg} | 0 .../{MAS_Fig5_2.efg => fig5_2.efg} | 0 .../{MAS_Fig5_9.efg => fig5_9.efg} | 0 .../{MAS_Fig6_2.efg => fig6_2.efg} | 0 .../{MAS_Fig6_8.efg => fig6_8.efg} | 0 doc/references.bib | 3 +- 20 files changed, 11 insertions(+), 195 deletions(-) delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_1.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_10.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_11.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_12.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_15.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_2.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig5_9.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig6_2.ef delete mode 100644 catalog/books/shohambrown2008/MAS_Fig6_8.ef rename catalog/books/shohambrown2008/{MAS_Fig5_1.efg => fig5_1.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_10.efg => fig5_10.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_11.efg => fig5_11.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_12.efg => fig5_12.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_15.efg => fig5_15.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_2.efg => fig5_2.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig5_9.efg => fig5_9.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig6_2.efg => fig6_2.efg} (100%) rename catalog/books/shohambrown2008/{MAS_Fig6_8.efg => fig6_8.efg} (100%) diff --git a/build_support/catalog/catalog.am b/build_support/catalog/catalog.am index f18a78e9e..16c1d7946 100644 --- a/build_support/catalog/catalog.am +++ b/build_support/catalog/catalog.am @@ -1,24 +1,15 @@ CATALOG_FILES = \ catalog/books/myerson1991/fig2_1.efg \ catalog/books/myerson1991/fig4_2.efg \ - catalog/books/shohambrown2008/MAS_Fig5_1.ef \ - catalog/books/shohambrown2008/MAS_Fig5_1.efg \ - catalog/books/shohambrown2008/MAS_Fig5_10.ef \ - catalog/books/shohambrown2008/MAS_Fig5_10.efg \ - catalog/books/shohambrown2008/MAS_Fig5_11.ef \ - catalog/books/shohambrown2008/MAS_Fig5_11.efg \ - catalog/books/shohambrown2008/MAS_Fig5_12.ef \ - catalog/books/shohambrown2008/MAS_Fig5_12.efg \ - catalog/books/shohambrown2008/MAS_Fig5_15.ef \ - catalog/books/shohambrown2008/MAS_Fig5_15.efg \ - catalog/books/shohambrown2008/MAS_Fig5_2.ef \ - catalog/books/shohambrown2008/MAS_Fig5_2.efg \ - catalog/books/shohambrown2008/MAS_Fig5_9.ef \ - catalog/books/shohambrown2008/MAS_Fig5_9.efg \ - catalog/books/shohambrown2008/MAS_Fig6_2.ef \ - catalog/books/shohambrown2008/MAS_Fig6_2.efg \ - catalog/books/shohambrown2008/MAS_Fig6_8.ef \ - catalog/books/shohambrown2008/MAS_Fig6_8.efg \ + catalog/books/shohambrown2008/fig5_1.efg \ + catalog/books/shohambrown2008/fig5_10.efg \ + catalog/books/shohambrown2008/fig5_11.efg \ + catalog/books/shohambrown2008/fig5_12.efg \ + catalog/books/shohambrown2008/fig5_15.efg \ + catalog/books/shohambrown2008/fig5_2.efg \ + catalog/books/shohambrown2008/fig5_9.efg \ + catalog/books/shohambrown2008/fig6_2.efg \ + catalog/books/shohambrown2008/fig6_8.efg \ catalog/books/vonstengel2022/fig10.1.efg \ catalog/books/vonstengel2022/fig10.12.efg \ catalog/books/vonstengel2022/fig10.5.efg \ diff --git a/catalog/books/shohambrown2008/MAS_Fig5_1.ef b/catalog/books/shohambrown2008/MAS_Fig5_1.ef deleted file mode 100644 index 4eb06de72..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_1.ef +++ /dev/null @@ -1,12 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 player 2 xshift -4.77 from 0,1 move 2-0 -level 2 node 2 player 2 xshift 0 from 0,1 move 1-1 -level 4 node 1 xshift -1.19 from 2,1 move no payoffs 0 0 -level 4 node 2 xshift 1.19 from 2,1 move yes payoffs 2 0 -level 2 node 3 player 2 xshift 4.77 from 0,1 move 0-2 -level 4 node 3 xshift -1.19 from 2,2 move no payoffs 0 0 -level 4 node 4 xshift 1.19 from 2,2 move yes payoffs 1 1 -level 4 node 5 xshift -1.19 from 2,3 move no payoffs 0 0 -level 4 node 6 xshift 1.19 from 2,3 move yes payoffs 0 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_10.ef b/catalog/books/shohambrown2008/MAS_Fig5_10.ef deleted file mode 100644 index bc10d8212..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_10.ef +++ /dev/null @@ -1,12 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 player 2 xshift -3.58 from 0,1 move L -level 2 node 2 xshift 3.58 from 0,1 move R payoffs 0 0 -level 4 node 1 xshift -2.86 from 2,1 move A -level 4 node 2 xshift 2.86 from 2,1 move B -level 6 node 1 xshift -1.43 from 4,1 move l payoffs 0 0 -level 6 node 2 xshift 1.43 from 4,1 move r payoffs 2 4 -level 6 node 3 xshift -1.43 from 4,2 move l payoffs 4 2 -level 6 node 4 xshift 1.43 from 4,2 move r payoffs 0 0 -iset 4,1 4,2 player 1 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_11.ef b/catalog/books/shohambrown2008/MAS_Fig5_11.ef deleted file mode 100644 index 13246edad..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_11.ef +++ /dev/null @@ -1,10 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 xshift -3.58 from 0,1 move C -level 2 node 2 xshift 3.58 from 0,1 move D -level 4 node 1 xshift -1.79 from 2,1 move c payoffs -1 -1 -level 4 node 2 xshift 1.79 from 2,1 move d payoffs -4 0 -level 4 node 3 xshift -1.79 from 2,2 move c payoffs 0 -4 -level 4 node 4 xshift 1.79 from 2,2 move d payoffs -3 -3 -iset 2,1 2,2 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_12.ef b/catalog/books/shohambrown2008/MAS_Fig5_12.ef deleted file mode 100644 index 98b720cdc..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_12.ef +++ /dev/null @@ -1,15 +0,0 @@ -% Extensive-form game transcribed from the uploaded image -player 1 name 1 -player 2 name 2 - -% Player 1's two decision nodes are in the same information set. -level 0 node 1 -level 2 node 1 xshift -3 from 0,1 move L -level 2 node 2 xshift 3 from 0,1 move R player 2 - -level 4 node 1 xshift -1 from 2,1 move L payoffs 1 0 -level 4 node 2 xshift 1 from 2,1 move R payoffs 100 100 -level 4 node 3 xshift -1 from 2,2 move U payoffs 5 1 -level 4 node 4 xshift 1 from 2,2 move D payoffs 2 2 - -iset 0,1 2,1 player 1 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_15.ef b/catalog/books/shohambrown2008/MAS_Fig5_15.ef deleted file mode 100644 index adb455c49..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_15.ef +++ /dev/null @@ -1,11 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 xshift -5.01 from 0,1 move L payoffs 1 1 -level 2 node 2 xshift -0.72 from 0,1 move C -level 2 node 3 xshift 5.01 from 0,1 move R -level 4 node 1 xshift -1.43 from 2,2 move U payoffs 0 1000 -level 4 node 2 xshift 1.43 from 2,2 move D payoffs 0 0 -level 4 node 3 xshift -1.43 from 2,3 move U payoffs 1 0 -level 4 node 4 xshift 1.43 from 2,3 move D payoffs 3 1 -iset 2,2 2,3 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_2.ef b/catalog/books/shohambrown2008/MAS_Fig5_2.ef deleted file mode 100644 index 630246f0b..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_2.ef +++ /dev/null @@ -1,11 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 player 2 xshift -3.22 from 0,1 move A -level 2 node 2 player 2 xshift 3.22 from 0,1 move B -level 4 node 1 xshift -1.43 from 2,1 move C payoffs 3 8 -level 4 node 2 xshift 1.43 from 2,1 move D payoffs 8 3 -level 4 node 3 xshift -2.15 from 2,2 move E payoffs 5 5 -level 4 node 4 player 1 xshift 2.15 from 2,2 move F -level 6 node 1 xshift -1.43 from 4,4 move G payoffs 2 10 -level 6 node 2 xshift 1.43 from 4,4 move H payoffs 1 0 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_9.ef b/catalog/books/shohambrown2008/MAS_Fig5_9.ef deleted file mode 100644 index 168078648..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig5_9.ef +++ /dev/null @@ -1,13 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 xshift -2.31 from 0,1 move A payoffs 1 0 -level 2 node 2 player 2 xshift 2.31 from 0,1 move D -level 4 node 1 xshift -2.24 from 2,2 move A payoffs 0 2 -level 4 node 2 player 1 xshift 2.24 from 2,2 move D -level 6 node 1 xshift -2.09 from 4,2 move A payoffs 3 1 -level 6 node 2 player 2 xshift 2.09 from 4,2 move D -level 8 node 1 xshift -1.79 from 6,2 move A payoffs 2 4 -level 8 node 2 player 1 xshift 1.79 from 6,2 move D -level 10 node 1 xshift -1.19 from 8,2 move A payoffs 4 3 -level 10 node 2 xshift 1.19 from 8,2 move D payoffs 3 5 diff --git a/catalog/books/shohambrown2008/MAS_Fig6_2.ef b/catalog/books/shohambrown2008/MAS_Fig6_2.ef deleted file mode 100644 index 4571fb548..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig6_2.ef +++ /dev/null @@ -1,38 +0,0 @@ -player 1 name 1 -player 2 name 2 -level 0 node 1 player 1 -level 2 node 1 xshift -6.37 from 0,1 move C -level 2 node 2 xshift 6.37 from 0,1 move D -level 4 node 1 player 1 xshift -3.19 from 2,1 move c -level 4 node 2 player 1 xshift 3.19 from 2,1 move d -level 4 node 3 player 1 xshift -3.19 from 2,2 move c -level 4 node 4 player 1 xshift 3.19 from 2,2 move d -level 6 node 1 xshift -1.59 from 4,1 move C -level 6 node 2 xshift 1.59 from 4,1 move D -level 6 node 3 xshift -1.59 from 4,2 move C -level 6 node 4 xshift 1.59 from 4,2 move D -level 6 node 5 xshift -1.59 from 4,3 move C -level 6 node 6 xshift 1.59 from 4,3 move D -level 6 node 7 xshift -1.59 from 4,4 move C -level 6 node 8 xshift 1.59 from 4,4 move D -level 8 node 1 xshift -0.8 from 6,1 move c payoffs -2 -2 -level 8 node 2 xshift 0.8 from 6,1 move d payoffs -5 -1 -level 8 node 3 xshift -0.8 from 6,2 move c payoffs -1 -5 -level 8 node 4 xshift 0.8 from 6,2 move d payoffs -4 -4 -level 8 node 5 xshift -0.8 from 6,3 move c payoffs -5 -1 -level 8 node 6 xshift 0.8 from 6,3 move d payoffs -8 0 -level 8 node 7 xshift -0.8 from 6,4 move c payoffs -4 -4 -level 8 node 8 xshift 0.8 from 6,4 move d payoffs -7 -3 -level 8 node 9 xshift -0.8 from 6,5 move c payoffs -1 -5 -level 8 node 10 xshift 0.8 from 6,5 move d payoffs -4 -4 -level 8 node 11 xshift -0.8 from 6,6 move c payoffs 0 -8 -level 8 node 12 xshift 0.8 from 6,6 move d payoffs -3 -7 -level 8 node 13 xshift -0.8 from 6,7 move c payoffs -4 -4 -level 8 node 14 xshift 0.8 from 6,7 move d payoffs -7 -3 -level 8 node 15 xshift -0.8 from 6,8 move c payoffs -3 -7 -level 8 node 16 xshift 0.8 from 6,8 move d payoffs -6 -6 -iset 2,1 2,2 player 2 -iset 6,5 6,6 player 2 -iset 6,7 6,8 player 2 -iset 6,1 6,2 player 2 -iset 6,3 6,4 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig6_8.ef b/catalog/books/shohambrown2008/MAS_Fig6_8.ef deleted file mode 100644 index c115b8e3d..000000000 --- a/catalog/books/shohambrown2008/MAS_Fig6_8.ef +++ /dev/null @@ -1,54 +0,0 @@ -% Four games with uniform chance and corrected player 2 information sets -% Nature chooses among MP, PD, Coord, BoS with probability 1/4 each. -player 0 name Nature -player 1 name 1 -player 2 name 2 - -% Nature root -level 0 node 1 player 0 - -% Nature moves: uniform distribution shown on each branch -level 2 node 1 xshift -7.5 from 0,1 move MP~(1/4) -level 2 node 2 xshift -2.5 from 0,1 move PD~(1/4) -level 2 node 3 xshift 2.5 from 0,1 move Coord~(1/4) -level 2 node 4 xshift 7.5 from 0,1 move BoS~(1/4) - -% Player 1 moves U/D -level 4 node 1 xshift -1 from 2,1 move U -level 4 node 2 xshift 1 from 2,1 move D -level 4 node 3 xshift -1 from 2,2 move U -level 4 node 4 xshift 1 from 2,2 move D -level 4 node 5 xshift -1 from 2,3 move U -level 4 node 6 xshift 1 from 2,3 move D -level 4 node 7 xshift -1 from 2,4 move U -level 4 node 8 xshift 1 from 2,4 move D - -% Player 2 moves L/R and payoffs, left-to-right as in the figure -level 6 node 1 xshift -0.55 from 4,1 move L payoffs 2 0 -level 6 node 2 xshift 0.55 from 4,1 move R payoffs 0 2 -level 6 node 3 xshift -0.55 from 4,2 move L payoffs 0 2 -level 6 node 4 xshift 0.55 from 4,2 move R payoffs 2 0 - -level 6 node 5 xshift -0.55 from 4,3 move L payoffs 2 2 -level 6 node 6 xshift 0.55 from 4,3 move R payoffs 0 3 -level 6 node 7 xshift -0.55 from 4,4 move L payoffs 3 0 -level 6 node 8 xshift 0.55 from 4,4 move R payoffs 1 1 - -level 6 node 9 xshift -0.55 from 4,5 move L payoffs 2 2 -level 6 node 10 xshift 0.55 from 4,5 move R payoffs 0 0 -level 6 node 11 xshift -0.55 from 4,6 move L payoffs 0 0 -level 6 node 12 xshift 0.55 from 4,6 move R payoffs 1 1 - -level 6 node 13 xshift -0.55 from 4,7 move L payoffs 2 1 -level 6 node 14 xshift 0.55 from 4,7 move R payoffs 0 0 -level 6 node 15 xshift -0.55 from 4,8 move L payoffs 0 0 -level 6 node 16 xshift 0.55 from 4,8 move R payoffs 1 2 - -% Player 1 information sets -iset 2,1 2,2 player 1 -iset 2,3 2,4 player 1 - -% Player 2 information sets: -% first and third are the same; second and fourth are the same. -iset 4,1 4,2 4,5 4,6 player 2 -iset 4,3 4,4 4,7 4,8 player 2 diff --git a/catalog/books/shohambrown2008/MAS_Fig5_1.efg b/catalog/books/shohambrown2008/fig5_1.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_1.efg rename to catalog/books/shohambrown2008/fig5_1.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_10.efg b/catalog/books/shohambrown2008/fig5_10.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_10.efg rename to catalog/books/shohambrown2008/fig5_10.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_11.efg b/catalog/books/shohambrown2008/fig5_11.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_11.efg rename to catalog/books/shohambrown2008/fig5_11.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_12.efg b/catalog/books/shohambrown2008/fig5_12.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_12.efg rename to catalog/books/shohambrown2008/fig5_12.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_15.efg b/catalog/books/shohambrown2008/fig5_15.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_15.efg rename to catalog/books/shohambrown2008/fig5_15.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_2.efg b/catalog/books/shohambrown2008/fig5_2.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_2.efg rename to catalog/books/shohambrown2008/fig5_2.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig5_9.efg b/catalog/books/shohambrown2008/fig5_9.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig5_9.efg rename to catalog/books/shohambrown2008/fig5_9.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig6_2.efg b/catalog/books/shohambrown2008/fig6_2.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig6_2.efg rename to catalog/books/shohambrown2008/fig6_2.efg diff --git a/catalog/books/shohambrown2008/MAS_Fig6_8.efg b/catalog/books/shohambrown2008/fig6_8.efg similarity index 100% rename from catalog/books/shohambrown2008/MAS_Fig6_8.efg rename to catalog/books/shohambrown2008/fig6_8.efg diff --git a/doc/references.bib b/doc/references.bib index 4d02f9f2e..5376d2223 100644 --- a/doc/references.bib +++ b/doc/references.bib @@ -409,5 +409,6 @@ @book{ShoLeyB08 title={Multiagent systems: Algorithmic, game-theoretic, and logical foundations}, author={Shoham, Yoav and Leyton-Brown, Kevin}, year={2008}, - publisher={Cambridge University Press} + publisher={Cambridge University Press}, + category = {textbooks} } \ No newline at end of file From 9950b94db50197fdbb7409d8fc7f31f2768323ce Mon Sep 17 00:00:00 2001 From: wangyzh Date: Wed, 10 Jun 2026 15:24:28 +0800 Subject: [PATCH 06/16] Add more textbooks to bib --- doc/references.bib | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/doc/references.bib b/doc/references.bib index 5376d2223..61d2c7943 100644 --- a/doc/references.bib +++ b/doc/references.bib @@ -411,4 +411,28 @@ @book{ShoLeyB08 year={2008}, publisher={Cambridge University Press}, category = {textbooks} +} + +@book{OsbRub94, + title={A course in game theory}, + author={Osborne, Martin J and Rubinstein, Ariel}, + year={1994}, + publisher={MIT press}, + category = {textbooks} +} + +@book{Gia18, + title={Game theory}, + author={Giacomo Bonanno}, + year={2018}, + publisher={CreateSpace Independent Publishing Platform}, + category = {textbooks} +} + +@book{NiouOrde15, + title={Strategy and politics: an introduction to game theory}, + author={Niou, Emerson and Ordeshook, Peter C}, + year={2015}, + publisher={Routledge}, + category = {textbooks} } \ No newline at end of file From 8d12e1a56b752228215fd6c85c1ef7952a309614 Mon Sep 17 00:00:00 2001 From: wangyzh Date: Wed, 10 Jun 2026 18:59:30 +0800 Subject: [PATCH 07/16] A first fix on issue #920 --- build_support/catalog/test_update.py | 21 +++++++++++++++++++++ build_support/catalog/update.py | 22 ++++++++++++++++++++-- 2 files changed, 41 insertions(+), 2 deletions(-) diff --git a/build_support/catalog/test_update.py b/build_support/catalog/test_update.py index 1ee941b6c..0d04f41f9 100644 --- a/build_support/catalog/test_update.py +++ b/build_support/catalog/test_update.py @@ -147,6 +147,27 @@ def _make_image_files(catalog_dir, slug, fmt="efg"): (img_dir / f"{slug}.ef").touch() +# --------------------------------------------------------------------------- +# Tests for catalog resource selection +# --------------------------------------------------------------------------- + + +@pytest.mark.catalog_update +class TestCatalogResourceSelection: + """Tests for selecting the catalog source used by update.py.""" + + def test_use_catalog_dir_overrides_stale_package_catalog(self, tmp_path, monkeypatch): + """The updater points pygambit's catalog helpers at the local catalog dir.""" + stale_catalog = tmp_path / "stale_catalog_data" + local_catalog = tmp_path / "catalog" + monkeypatch.setattr(update.gbt.catalog, "_CATALOG_RESOURCE", stale_catalog) + + selected = update.use_catalog_dir(local_catalog) + + assert selected == local_catalog + assert update.gbt.catalog._CATALOG_RESOURCE == local_catalog + + # --------------------------------------------------------------------------- # Tests for catalog_draw_tree_settings # --------------------------------------------------------------------------- diff --git a/build_support/catalog/update.py b/build_support/catalog/update.py index f61acc014..f418ccd54 100644 --- a/build_support/catalog/update.py +++ b/build_support/catalog/update.py @@ -16,6 +16,17 @@ SUPPORTED_GAME_FORMATS = {"efg", "nfg"} +def use_catalog_dir(catalog_dir: Path | None = None) -> Path: + """Point pygambit's catalog helpers at this checkout's catalog directory. + + update.py is a source-tree maintenance script, so it should not read stale + package-data copies from an installed or previously built pygambit. + """ + catalog_dir = catalog_dir or CATALOG_DIR + gbt.catalog._CATALOG_RESOURCE = catalog_dir + return catalog_dir + + def catalog_draw_tree_settings(slug: str) -> dict: """Return the draw_tree settings for a given catalog slug.""" with open(DRAW_TREE_SETTINGS_CONFIG, encoding="utf-8") as f: @@ -390,10 +401,17 @@ def update_makefile( ) args = parser.parse_args() + catalog_dir = use_catalog_dir() + # Create RST list-table used by doc/catalog.rst df = gbt.catalog.games(include_descriptions=True) - generate_rst_table(df, CATALOG_RST_TABLE, regenerate_images=args.regenerate_images) + generate_rst_table( + df, + CATALOG_RST_TABLE, + regenerate_images=args.regenerate_images, + catalog_dir=catalog_dir, + ) print(f"Generated {CATALOG_RST_TABLE} for use in local docs build. DO NOT COMMIT.") if args.build: # Update the Makefile.am with the current list of catalog files - update_makefile() + update_makefile(catalog_dir=catalog_dir) From 1a54755d81af770c6fe1bf3dbcd585901f9e8579 Mon Sep 17 00:00:00 2001 From: wangyzh Date: Wed, 10 Jun 2026 21:42:43 +0800 Subject: [PATCH 08/16] Add Giacomo Bonanno (2018) to catelog --- build_support/catalog/catalog.am | 10 ++++++ build_support/catalog/catalog_hierarchy.yaml | 1 + catalog/books/bonanno18/fig12_18.efg | 23 ++++++++++++ catalog/books/bonanno18/fig3_1.efg | 14 ++++++++ catalog/books/bonanno18/fig3_10.efg | 12 +++++++ catalog/books/bonanno18/fig3_17.efg | 26 ++++++++++++++ catalog/books/bonanno18/fig4_17.efg | 22 ++++++++++++ catalog/books/bonanno18/fig4_19.efg | 38 ++++++++++++++++++++ catalog/books/bonanno18/fig4_26.efg | 23 ++++++++++++ catalog/books/bonanno18/fig4_3.efg | 22 ++++++++++++ catalog/books/bonanno18/fig4_40.efg | 38 ++++++++++++++++++++ catalog/books/bonanno18/fig4_5.efg | 18 ++++++++++ 12 files changed, 247 insertions(+) create mode 100644 catalog/books/bonanno18/fig12_18.efg create mode 100644 catalog/books/bonanno18/fig3_1.efg create mode 100644 catalog/books/bonanno18/fig3_10.efg create mode 100644 catalog/books/bonanno18/fig3_17.efg create mode 100644 catalog/books/bonanno18/fig4_17.efg create mode 100644 catalog/books/bonanno18/fig4_19.efg create mode 100644 catalog/books/bonanno18/fig4_26.efg create mode 100644 catalog/books/bonanno18/fig4_3.efg create mode 100644 catalog/books/bonanno18/fig4_40.efg create mode 100644 catalog/books/bonanno18/fig4_5.efg diff --git a/build_support/catalog/catalog.am b/build_support/catalog/catalog.am index 16c1d7946..c540b730a 100644 --- a/build_support/catalog/catalog.am +++ b/build_support/catalog/catalog.am @@ -1,4 +1,14 @@ CATALOG_FILES = \ + catalog/books/bonanno18/fig12_18.efg \ + catalog/books/bonanno18/fig3_1.efg \ + catalog/books/bonanno18/fig3_10.efg \ + catalog/books/bonanno18/fig3_17.efg \ + catalog/books/bonanno18/fig4_17.efg \ + catalog/books/bonanno18/fig4_19.efg \ + catalog/books/bonanno18/fig4_26.efg \ + catalog/books/bonanno18/fig4_3.efg \ + catalog/books/bonanno18/fig4_40.efg \ + catalog/books/bonanno18/fig4_5.efg \ catalog/books/myerson1991/fig2_1.efg \ catalog/books/myerson1991/fig4_2.efg \ catalog/books/shohambrown2008/fig5_1.efg \ diff --git a/build_support/catalog/catalog_hierarchy.yaml b/build_support/catalog/catalog_hierarchy.yaml index 2feffdd7b..55aa115a7 100644 --- a/build_support/catalog/catalog_hierarchy.yaml +++ b/build_support/catalog/catalog_hierarchy.yaml @@ -15,6 +15,7 @@ labels: books/vonstengel2022: "von Stengel (2022) — Game Theory Basics" books/watson2013: "Watson (2013) — Strategy: An Introduction to Game Theory" books/shohambrown2008: "Shoham and Leyton-Brown (2008) — Multiagent Systems, Algorithmic, Game-Theoretic, and Logical Foundations" + books/bonanno18: "Giacomo Bonanno (2018) — Game Theory" journals/geb/gilboa1997: "Gilboa (1997)" journals/geb/wichardt2008: "Wichardt (2008)" journals/ijgt/nau2004: "Nau et al. (2004)" diff --git a/catalog/books/bonanno18/fig12_18.efg b/catalog/books/bonanno18/fig12_18.efg new file mode 100644 index 000000000..bc9471e22 --- /dev/null +++ b/catalog/books/bonanno18/fig12_18.efg @@ -0,0 +1,23 @@ +EFG 2 R "Fig 12.18 from Bonanno (2018)" { "Player 1" "Player 2" "Player 3" } +" +Fig 12.18 from :cite:p:`Gia18`. + +This is a game from exercise 12.5. +" + +p "" 1 1 "" { "Off" "On" } 0 +p "" 2 1 "" { "Off" "On" } 0 +p "" 3 1 "" { "Guess (Off,Off)" "Guess (Off,On)" "Guess (On,Off)" } 0 +t "" 1 "All 200 (correct guess)" { 200, 200, 200 } +t "" 2 "P1 correct, P2 wrong, P3 gets 50" { 100, 0, 50 } +t "" 3 "P2 correct, P1 wrong, P3 gets 50" { 0, 100, 50 } +p "" 3 1 "" { "Guess (Off,Off)" "Guess (Off,On)" "Guess (On,Off)" } 0 +t "" 2 "P1 correct, P2 wrong, P3 gets 50" { 100, 0, 50 } +t "" 1 "All 200 (correct guess)" { 200, 200, 200 } +t "" 4 "All 0 (guess entirely wrong)" { 0, 0, 0 } +p "" 2 1 "" { "Off" "On" } 0 +p "" 3 1 "" { "Guess (Off,Off)" "Guess (Off,On)" "Guess (On,Off)" } 0 +t "" 3 "P2 correct, P1 wrong, P3 gets 50" { 0, 100, 50 } +t "" 4 "All 0 (guess entirely wrong)" { 0, 0, 0 } +t "" 1 "All 200 (correct guess)" { 200, 200, 200 } +t "" 5 "Both On -> immediate payoffs" { 100, 100, 300 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig3_1.efg b/catalog/books/bonanno18/fig3_1.efg new file mode 100644 index 000000000..830f00207 --- /dev/null +++ b/catalog/books/bonanno18/fig3_1.efg @@ -0,0 +1,14 @@ +EFG 2 R "Fig 3.1 from Bonanno (2018)" { "Amy" "Beth" } +" +Fig 3.1 from :cite:p:`Gia18`. + +This is an ultimatum game. +" + +p "" 1 1 "" { "50-50" "70-30" } 0 +p "" 2 1 "" { "Accept" "Reject" } 0 +t "" 1 "50-50 Accept" { 50000, 50000 } +t "" 2 "Litigation" { 40000, 20000 } +p "" 2 2 "" { "Accept" "Reject" } 0 +t "" 3 "70-30 Accept" { 70000, 30000 } +t "" 2 "Litigation" { 40000, 20000 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig3_10.efg b/catalog/books/bonanno18/fig3_10.efg new file mode 100644 index 000000000..2b3ef1da9 --- /dev/null +++ b/catalog/books/bonanno18/fig3_10.efg @@ -0,0 +1,12 @@ +EFG 2 R "Fig 3.10 from Bonanno (2018)" { "Entrant" "Incumbent" } +" +Fig 3.10 from :cite:p:`Gia18`. + +This is a market entry game. +" + +p "" 1 1 "" { "Enter" "Stay out" } 0 +p "" 2 1 "" { "Fight" "Accommodate" } 0 +t "" 2 "Fight (both 0)" { 0, 0 } +t "" 3 "Accommodate (both 2)" { 2, 2 } +t "" 1 "Stay out (Entrant=1, Incumbent=5)" { 1, 5 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig3_17.efg b/catalog/books/bonanno18/fig3_17.efg new file mode 100644 index 000000000..2a31291aa --- /dev/null +++ b/catalog/books/bonanno18/fig3_17.efg @@ -0,0 +1,26 @@ +EFG 2 R "Fig 3.17 from Bonanno (2018)" { "A" "B" "C" } +" +Fig 3.17 from :cite:p:`Gia18`. + +This is a board voting game from exercise 3.2. +" + +p "" 1 1 "" { "Promote" "Keep" "Fire" } 0 +p "" 2 1 "" { "Accept" "Disagree" } 0 +t "" 1 "Promote" { 3, 1, 2 } +p "" 3 1 "" { "Promote" "Keep" "Fire" } 0 +t "" 1 "Promote" { 3, 1, 2 } +t "" 2 "Keep" { 2, 3, 1 } +t "" 3 "Fire" { 1, 2, 3 } +p "" 2 2 "" { "Accept" "Disagree" } 0 +t "" 2 "Keep" { 2, 3, 1 } +p "" 3 2 "" { "Promote" "Keep" "Fire" } 0 +t "" 1 "Promote" { 3, 1, 2 } +t "" 2 "Keep" { 2, 3, 1 } +t "" 3 "Fire" { 1, 2, 3 } +p "" 2 3 "" { "Accept" "Disagree" } 0 +t "" 3 "Fire" { 1, 2, 3 } +p "" 3 3 "" { "Promote" "Keep" "Fire" } 0 +t "" 1 "Promote" { 3, 1, 2 } +t "" 2 "Keep" { 2, 3, 1 } +t "" 3 "Fire" { 1, 2, 3 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig4_17.efg b/catalog/books/bonanno18/fig4_17.efg new file mode 100644 index 000000000..05a13c53f --- /dev/null +++ b/catalog/books/bonanno18/fig4_17.efg @@ -0,0 +1,22 @@ +EFG 2 R "Fig 4.17 from Bonanno (2018)" { "Adele" "Ben" } +" +Fig 4.17 from :cite:p:`Gia18`. + +This is an example for chance moves in EFGs. +" + +c "" 1 "" { "Black" 1/3 "Red" 2/3 } 0 +p "" 1 1 "" { "Say Black" "Say Red" } 0 +p "" 2 1 "" { "Guess Black" "Guess Red" } 0 +t "" 1 "Ben correct" { -9, 9 } +t "" 2 "Ben incorrect" { 9, -9 } +p "" 2 2 "" { "Guess Black" "Guess Red" } 0 +t "" 1 "Ben correct" { -9, 9 } +t "" 2 "Ben incorrect" { 9, -9 } +p "" 1 2 "" { "Say Black" "Say Red" } 0 +p "" 2 1 "" { "Guess Black" "Guess Red" } 0 +t "" 2 "Ben incorrect" { 9, -9 } +t "" 1 "Ben correct" { -9, 9 } +p "" 2 2 "" { "Guess Black" "Guess Red" } 0 +t "" 2 "Ben incorrect" { 9, -9 } +t "" 1 "Ben correct" { -9, 9 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig4_19.efg b/catalog/books/bonanno18/fig4_19.efg new file mode 100644 index 000000000..ffc995bb7 --- /dev/null +++ b/catalog/books/bonanno18/fig4_19.efg @@ -0,0 +1,38 @@ +EFG 2 R "Fig 4.19 from Bonanno (2018)" { "Player 1" "Player 2" } +" +Fig 4.19 from :cite:p:`Gia18`. + +This is a game where two players decide whether to exchange envelopes that contain money. +" + +c "" 1 "" { "P1:100 P2:200" 1/6 "P1:100 P2:300" 1/6 "P1:200 P2:100" 1/6 "P1:200 P2:300" 1/6 "P1:300 P2:100" 1/6 "P1:300 P2:200" 1/6 } 0 +p "" 1 1 "" { "Pass" "Request trade" } 0 +t "" 1 "P1 keeps 100, P2 keeps 200" { 100, 200 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 2 "Traded: P1 200, P2 100" { 200, 100 } +t "" 1 "P1 keeps 100, P2 keeps 200" { 100, 200 } +p "" 1 1 "" { "Pass" "Request trade" } 0 +t "" 3 "P1 keeps 100, P2 keeps 300" { 100, 300 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 4 "Traded: P1 300, P2 100" { 300, 100 } +t "" 3 "P1 keeps 100, P2 keeps 300" { 100, 300 } +p "" 1 2 "" { "Pass" "Request trade" } 0 +t "" 5 "P1 keeps 200, P2 keeps 100" { 200, 100 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 6 "Traded: P1 100, P2 200" { 100, 200 } +t "" 5 "P1 keeps 200, P2 keeps 100" { 200, 100 } +p "" 1 2 "" { "Pass" "Request trade" } 0 +t "" 7 "P1 keeps 200, P2 keeps 300" { 200, 300 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 8 "Traded: P1 300, P2 200" { 300, 200 } +t "" 7 "P1 keeps 200, P2 keeps 300" { 200, 300 } +p "" 1 3 "" { "Pass" "Request trade" } 0 +t "" 9 "P1 keeps 300, P2 keeps 100" { 300, 100 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 10 "Traded: P1 100, P2 300" { 100, 300 } +t "" 9 "P1 keeps 300, P2 keeps 100" { 300, 100 } +p "" 1 3 "" { "Pass" "Request trade" } 0 +t "" 11 "P1 keeps 300, P2 keeps 200" { 300, 200 } +p "" 2 1 "" { "Yes" "No" } 0 +t "" 12 "Traded: P1 200, P2 300" { 200, 300 } +t "" 11 "P1 keeps 300, P2 keeps 200" { 300, 200 } diff --git a/catalog/books/bonanno18/fig4_26.efg b/catalog/books/bonanno18/fig4_26.efg new file mode 100644 index 000000000..7270bf635 --- /dev/null +++ b/catalog/books/bonanno18/fig4_26.efg @@ -0,0 +1,23 @@ +EFG 2 R "Fig 4.26 from Bonanno (2018)" { "Amy" "Bill" } +" +Fig 4.26 from :cite:p:`Gia18`. + +This is a simple auction where two players bid on a piece of paper. +We add the value of the object, which is not specified in the original description, since this is necessary for determining payoffs. +" + +p "" 1 1 "" { "2" "3" } 0 +p "" 2 1 "" { "2" "3" } 0 +p "" 1 2 "" { "Pass" "Double" } 0 +t "" 1 "A2_B2_Pass" { 0, 8 } +t "" 2 "A4_B2_Double" { 6, 0 } +p "" 1 2 "" { "Pass" "Double" } 0 +t "" 3 "A2_B3_Pass" { 0, 7 } +t "" 4 "A4_B3_Double" { 6, 0 } +p "" 2 1 "" { "2" "3" } 0 +p "" 1 3 "" { "Pass" "Double" } 0 +t "" 5 "A3_B2_Pass" { 7, 0 } +t "" 6 "A6_B2_Double" { 4, 0 } +p "" 1 4 "" { "Pass" "Double" } 0 +t "" 7 "A3_B3_Pass" { 0, 7 } +t "" 8 "A6_B3_Double" { 4, 0 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig4_3.efg b/catalog/books/bonanno18/fig4_3.efg new file mode 100644 index 000000000..fce55d72b --- /dev/null +++ b/catalog/books/bonanno18/fig4_3.efg @@ -0,0 +1,22 @@ +EFG 2 R "Fig 4.3 from Bonanno (2018)" { "Ann" "Bob" "Carla" } +" +Fig 4.3 from :cite:p:`Gia18`. + +This is an example of imperfect-information games to explain information sets. +" + +p "" 1 1 "" { "Red" "Black" } 0 +p "" 2 1 "" { "Say Red" "Say Black" } 0 +p "" 3 1 "" { "Guess Red" "Guess Black" } 0 +t "" 1 "Carla correct" { -1, -1, 2 } +t "" 2 "Carla incorrect" { 1, 1, -2 } +p "" 3 2 "" { "Guess Red" "Guess Black" } 0 +t "" 1 "Carla correct" { -1, -1, 2 } +t "" 2 "Carla incorrect" { 1, 1, -2 } +p "" 2 2 "" { "Say Red" "Say Black" } 0 +p "" 3 1 "" { "Guess Red" "Guess Black" } 0 +t "" 2 "Carla incorrect" { 1, 1, -2 } +t "" 1 "Carla correct" { -1, -1, 2 } +p "" 3 2 "" { "Guess Red" "Guess Black" } 0 +t "" 2 "Carla incorrect" { 1, 1, -2 } +t "" 1 "Carla correct" { -1, -1, 2 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig4_40.efg b/catalog/books/bonanno18/fig4_40.efg new file mode 100644 index 000000000..5448a1770 --- /dev/null +++ b/catalog/books/bonanno18/fig4_40.efg @@ -0,0 +1,38 @@ +EFG 2 R "Fig 4.40 from Bonanno (2018)" { "Yvonne" "Zoe" } +" +Fig 4.40 from :cite:p:`Gia18`. + +This is a simplified poker game. +" + +c "" 1 "" { "Y:A,Z:B" 1/6 "Y:A,Z:C" 1/6 "Y:B,Z:A" 1/6 "Y:B,Z:C" 1/6 "Y:C,Z:A" 1/6 "Y:C,Z:B" 1/6 } 0 +p "" 1 1 "" { "Pass" "Bet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +p "" 2 1 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 2 "Yvonne wins big" { 2, -2 } +p "" 1 1 "" { "Pass" "Bet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +p "" 2 2 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 2 "Yvonne wins big" { 2, -2 } +p "" 1 2 "" { "Pass" "Bet" } 0 +t "" 3 "Zoe wins small" { -1, 1 } +p "" 2 3 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 4 "Zoe wins big" { -2, 2 } +p "" 1 2 "" { "Pass" "Bet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +p "" 2 2 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 2 "Yvonne wins big" { 2, -2 } +p "" 1 3 "" { "Pass" "Bet" } 0 +t "" 3 "Zoe wins small" { -1, 1 } +p "" 2 3 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 4 "Zoe wins big" { -2, 2 } +p "" 1 3 "" { "Pass" "Bet" } 0 +t "" 3 "Zoe wins small" { -1, 1 } +p "" 2 1 "" { "Fold" "Meet" } 0 +t "" 1 "Yvonne wins small" { 1, -1 } +t "" 4 "Zoe wins big" { -2, 2 } \ No newline at end of file diff --git a/catalog/books/bonanno18/fig4_5.efg b/catalog/books/bonanno18/fig4_5.efg new file mode 100644 index 000000000..752c507bc --- /dev/null +++ b/catalog/books/bonanno18/fig4_5.efg @@ -0,0 +1,18 @@ +EFG 2 R "Fig 4.5 from Bonanno (2018)" { "Employer" "Yvonne" "Fran" } +" +Fig 4.5 from :cite:p:`Gia18`. + +This is a game where two players interview for the same job. Only one person will be hired. +" + +p "" 1 1 "" { "Call Yvonne" "Call Fran" } 0 +p "" 2 1 "" { "Accept" "Reject" } 0 +t "" 1 "Yvonne accepts first" { 1, 2, 1 } +p "" 3 1 "" { "Accept" "Reject" } 0 +t "" 2 "Fran accepts recycled" { 1, 1, 0 } +t "" 3 "Both reject (unfilled)" { 0, 1, 1 } +p "" 3 1 "" { "Accept" "Reject" } 0 +t "" 4 "Fran accepts first" { 1, 1, 2 } +p "" 2 1 "" { "Accept" "Reject" } 0 +t "" 5 "Yvonne accepts recycled" { 1, 0, 1 } +t "" 3 "Both reject (unfilled)" { 0, 1, 1 } \ No newline at end of file From 2fc760d5a822dd2fc3fe2493bf4814e67147c1c2 Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 12:03:40 +0100 Subject: [PATCH 09/16] update draw_tree version --- .github/workflows/python.yml | 8 ++++---- .readthedocs.yml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index a31e9152f..acda55d49 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -30,7 +30,7 @@ jobs: cd dist sdist=$(ls pygambit-*.tar.gz) pip install -v "${sdist}[test,doc]" - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.9.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" - name: Run tests run: pytest --run-tutorials @@ -53,7 +53,7 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.9.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" - name: Run tests run: pytest --run-tutorials @@ -76,7 +76,7 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.9.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" - name: Run tests run: pytest --run-tutorials @@ -99,6 +99,6 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.9.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" - name: Run tests run: pytest --run-tutorials diff --git a/.readthedocs.yml b/.readthedocs.yml index d06f69e2b..d7f5b1b29 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -17,7 +17,7 @@ build: - pdf2svg jobs: post_install: - - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.9.1" + - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" # Create RST for catalog table in docs - $READTHEDOCS_VIRTUALENV_PATH/bin/python build_support/catalog/update.py From 3962879dff2eed91ab6e530c1a0cc6c24427aaec Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 13:41:00 +0100 Subject: [PATCH 10/16] add custom settings --- build_support/catalog/draw_tree_settings.yaml | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/build_support/catalog/draw_tree_settings.yaml b/build_support/catalog/draw_tree_settings.yaml index d0b414f55..3ac60af11 100644 --- a/build_support/catalog/draw_tree_settings.yaml +++ b/build_support/catalog/draw_tree_settings.yaml @@ -31,3 +31,59 @@ overrides: sublevel_scaling: 0.5 journals/geb/gilboa1997/fig1: action_label_dist: 5.0 + books/shohambrown2008/fig5_12: + action_label_dist: 5.0 + books/shohambrown2008/fig6_2: + action_label_dist: 5.0 + books/shohambrown2008/fig6_8: + sublevel_scaling: 1 + action_label_dist: 5.0 + books/bonanno18/fig12_18: + scale_factor: 1.0 + level_scaling: 1.0 + sublevel_scaling: 1.0 + width_scaling: 2.0 + shared_terminal_depth: false + action_label_position_by: player + action_label_dist: 1.5 + vary_action_label_positions: true + vary_action_label_positions_by: player + label_bg: + 3: true + label_bg_opacity: 0.8 + vary_action_label_positions_choices: + - 3 + books/bonanno18/fig3_10: + width_scaling: 1.6 + books/bonanno18/fig3_17: + action_label_position: 0.8 + books/bonanno18/fig4_17: + sublevel_scaling: 1.0 + action_label_position: 0.35 + width_scaling: 1.25 + books/bonanno18/fig4_19: + sublevel_scaling: 0 + shared_terminal_depth: true + action_label_position_by: player + label_bg: + 0: true + label_bg_color: white + label_bg_opacity: 0.8 + books/bonanno18/fig4_3: + sublevel_scaling: 0.5 + width_scaling: 1.25 + action_label_position_by: player + vary_action_label_positions: true + vary_action_label_positions_by: player + label_bg: + 3: true + vary_action_label_positions_choices: + - 3 + books/bonanno18/fig4_40: + sublevel_scaling: 0 + shared_terminal_depth: true + action_label_position_by: player + label_bg: + 0: true + label_bg_color: white + label_bg_opacity: 0.8 From 05a994c49e7f176e606698d6113a023e5ba285a3 Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 13:52:50 +0100 Subject: [PATCH 11/16] few more settings tweaks --- build_support/catalog/draw_tree_settings.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build_support/catalog/draw_tree_settings.yaml b/build_support/catalog/draw_tree_settings.yaml index 3ac60af11..1a4fe1459 100644 --- a/build_support/catalog/draw_tree_settings.yaml +++ b/build_support/catalog/draw_tree_settings.yaml @@ -33,6 +33,7 @@ overrides: action_label_dist: 5.0 books/shohambrown2008/fig5_12: action_label_dist: 5.0 + width_scaling: 0.75 books/shohambrown2008/fig6_2: action_label_dist: 5.0 books/shohambrown2008/fig6_8: @@ -80,7 +81,7 @@ overrides: vary_action_label_positions_choices: - 3 books/bonanno18/fig4_40: - sublevel_scaling: 0 + sublevel_scaling: 1 shared_terminal_depth: true action_label_position_by: player label_bg: From 322ecd3c5b7f6169fac56be1940efd8fbd145bb8 Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 14:51:37 +0100 Subject: [PATCH 12/16] Update .readthedocs.yml --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index d7f5b1b29..74390c37d 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -17,7 +17,7 @@ build: - pdf2svg jobs: post_install: - - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" + - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.0" # Create RST for catalog table in docs - $READTHEDOCS_VIRTUALENV_PATH/bin/python build_support/catalog/update.py From 46ed98b7db10eef05c6725092e2584ae08b45352 Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 14:51:46 +0100 Subject: [PATCH 13/16] Update .github/workflows/python.yml --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index acda55d49..e23a98875 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -99,6 +99,6 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.0" - name: Run tests run: pytest --run-tutorials From 1fedf39eca03440715a7ff130cef849cecc54c66 Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 14:51:55 +0100 Subject: [PATCH 14/16] Update .github/workflows/python.yml --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index e23a98875..4921da248 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -76,7 +76,7 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.0" - name: Run tests run: pytest --run-tutorials From eee4981766b8bc5ecfb015a944ed68265b9b5d4e Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 14:52:04 +0100 Subject: [PATCH 15/16] Update .github/workflows/python.yml --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 4921da248..c9ee2fa3c 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -53,7 +53,7 @@ jobs: - name: Build extension run: | python -m pip install -v .[test,doc] - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.0" - name: Run tests run: pytest --run-tutorials From 4a745fdb50961112ed331845570c192f4dee5f4c Mon Sep 17 00:00:00 2001 From: Ed Chalstrey Date: Wed, 17 Jun 2026 14:52:12 +0100 Subject: [PATCH 16/16] Update .github/workflows/python.yml --- .github/workflows/python.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index c9ee2fa3c..42003ebf7 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -30,7 +30,7 @@ jobs: cd dist sdist=$(ls pygambit-*.tar.gz) pip install -v "${sdist}[test,doc]" - pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.1" + pip install "draw-tree @ git+https://github.com/gambitproject/draw_tree.git@v0.11.0" - name: Run tests run: pytest --run-tutorials