-
Notifications
You must be signed in to change notification settings - Fork 153
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
Clean up algorithm working data in gambit-lcp #138
Comments
Assigning this to myself for now, as carrying out this work requires a bit of experience with understanding the LCP setup. Others are quite welcome to have a go at this, but would do well to consult with me first before trying it. Newcomers to Gambit or game theory should definitely not be thinking about taking this one on! |
Hi Ted, would you like to use some of the C libraries from https://github.com/stengel/ecta2002 for your Lemke re-implementation? It has the following features:
I am happy to comment in detail what needs to be done here --Bernhard
Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer |
That is an interesting idea. The main point of this issue wasn't the Lemke implementation per se, but rather the setup of the tableaux. However, I have also wanted to get rid of the old tableau implementation entirely as it is indeed unnecessarily slow, especially with the use of rational numbers. I think it would be entirely too aggressive to try to do this for Gambit 14, but it could be something we would start work on for an early development release of Gambit 15. |
Very good. For the tableaux setup, I have a simple routine --Bernhard
Please access the attached hyperlink for an important electronic communications disclaimer: http://lse.ac.uk/emailDisclaimer |
Commit 15347b8 revises the implementation of the sequence form LP and LCP solvers to be roughly parallel, largely fulfilling the main goal of this issue. |
Both the strategic and sequence form LCP implementations in src/nash/lcp carry around a Solution class (defined as a nested class inside the LCP algorithm driver) object, which includes working data on the current run of the algorithm. In refactoring LCP to use the new Nash equilibrium computation framework in Gambit 14, just enough was done to remove all algorithm state from the algorithm classes themselves. However, more could be done to encapsulate properly the algorithm state, including:
In addition, the filling of the Tableau in both implementations - but especially the sequence form version - is very awkwardly done. This could do with some proper encapsulation, rather than the current rather opaque indexing calculations.
Note that eventually something like the Solution class might be passed back to the caller (rather than just a list of computed equilibrium profiles), with the idea being that richer data on the running of the algorithm might be interesting. Design of this class should be done with that in mind.
The text was updated successfully, but these errors were encountered: