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 internals of simpdiv_solve #480

Open
tturocy opened this issue Jan 30, 2025 · 0 comments
Open

MAINT: Refactor internals of simpdiv_solve #480

tturocy opened this issue Jan 30, 2025 · 0 comments
Labels
c++ Items which involve writing in C++ nash Items which involve Nash equilibrium computation methods

Comments

@tturocy
Copy link
Member

tturocy commented Jan 30, 2025

The implementation of src/solvers/simpdiv is some of the oldest remaining, with many details of the implementation able to be traced back into the C version of Gambit in the early 1990s.

Over time the implementation has been amended as the library has evolved, but has never had a thorough review and update. This would be quite useful to do, as this has proven to be a useful method for the analysis of many $n$-player games.

In particular, the implementation uses a class PVector which is the last remnant of a more widely-used class. However, the use of this class actually is not what PVector was really intended for. Rather, actually, these are used to store pairs of indices representing (player, strategy) numbers. The algorithm could instead be re-written more transparently to use pairs, or possibly even better by using GameStrategy directly in places to work with games more abstractly.

This would be a good project for someone interested in how simplicial subdivision-type algorithms work. The existing implementation is definitely correct, so there is a strong base for doing regression testing with a new implementation, where a new implementation would also result in making the understanding of how the method works much more clear.

@tturocy tturocy added c++ Items which involve writing in C++ nash Items which involve Nash equilibrium computation methods labels Jan 30, 2025
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++ nash Items which involve Nash equilibrium computation methods
Projects
None yet
Development

No branches or pull requests

1 participant