Overview | Group | Tree | Graph | Index | Concepts |
An instance of the class IloCplex::MIPCallbackI
represents
a user-written callback in an application that uses an instance of
IloCplex
to solve a mixed integer program
(MIP). IloCplex
calls the user-written callback prior to
solving each node in branch & cut search. This class offers member
functions for accessing an incumbent solution
and its objective value from a
user-written callback. It also offers methods for accessing
priority orders and statistical information such as the number of cuts.
Methods are also available to query the number of generated cuts for each
type of cut CPLEX generates. See the ILOG CPLEX User's Manual for
more information about cuts.
The methods of this class are protected for use in deriving a
user-written callback class and in implementing the main
method there.
If an attempt is made to access information not available to an instance of this class, an exception is thrown. For example, if there is no incumbent, the methods that query about incumbents will throw an exception.
This class also provides the common application programming interface (API) for these callback classes:
See Also:
IloCplex, IloCplex::BranchCallbackI, IloCplex::Callback, IloCplex::CallbackI, IloCplex::CutCallbackI, IloCplex::DisjunctiveCutCallbackI, IloCplex::FractionalCutCallbackI, IloCplex::HeuristicCallbackI, IloCplex::IncumbentCallbackI, IloCplex::NodeCallbackI, IloCplex::ProbingCallbackI, IloCplex::SolveCallbackI, ILOMIPCALLBACK0
Constructor Summary | |
---|---|
protected | MIPCallbackI() |
Method Summary | |
---|---|
protected IloNum | getBestObjValue() |
protected IloNum | getCutoff() |
protected IloCplex::BranchDirection | getDirection(const IloIntVar) |
protected IloCplex::BranchDirection | getDirection(const IloNumVar) |
protected IloNum | getIncumbentObjValue() |
protected IloNum | getIncumbentValue(const IloIntVar) |
protected IloNum | getIncumbentValue(const IloNumVar) |
protected void | getIncumbentValues(IloNumArray, const IloIntVarArray) |
protected void | getIncumbentValues(IloNumArray, const IloNumVarArray) |
protected IloInt | getMyThreadNum() |
protected IloInt | getNcliques() |
protected IloInt | getNcovers() |
protected IloInt | getNdisjunctiveCuts() |
protected IloInt | getNflowCovers() |
protected IloInt | getNflowPaths() |
protected IloInt | getNfractionalCuts() |
protected IloInt | getNGUBcovers() |
protected IloInt | getNimpliedBounds() |
protected IloInt | getNiterations() |
protected IloInt | getNMIRs() |
protected IloInt | getNnodes() |
protected IloInt | getNremainingNodes() |
protected IloNum | getObjCoef(const IloIntVar) |
protected IloNum | getObjCoef(const IloNumVar) |
protected void | getObjCoefs(IloNumArray, const IloIntVarArray) |
protected void | getObjCoefs(IloNumArray, const IloNumVarArray) |
protected IloNum | getPriority(const IloIntVar) |
protected IloNum | getPriority(const IloNumVar) |
protected IloInt | getUserThreads() |
protected IloBool | hasIncumbent() |
Inherited Methods from CallbackI |
---|
abort, duplicateCallback, getEnv, getModel, getNcols, getNQCs, getNrows, main |
Inner Class |
---|
MIPCallbackI::NodeData |
Constructor Detail |
---|
This constructor creates a callback for use in
an application that uses an instance of IloCplex
to solve a mixed integer program (MIP).
Method Detail |
---|
This method returns the currently best known bound on the optimal
solution value of the problem at the time the invoking callback is
called by an instance of IloCplex
while solving a MIP.
When a model has been solved to optimality, this value matches the
optimal solution value. Otherwise, this value is computed for a
minimization (maximization) problem as the minimum (maximum) objective
function value of all remaining unexplored nodes.
An instance of IloCplex
uses
the cutoff value (the value of the objective
function of the subproblem at a node in the
search tree) to decide when to prune nodes
from the search tree (that is, when to cut off that
node and discard the nodes beyond it). The cutoff value is updated
whenever a new incumbent is found.
Returns the IloCplex::BranchDirection
used for
variable var
in the current optimization.
Returns the IloCplex::BranchDirection
used for
variable var
in the current optimization.
Returns the value of the objective function
of the incumbent solution (that is, the best
integer solution found so far) at the time the invoking callback is
called by an instance of IloCplex
while solving a MIP.
If there is no incumbent, this method throws an exception.
Returns the solution value of var
in the
incumbent solution at the time the invoking callback is
called by an instance of IloCplex
while solving a MIP.
If there is no incumbent, this method throws an exception.
Returns the solution value of var
in the
incumbent solution at the time the invoking callback is
called by an instance of IloCplex
while solving a MIP.
If there is no incumbent, this method throws an exception.
Returns the value of each variable in the array
vars
with respect to the current incumbent
solution, and it puts those values into the
corresponding array vals
.
If there is no incumbent, this method
throws an exception.
Returns the value of each variable in the array
vars
with respect to the current incumbent
solution, and it puts those values into the
corresponding array vals
.
If there is no incumbent, this method
throws an exception.
Returns the identifier of the parallel thread being currently
executed. This number is between 0 (zero) and the value
returned by the method getUserThreads()-1
.
Returns the total number of GUB cover cuts that have been added to the model so far during the current optimization.
Returns the total number of MIR cuts that have been added to the model so far during the current optimization.
Returns the total number of clique cuts that have been added to the model so far during the current optimization.
Returns the total number of cover cuts that have been added to the model so far during the current optimization.
Returns the total number of disjunctive cuts that have been added to the model so far during the current optimization.
Returns the total number of flow cover cuts that have been added to the model so far during the current optimization.
Returns the total number of flow path cuts that have been added to the model so far during the current optimization.
Returns the total number of fractional cuts that have been added to the model so far during the current optimization.
Returns the total number of implied bound cuts that have been added to the model so far during the current optimization.
Returns the total number of iterations executed so far during the current optimization to solve the node relaxations.
Returns the number of nodes already processed in the current optimization.
Returns the number of nodes left to explore in the current optimization.
Returns the linear objective coefficient for var
in the model currently being solved.
Returns the linear objective coefficient for var
in the model currently being solved.
Puts the linear objective coefficient of each of the
variables in the array vars
into the
corresponding element of the array vals
.
Puts the linear objective coefficient of each of the
variables in the array vars
into the
corresponding element of the array vals
.
Returns the branch priority used for
variable var
in the current optimization.
Returns the branch priority used for
variable var
in the current optimization.
Returns the total number of parallel threads currently running.
Returns IloTrue
if an integer
feasible solution has been found, or, equivalenty, if an incumbent
solution is available at the time the invoking callback is
called by an instance of IloCplex
while solving a MIP.