You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|[1](#idea-1-updating-the-gambit-gui)| Updating the Gambit GUI | Medium | GUI, visualization, C++, wxWidgets |
36
-
|[2](#idea-2-gameinterpreter-a-front-end-for-llm-based-game-translation)| GameInterpreter: A front-end for LLM-based game translation | Easy/Medium | LLMs, extensive-form games, front-end |
37
-
|[3](#idea-3-a-layout-algorithm-for-visualising-game-trees)| A layout algorithm for visualising game trees | Hard | Extensive-form games, visualization, graph drawing |
38
-
|[4](#idea-4-working-on-gambit-interoperability-with-sagemath)| Working on Gambit interoperability with SageMath | Easy/Medium | SageMath, interoperability, Python |
39
-
|[5](#idea-5-updating-how-gambit-works-with-external-solvers)| Updating how Gambit works with external solvers | Medium/Hard | Nash equilibrium, mathematical optimization; linear complementarity |
40
-
|[6](#idea-6-development-and-integration-of-lemkes-algorithm-package)| Development and integration of Lemke's algorithm package | Medium/Hard | Mathematical optimization; interoperability |
41
-
|[7](#idea-7-new-algorithms-for-finding-nash-equilibria)| New algorithms for finding Nash equilibria | Medium/Hard | Nash equilibrium, algorithms, mathematical optimization |
|[1](#idea-1-updating-the-gambit-gui)| Updating the Gambit GUI | Medium | GUI, visualization, C++, wxWidgets |
36
+
|[2](#idea-2-gameinterpreter-a-front-end-for-llm-based-game-translation)| GameInterpreter: A front-end for LLM-based game translation | Easy/Medium | LLMs, extensive-form games, front-end |
37
+
|[3](#idea-3-a-layout-algorithm-for-visualising-game-trees)| A layout algorithm for visualising game trees | Hard | Extensive-form games, visualization, graph drawing |
38
+
|[4](#idea-4-working-on-gambit-interoperability-with-sagemath)| Working on Gambit interoperability with SageMath | Easy/Medium | SageMath, interoperability, Python |
39
+
|[5](#idea-5-updating-how-gambit-works-with-external-solvers)| Updating how Gambit works with external solvers | Medium/Hard | Nash equilibrium, mathematical optimization; linear complementarity |
40
+
|[6](#idea-6-development-and-integration-of-lemkes-algorithm-package)| Development and integration of Lemke's algorithm package | Medium/Hard | Mathematical optimization; interoperability |
41
+
|[7](#idea-7-new-algorithms-for-finding-nash-equilibria)| New algorithms for finding Nash equilibria | Medium/Hard | Nash equilibrium, algorithms, mathematical optimization |
42
+
|[8](#idea-8-extensive-form-game-efg-exporter-for-deepminds-openspiel)| Extensive-form Game .efg exporter for DeepMind's OpenSpiel | Easy | Extensive-form-game; normal-form game; .efg format; .nfg format; OpenSpiel |
42
43
43
44
### Idea 1: "Updating the Gambit GUI"
44
45
@@ -292,3 +293,54 @@ algorithms a student might choose to implement. Also, this project idea is only
292
293
constrained by the existing Gambit code base, and thus the challenge is really on picking,
293
294
understanding, and then implementing an equilibrium computation method or methods, which can
294
295
give rise to easy or hard projects, depending on the methods chosen.
296
+
297
+
### Idea 8: "EFG/NFG exporters for DeepMind's OpenSpiel"
298
+
299
+
#### Description
300
+
301
+
[OpenSpiel](https://github.com/google-deepmind/open_spiel) is a collection of environments and algorithms for research in general reinforcement learning and search/planning in games created and maintained by Google DeepMind.
302
+
303
+
OpenSpiel already supports export to Gambit's two primary game formats, namely the strategic, aka
304
+
normal, form games (NFGs) and the extensive-form games (EFGs). However, these exporters a) have
305
+
restrictions and b) are not well documented. In particular, even though OpenSpiel (and Gambit)
306
+
supports payoffs at non-terminal nodes, the OpenSpiel exporters only work if all payoffs (aka
307
+
rewards) are at terminal nodes.
308
+
309
+
The idea here is to develop the existing exporters to make them more general, covering non-terminal payoffs,
310
+
and also better documented.
311
+
312
+
Here are pointers to the existing exporters (two for each type of game format):
313
+
314
+
-[EFG exporter in python](https://github.com/google-deepmind/open_spiel/blob/master/open_spiel/python/algorithms/gambit.py)
315
+
-[Independent EFG exporter in C++](https://github.com/google-deepmind/open_spiel/blob/master/open_spiel/game_transforms/efg_writer)
316
+
-[NFG exporter written in C++](https://github.com/google-deepmind/open_spiel/blob/master/open_spiel/algorithms/nfg_writer.cc),
317
+
exposed to Python and [tested](https://github.com/google-deepmind/open_spiel/blob/master/open_spiel/python/tests/nfg_writer_test.py)
318
+
319
+
As a stretch goal, a student could work on an .efg importer after finishing the exporter. Again
320
+
there is [one](https://github.com/google-deepmind/open_spiel/tree/master/open_spiel/games/efg_game/games) in OpenSpiel
321
+
but it does not support as many games as we would like.
322
+
323
+
#### Expected outcomes
324
+
325
+
The expected outcome of this project is a pull request to OpenSpiel that provides more general exporters.
326
+
The new exporters should be well tested, including of course, on games with non-terminal payoffs.
327
+
328
+
#### Skills required/preferred
329
+
330
+
- Ideally the exporter would be written in C++ for speed, but extending the Python exporter would also be useful.
331
+
So a student should be comfortable with C++ and/or Python.
332
+
333
+
- It will be helpful if a student already knows what EFGs and NFGs are, which they would have learnt in any basic Game Theory course.
0 commit comments