-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Balancing Zero-sum Games with One Variable per Strategy
This is the primary implementation.
This package contains the core functionality of defining handicap functions and performing the optimization that finds the balancing handicaps.
The base
module contains the base classes. Implementing a handicap function is done by extending one of these base classes. See the above page for details.
The following specific handicap functions are implemented:
- zerosum.balance.hazard
- zerosum.balance.lanchester
- zerosum.balance.logistic
- zerosum.balance.multiplicative
Note that the concrete classes (e.g. MultiplicativeBalance
) are imported directly into the parent zerosum.balance
package, so it is not necessary to import the specific modules; they may be accessed as e.g. zerosum.balance.MultiplicativeBalance
.
Example scripts presented as Jupyter notebooks.
From the paper:
Additional examples:
-
zerosum.excel: Microsoft Excel integration via user-defined functions (UDFs). Requires
xlwings
. Unfortunately this only works on Windows. -
zerosum.nash
: Determines the Nash equilibrium of a game using linear programming. -
tests
: Unit tests.
This contains a Google Apps Script implementation of Sinkhorn's algorithm, which computes handicaps for a multiplicative handicap function. An example Google Sheet running this script can be found here; make a copy to play around with it.
This does not implement any of the other handicap functions.