> Discrete Optimization > Solving Mixed Integer Programming Problems (MIP) > Using 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. In such a start, you must specify values for all integer variables, for all semi-continuous variables, and for all members of special ordered sets. Optionally, you may also specify values for continuous variables. ILOG CPLEX evaluates that start solution for integrality and feasibility. If it is integer-feasible, it will become an integer solution of the current problem.

Once a MIP Start has been established for your model, its use is controlled by the MIPStart parameter. At its default setting of 0, the MIP Start values are not used, but you can direct ILOG CPLEX to evaluate the MIP Start values by setting the MIPStart parameter to 1.

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

For Interactive Optimizer use, or as an alternative approach in a Callable Library program, 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.