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.

once. All of the node relaxation solutions use the presolved problem. Again, presolve storesthe presolved problem and the information required to convert a presolved solution to asolution for the original problem within the LP problem object. Again, this information wasinaccessible to the user in <strong>CPLEX</strong> releases prior to version 7.0.A Proposed ExampleNow consider an application where the user wishes to solve a linear program using thesimplex method, then modify the problem slightly and solve the modified problem. As anexample, let's say a user wishes to add a few new constraints to a problem based on theresults of the first solution. The second solution should ideally start from the basis of thefirst, since starting from an advanced basis is usually significantly faster if the problem isonly modified slightly.Unfortunately, this scenario presents several difficulties. First, presolve must translate thenew constraints on the original problem into constraints on the presolved problem. Presolvein releases prior to 7.0 could not do this. In addition, the new constraints may invalidateearlier presolve reductions, thus rendering the presolved problem useless for thereoptimization. (There is an example in Restricting Presolve Reductions on page 476.)Presolve in releases prior to 7.0 had no way of disabling such reductions. In the priorreleases, a user could either restart the optimization on the original, unpresolved problem orperform a new presolve on the modified problem. In the former case, the reoptimization doesnot benefit from the reduction of the problem size by presolve. In the latter, the secondoptimization does not have the benefit of an advanced starting solution.The advanced presolve interface can potentially make this and many other sequences ofoperations more efficient. It provides facilities to restrict the set of presolve reductionsperformed so that subsequent problem modifications can be accommodated. It also providesroutines to translate constraints on the original problem to constraints on the presolvedproblem, so new constraints can be added to the presolved problem. In short, it provides avariety of capabilities.When considering mixed integer programs, the advanced presolve interface plays a verydifferent role. The branch & cut process needs to be restarted from scratch when the problemis even slightly modified, so preserving advanced start information isn't useful. The mainbenefit of the advanced presolve interface for MIPs is that it allows a user to translatedecisions made during the branch & cut process (and based on the presolved problem) backto the corresponding constraints and variables in the original problem. This makes it easierfor a user to control the branch & cut process. Details on the advanced MIP callbackinterface are provided in Advanced MIP Control Interface on page 31.<strong>ILOG</strong> <strong>CPLEX</strong> <strong>11.0</strong> — USER’ S MANUAL 475

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

Saved successfully!

Ooh no, something went wrong!