Class ZERORegrets
Defined in File ipg_zeroregrets.h
Inheritance Relationships
Base Type
public Algorithms::IPG::Algorithm
(Class Algorithm)
Class Documentation
-
class ZERORegrets : public Algorithms::IPG::Algorithm
This class is responsible for the ZERORegrets algorithm (Dragotto and Scatamacchia) for IPGs.
Public Functions
-
inline ZERORegrets(GRBEnv *env, Game::IPG *IPGObj)
Standard constructor.
- Parameters
env – The Gurobi environment
IPGObj – The IPG object
-
virtual void solve()
Solves the IPG with the Equilibrium CutAndPlay algorithm.
Private Functions
-
void initialize()
This method initializes some fields for the algorithm. Also, it warm starts the initial strategies to pure best responses.
-
bool addEquilibriumInequality(unsigned int player, const arma::vec &xOfI)
Generates an equilibrium inequality starting from xOfI.
- Parameters
player –
xOfI –
- Returns
-
bool checkTime(double &remaining) const
Checks if there is more time remaining.
- Parameters
remaining – An output filled with the time remaining
- Returns
True if there is still time left.
-
ZEROStatus equilibriumMIP(double localTimeLimit)
Private Members
-
std::unique_ptr<GRBModel> JointProgram = {}
The joint MIP program to which cuts are added.
-
std::vector<std::pair<std::string, int>> Cuts
Log of used cutting planes.
-
std::vector<arma::vec> xLast
The last x solution, for each player.
-
GRBVar **x = {}
-
GRBVar *p = {}
-
double objLast = +GRB_INFINITY
Last objective from the equilibrium MIP. Used as cutOff.
Friends
- friend class Game::IPG
-
inline ZERORegrets(GRBEnv *env, Game::IPG *IPGObj)