Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MAINT: Refactor implementation of generation of reduced normal form strategies #440

Open
tturocy opened this issue Feb 1, 2024 · 2 comments
Labels
c++ Items which involve writing in C++ good-first-issue Items which are (relatively) straightforward, and good ways to get into the code

Comments

@tturocy
Copy link
Member

tturocy commented Feb 1, 2024

Overview

The TreeGameRep class for extensive forms has built-in generation of the set of reduced normal form strategies. The implementation of this is some of the oldest code in Gambit - variable names can be traced to the implementation circa 1990. The way this is done is tightly coupled into the data structure, and should be refactored.

The programming task proposed is straightforward, but it would be useful for a person taking this on to have a good understanding of the relationship between an extensive form and its reduced strategic form.

## Details

The members flag and whichbranch of GameTreeInfosetRep and whichbranch and ptr of GameTreeNodeRep exist solely as scratch fields for the computation of the set of reduced normal form strategies. which are used by GamePlayerRep::MakeReducedStrats. These should be replaced by working data in the form of std::map which map from the infoset or node (as appropriate) to the scratch data.

@tturocy tturocy added good-first-issue Items which are (relatively) straightforward, and good ways to get into the code c++ Items which involve writing in C++ labels Feb 1, 2024
@emiliomarquez
Copy link

Is this still open or has this been implemented already? If its still open and not been implemented, I am going to try refactoring it

@tturocy
Copy link
Member Author

tturocy commented Apr 11, 2024

At the moment it's not being actively worked on, so feel free to have a go!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
c++ Items which involve writing in C++ good-first-issue Items which are (relatively) straightforward, and good ways to get into the code
Projects
None yet
Development

No branches or pull requests

2 participants