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.

Where Query Callbacks Are Called . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .449Query Callbacks and Dynamic Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451Query Callbacks and Deterministic Parallel Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451Control Callbacks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .451What Control Callbacks Do . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .452Control Callbacks and Dynamic Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453Control Callbacks and Deterministic Parallel Search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .453Implementing Callbacks in <strong>ILOG</strong> <strong>CPLEX</strong> with Concert Technology . . . . . . . . . . . . . . . . .454Writing Callback Classes by Hand. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .454Writing Callbacks with Macros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .455Callback Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457The Continuous Callback. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .457Example: Deriving the Simplex Callback ilolpex4.cpp . . . . . . . . . . . . . . . . . . . . . . . . . . . .458Implementing Callbacks in the Callable Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460Setting Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460Callbacks for Continuous and Discrete Problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460Example: Using Callbacks lpex4.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .461Example: Controlling Cuts iloadmipex5.cpp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .462Interaction Between Callbacks and <strong>ILOG</strong> <strong>CPLEX</strong> Parallel Optimizers . . . . . . . . . . . . . . .467Return Values for Callbacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .467Terminating without Callbacks. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .468Chapter 31 Goals and Callbacks: a Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469Chapter 32 Advanced Presolve Routines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 473Introduction to Presolve . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .474A Proposed Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .475Restricting Presolve Reductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476Adding Constraints to the First Solution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .476Primal and Dual Considerations in Presolve Reductions. . . . . . . . . . . . . . . . . . . . . . . . . . . . .477Cuts and Presolve Reductions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .477Infeasibility or Unboundedness in Presolve Reductions . . . . . . . . . . . . . . . . . . . . . . . . . . . . .47824 <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!