XPRSloadmipsol
XPRSloadmipsol |
Purpose
Loads a starting MIP solution for the problem into the Optimizer.
Synopsis
int XPRS_CC XPRSloadmipsol(XPRSprob prob, const double dsol[], int *status);
Arguments
prob
|
The current problem.
|
dsol
|
Double array of length
COLS (for the original problem and not the presolve problem) containing the values of the variables.
|
status
|
Pointer to an
int where the status will be returned. The status is one of:
|
-1
|
Solution rejected because an error occurred;
|
0
|
Solution accepted. When loading a solution before a MIP solve, the solution is always accepted. See Further Information below.
|
1
|
Solution rejected because it is infeasible;
|
2
|
Solution rejected because it is cut off;
|
3
|
Solution rejected because the LP reoptimization was interrupted.
|
Example
This example loads a problem and then loads a solution found previously for the problem to help speed up the MIP search:
XPRSreadprob(prob,"problem",""); XPRSloadmipsol(prob,dsol,&status); XPRSmipoptimize(prob,"");
Further information
1. When a solution is loaded before a MIP solve, the solution is placed in temporary storage until the MIP solve is started. Only after the MIP solve has commenced and any presolve has been applied, will the loaded solution be checked and possibly accepted as a new incumbent integer solution. There are no checks performed on the solution before the MIP solve and the returned status in
XPRSloadmipsol will always be
0 for accepted.
2. Loaded solution values will automatically be adjusted to fit within the current problem bounds.
3. It is recommended to use
XPRSaddmipsol instead of
XPRSloadmipsol.
XPRSaddmipsol can be called both before a solve, to load a starting solution, and during a MIP solve, to load new solutions within callbacks.
XPRSaddmipsol also allows for loading of infeasible or partial solutions and comes with a callback to check the status of loaded solutions.
Related topics