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

ENH: Implement NE computation by HomotopyContinuation.jl #174

Merged
merged 1 commit into from
Jan 28, 2023

Conversation

oyamad
Copy link
Member

@oyamad oyamad commented Dec 30, 2022

A Nash equilibrium of a game with N > 2 players can be represented as a solution to a system of polynomial equations as a nonlinear complementarity problem.

HomotopyContinuation.jl is amazingly powerful to be able to solve for all (isolated) solutions to that system of polynomial equations! (Of course, only for small games).

The function hc_solve just passes the data to HomotopyContinuation.jl, lets it solve the equation, and sorts out nonnegative solutions for Nash equilibria. Then we have all (isolated) Nash equilibria of the game!

This is really amazing. I thought we would need to search through all the possible supports for mixed actions to solve for each profile of supports the polynomial equation of the indifference condition (cf. #47). There is no need of this with HomotopyContinuation.jl: it automatically constructs a start system (t=1) for homotopy continuation, the number of whose solutions is equal to the maximum number of those of the target system (t=0), and follows all the solution paths from t=1 to t=0.

@oyamad
Copy link
Member Author

oyamad commented Dec 30, 2022

It will still be interesting to implement the support enumeration algorithm that solves for each support profile the corresponding system of polynomial equations by HomotopyContinuation.jl with only_non_zero option, and compare the function in the current PR.

@oyamad oyamad merged commit f692471 into main Jan 28, 2023
@oyamad oyamad deleted the homotopy_continuation branch January 28, 2023 14:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant