Skip to content

MAP: Review implementation of action graph games #393

Closed

Description

@tturocy

Overview

There is an implementation of Action Graph Games and Bayesian Action Graph Games which has been kindly contributed to Gambit. However, its existence is very much a secret! There is documentation of the file format for serialising games. However, that is about it; there is no mention of it in the core pygambit documentation, nor indication of which algorithms have bespoke versions which use the representation. Further, testing and examples are limited.

To do

  • Review the code and identify the (B)AGG features which are implemented. Revise the documentation accordingly so that existing (B)AGG support is made visible (and flag as "experimental")
  • Create a suitable test suite for (B)AGGs and add examples to the catalog.
  • Review the implementation of (B)AGGs. The current structure is that the (B)AGG representations were written originally as a separate standalone code, and then a compatibility layer was added. A thorough review should be done and the implementation rationalised and documented, including code organisation and formatting.
  • Consider what support we should have for creating and transforming (B)AGGs in pygambit. At present the only way to create a (B)AGG is to create the serialised game representation "by hand".

Activity

  1. added this to the gambit-16.2.0 milestone on Nov 3, 2023
  2. tturocy commented on Nov 22, 2023

    @tturocy
    MemberAuthor

    As some preliminary prep work, in #409 we have gone through and done a routine cleanup of the code. No substantive changes, but these eliminate failures terminating the program, improve memory security, and generally modernise the code.

  3. removed this from the gambit-16.2.0 milestone on Jan 22, 2024
  4. added
    c++Items which involve writing in C++
    nashItems which involve Nash equilibrium computation methods
    on Feb 1, 2024
  5. tturocy commented on Aug 16, 2026

    @tturocy
    MemberAuthor

    We're ready to declare this accomplished for present purposes at this point, especially with #879 and #1034. This will mean that as far as we know, the supported aspects of (B)AGGs are in fact working correctly. There is still plenty to do with refactoring and improving the internals, but this is work that can continue after 17.0 is released.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    c++Items which involve writing in C++nashItems which involve Nash equilibrium computation methods

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions