Well, you know MIP solve times can be unpredictable, and sometimes it comes down to luck. Formulating good MIPs is something of a black art; and sometimes stupid things like the ordering of constraints can affect solve times. That said, there are a few tips that may help: 1) Introduce as many cuts and lazy constraints as you can, based on your knowledge of the problem. 2) When formulating MIP constraints, try to use formulations that give tight relaxations. For instance, avoid Big-M formulations when possible. If you have to use Big-M formulations, try to get tight value for the M. If you have no clue how to get a good value of M, formulate it as an indicator constraint, and CPLEX will try to find a good Big-M for you. 3) In some cases, you can formulate your problem as a Linear Generalized Disjunctive Program (LGDPs). LGDPs have a convex hull formulation, which are theoretically gives the tightest relaxations possible. The relaxations are usually either as good as, or better than those obtained from Big-M formulations. http://egon.cheme.cmu.edu/ The downside is that convex hull formulations require far more constraints than Big-M formulations, and sometimes this can make the problem more complex. The paper linked describes ways of introducing cutting planes to help speed up the convex hull formulations. Also, in some cases you can further tighten the problem by performing what is known as a "basic step". http://egon.cheme.cmu.edu/ 4) There are other specific formulation tricks such as aggregation for problems with degenerate solutions, aggregation to break symmetry and so forth. All these require specific knowledge of the model. Right off the bat, you can usually get a small to significant speed-up if you use CPLEX >= 11's tuning feature, which can be invoked as follows. CPLEX will probe your problem and spit out some suggested cplex_options in the cplex.tune file. option cplex_options 'tunefile=cplex.tune tunedisplay=2 tunetime=1500'; This is also a good read: http://www-01.ibm.com/support/ |
The website is dedicated to computational operations research and particularly COIN-OR, the largest open source computational infrastructure for operations research
Sunday, March 6, 2011
comments on solving MIPs
Labels:
MILP
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment