ILOG CPLEX 11.0 User's Manual > Discrete Optimization > Solving Mixed Integer Programming Problems (MIP) > Tuning Performance Features of the Mixed Integer Optimizer > Starting from a Solution

You can provide a known solution (for example, from a MIP problem previously solved or from your knowledge of the problem) to serve as the first integer solution. When you provide such a starting solution, you may invoke relaxation induced neighborhood search (its RINS heuristic) or solution polishing to improve the given solution. This first integer solution may include continuous and discrete variables of various types, such as semi-continuous variables or those in lazy constraints, linearized constraints, or special ordered sets.

If you specify values for all discrete variables, ILOG CPLEX will check the validity of the values as an integer-feasible solution; if you specify values for only a portion of the discrete variables, CPLEX will attempt to fill in the missing values in a way that leads to an integer-feasible solution. If the specified values do not lead directly to an integer-feasible solution, CPLEX will apply a quick heuristic to try to repair the MIP Start. The number of times that CPLEX applies the heuristic is controlled by the repair tries parameter (RepairTries in Concert Technology, CPX_PARAM_REPAIRTRIES in the Callable Library). If this process succeeds, the solution will be treated as an integer solution of the current problem.

After a MIP start has been established for your model, its use is controlled by the advanced indicator parameter (AdvInd in Concert Technology; CPX_PARAM_ADVIND in the Callable Library). At its default setting of 1 (one), the MIP start values that you specify are used. If you set AdvInd to the value 0 (zero), then the MIP Start will not be used. If you set this parameter to 2, ILOG CPLEX retains the current incumbent (if there is one), re-applies presolve, and starts a new search from a new root. Setting 2 can be particularly useful for solving fixed MIP models, where a start vector but no corresponding basis is available.

You can establish MIP starting values by using the method setVectors in a Concert Technology application, or by using CPXcopymipstart in a Callable Library application.

For Interactive Optimizer use, or as an alternative approach in a Concert Technology or Callable Library application, you can establish MIP starting values from a file. MST format (described briefly in the reference manual ILOG CPLEX File Formats) is used for this purpose. Use the routine CPXreadcopymipstart in the Callable Library, the method readMIPStart in Concert Technology, or the read command in the Interactive Optimizer, for this purpose.

At the end of a MIP optimization call, when a feasible (not necessarily optimal) solution is still in memory, you can create an MST file from the Callable Library with the routine CPXmstwrite, from Concert Technology with the method writeMIPStart, or from the Interactive Optimizer with the write command, for later use as starting values to another MIP problem. Care should be taken to make sure that the naming convention for the variables is consistent between models when this approach is used.