Performance variability: consequences

If you work on difficult mixed-integer programming (MIP) models, you have experienced performance variability. This refers as the impact on performance of seemingly performance neutral changes induced in the model or the solver. Part 1 of this series presented the problem and its relevance, and part 2 provided some readings related to the topic. This […]

Seeds and parallel MIP solvers, extended edition

In a previous post, I showed that changing the random seed on a given problem yielded varies solution times by between 20% to 40% on average, depending on the solver and the setting. I decided to push that experiment a little further and sample the distribution of run times based on the variation in random seeds. […]

Solving sets of similar instances, Part I

In an industrial application, one has often to solve similar instances of the same mixed-integer linear programming (MIP) model. Furthermore, from one model to another, a large proportion of the data is similar. Because of the heuristic nature of MIP computation, these very similar instances could behave quite differently when one tries to solve them. […]

Closing the (MIP) gap – Part I

MIP Solvers are more powerful than ever. They mainly do two things: (1) find high-quality (optimal) solutions, and (2) proving the optimality of that solution. While in most cases performance is evaluated in terms of time-to-optimality, quite often a high quality solution is found in in only a fraction of the time needed to prove […]

Can the CPLEX tuning tool help solving hard models?

The CPLEX MIP Solver has had a tuning tool for some time. For those new to the concept, the tuning tool tries different parameter settings and seeks to find good parameters for the solver for a given optimization model. I have tested the tuning tool on 10 relatively difficult-to-solve models. By difficult, I mean models […]