12.07.2015 Views

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

ILOG CPLEX 11.0 User's Manual

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Library). If this process succeeds, the solution will be treated as an integer solution of thecurrent problem.After a MIP start has been established for your model, its use is controlled by the advancedindicator parameter (AdvInd in Concert Technology; CPX_PARAM_ADVIND in the CallableLibrary). At its default setting of 1 (one), the MIP start values that you specify are used. Ifyou set AdvInd to the value 0 (zero), then the MIP Start will not be used. If you set thisparameter to 2, <strong>ILOG</strong> <strong>CPLEX</strong> retains the current incumbent (if there is one), re-appliespresolve, and starts a new search from a new root. Setting 2 can be particularly useful forsolving 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 ConcertTechnology application, or by using CPXcopymipstart in a Callable Library application.For Interactive Optimizer use, or as an alternative approach in a Concert Technology orCallable Library application, you can establish MIP starting values from a file. MST format(described briefly in the reference manual <strong>ILOG</strong> <strong>CPLEX</strong> File Formats) is used for thispurpose. Use the routine CPXreadcopymipstart in the Callable Library, the methodreadMIPStart 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 isstill in memory, you can create an MST file from the Callable Library with the routineCPXmstwrite, from Concert Technology with the method writeMIPStart, or from theInteractive Optimizer with the write command, for later use as starting values to anotherMIP problem. Care should be taken to make sure that the naming convention for thevariables is consistent between models when this approach is used.Issuing Priority OrdersIn branch & cut, <strong>ILOG</strong> <strong>CPLEX</strong> makes decisions about which variable to branch on at anode. You can control the order in which <strong>ILOG</strong> <strong>CPLEX</strong> branches on variables by issuing apriority order. A priority order assigns a branching priority to some or all of the integervariables in a model. <strong>ILOG</strong> <strong>CPLEX</strong> performs branches on variables with a higher assignedpriority number before variables with a lower priority; variables not assigned an explicitpriority value by the user are treated as having a priority value of 0. Note that <strong>ILOG</strong> <strong>CPLEX</strong>will branch only on variables that take a fractional solution value at a given node. Thus avariable with a high priority number might still not be branched upon until late in the tree, ifat all, and indeed if the presolve or the aggregator feature of the <strong>ILOG</strong> <strong>CPLEX</strong> Preprocessorremoves a given variable then branching on that variable would never occur regardless of ahigh priority order assigned to it by the user.Problems that use integer variables to represent different types of decisions should assignhigher priority to those that must be decided first. For example, if some variables in a modelactivate processes, and others use those activated processes, then the first group of variables280 <strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!