Struct IPG_Player
Defined in File ipg_cutandplay.h
Struct Documentation
-
struct IPG_Player
Public Functions
-
~IPG_Player() = default
-
inline IPG_Player(unsigned int incumbentSize, double &tol)
-
bool addVertex(const arma::vec &vertex, const bool checkDuplicate = false)
Given
vertex
, it adds a vertex to the field V. IfcheckDuplicate
is true, it will check whether the vertex is already contained in the pool.- Parameters
vertex – The input vertex
checkDuplicate – True if the method needs to check for duplicates
- Returns
True if the vertex is added.
-
bool addRay(const arma::vec &ray, const bool checkDuplicate = false)
Given
ray
, it adds a ray to the field R. IfcheckDuplicate
is true, it will check whether the ray is already contained in the pool.- Parameters
ray – The input ray
checkDuplicate – True if the method needs to check for duplicates
- Returns
True if the ray is added.
-
bool addCuts(const arma::sp_mat &LHS, const arma::vec &RHS)
Given
LHS
,RHS
, it adds the inequalities to the field CutPool_A and b, the CoinModel, and the working IP_Param.- Parameters
LHS – The LHS matrix
RHS – The RHS vector
- Returns
true if the inequality is added.
Protected Attributes
-
std::unique_ptr<GRBModel> MembershipLP = {}
This structure manages the IPG data for each player of the game, given the CutAndPlay.
The model approximating the feasible region with vertices and rays
-
std::shared_ptr<MathOpt::IP_Param> ParametrizedIP = {}
The (working) player integer program, to which cuts are added.
-
std::shared_ptr<OsiGrbSolverInterface> CoinModel = {}
Quick workaround for now. This object stores the CoinOR model related to the field ParametrizedIP.
-
arma::sp_mat V = {}
This object stores an array of points — for each player — that are descriptor for the convex-hull of the integer programming game.
-
arma::sp_mat R = {}
As in V, but for rays.
-
bool containsOrigin = false
True if the origin is a feasible point.
-
unsigned int VertexCounter = 0
The number of Vertices in the membership LP.
-
unsigned int RayCounter = 0
The number or Rays in the membership LP.
-
arma::sp_mat CutPool_A = {}
Stores the LHS of the valids cuts for the convex hull of the player’s IPG.
-
arma::vec CutPool_b = {}
Stores the RHS of the valids cuts for the convex hull of the player’s IPG.
-
double Tolerance = 1e-6
Numerical tolerance.
-
arma::vec Incumbent
Stores the current strategy of the player at a given iteration.
-
arma::vec DualIncumbent
Stores the (dual) current strategy of the player at a given iteration.
-
double Payoff
Stores the current payof.
-
bool Pure
True if the strategy is pure.
-
bool Feasible = false
Friends
- friend class Algorithms::IPG::CutAndPlay
-
~IPG_Player() = default