8.5.17. MDOCallback¶
-
class MDOCallback¶
The base class of user-defined callback.
Methods
Send a stop request to solver in a MIP callback function
Indicate a new branching by specifying a variable and a split point between the lower and upper bounds of this variable
Add a new cutting plane to the MIP model
Retrieve a double value of solver process specified by what code
Retrieve an integer value of solver process specified by what code
Retrieve the solution value of the current relaxed problem
Retrieve solution values of the current relaxed problem
Retrieve the value of the best solution found so far
Retrieve values of the best solution found so far
Provide a new feasible solution for a MIP model
Provide a new feasible solution for a MIP model
If you have already provided a solution using setSolution, you can optionally call this method to immediately submit the solution to the MIP solver
-
abort()¶
Send a stop request to solver in a MIP callback function. After solver terminated, an error code ABORT_CTRL_C will be returned from MDOModel.optimize .
-
int addBranch(MDOVar var, double value, int way)¶
Indicate a new branching by specifying a variable and a split point between the lower and upper bounds of this variable.
- Parameters
MDOVar var – The variable.
double value – The split point. It should be between the lower and upper bounds of the variable.
int way –
The branch to consider first. Valid options are:
<0: the down-way branch is considered first.
>0: the up-way branch is considered first.
- Returns
A submission status:
0: Successful submission.
1: Submission is valid but incorrect (infeasible, etc).
2: Submission is correct but not being accepted.
-
int addCut(const MDOLinExpr &lhs, char sense, double rhs)¶
Add a new cutting plane to the MIP model.
- Parameters
const MDOLinExpr& lhs – Left-hand-side value for new cutting plane.
char sense – Sense for new cutting plane.
double rhs – Right-hand-side value for new cutting plane.
- Returns
A submission status:
0: Successful submission.
1: Submission is valid but incorrect (infeasible, etc)
2: Submission is correct but not being accepted.
-
double getDoubleInfo(what)¶
Retrieve a double value of solver process specified by what code.
- Parameters
what – The data code to be retrieved.
- Returns
The value to be retrieved.
-
int getIntInfo(what)¶
Retrieve an integer value of solver process specified by what code.
- Parameters
what – The data code to be retrieved.
- Returns
The integer value to be retrieved.
-
double getNodeRel(MDOVar v)¶
Retrieve the solution value of the current relaxed problem.
- Parameters
MDOVar v – The variable from which to retrieve the solution value.
- Returns
The solution value of the specified variable.
-
double *getNodeRel(const MDOVar *v, int len)¶
Retrieve solution values of the current relaxed problem.
- Parameters
const MDOVar* v – The variables from which to retrieve solution values.
int len – The number of variables.
- Returns
The solution values of the specified variables.
-
double getSolution(MDOVar v)¶
Retrieve the value of the best solution found so far.
- Parameters
MDOVar v – The variable for which to retrieve the solution value.
- Returns
The solution value of the specified variable.
-
double *getSolution(const MDOVar *v, int len)¶
Retrieve values of the best solution found so far.
- Parameters
const MDOVar* v – The variables from which to retrieve solution values.
int len – The number of variables.
- Returns
The solution values of the specified variables.
-
void setSolution(MDOVar var, double val)¶
Provide a new feasible solution for a MIP model.
- Parameters
MDOVar var – Indicate the variable for which the solution is provided.
double val – The solution value to be provided.
-
void setSolution(const MDOVar *var, const double *val, int len)¶
Provide a new feasible solution for a MIP model.
- Parameters
const MDOVar* var – A array of Var object to indicate variables to be provide solution.
const double* val – A array of double value to indicate new feasible solution to be provided.
int len – The number of variables to provide solution.
-
int useSolution(double *obj)¶
If you have already provided a solution using setSolution , you can optionally call this method to immediately submit the solution to the MIP solver.
- Parameters
double* obj – [out] The objective value of the submitted solution.
- Returns
0: Successful submission.
1: Submission is valid but incorrect (infeasible, etc).
2: Submission is correct but not accepted.
-
abort()¶