-
Notifications
You must be signed in to change notification settings - Fork 3
Home
Launch SolveGame.java or the jar-file of our release candidates and pass your arguments to the program.
The program outputs nash equilibria for the given game and (optional) for specific support sets. A nash equilibrium specifies for each player which action he should play with what probability and the expected utility he receives in this outcome.
In the above example a resulting line may be player1: 0.0 {H=0.5, T=0.5}
. It means player1 should play both actions with probability 50%, his expected utility then is 0.0.
If the result is null
, then the program could not compute a nash equilibrium, i.e. the LCP could not be solved.
- arg1 - Path to the file of the strategic game as json-file
- arg1 is a file
-
Example:
examples/matching-pennies.json
- arg2 (optional) - Support sets for each player to compute solutions for
- arg1 is an array of strings
-
Example:
[H,T][T]
, here the first player has access to actions H and T, whereas the second player only has the action T. - If not specified, the program will compute solutions for all possible support sets
If you are unable to built the project or error messages related to solving LPs/LCPs/ILPs occur, make sure you have loaded all libraries correct.
This project uses LPSolve as core for the computation. To be able to interact from Java with LPSolve, you also need the JNI hook of LPSolve.
The project JavaILP provides a nice interface for interacting with LPSolve from Java, this is why we also use it.
- The JNI hook and JavaILP can be found in our folder lib. Make sure that both jar-files are in the build path. Our release candidates usually already ensure this.
- You need to have LPSolve installed, i.e. have its dll-files in your system library. You can find an installation manual for this at LPSolve#install
- We have already packed the correct dll-files for win64 systems in our folder lib/native. Just copy them into your Windows/System32 folder.