ENH: Implement NE computation by HomotopyContinuation.jl
#174
+294
−7
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 toHomotopyContinuation.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.