# Why do we need to measure the difficulty of mixed-integer programming problems?

I'm doing a project about the estimation of the difficulty of mixed-integer programming problems. The MIP instances are from MIPLIB 2017. And there are three categories of MIPs provided by MIPLIB 2017, which are "Easy", "Hard" and "Open", which represent the solving difficulty of MIPs. My project aims to figure out the characteristics of MIPs in different categories and tries to build a predictive model to predict the difficulty of a MIP.

But when I'm doing this project, I get more and more confused about the practical meaning of estimating the difficulty of a MIP. What does it help of knowing the difficulty of a MIP?

• Before running a race, wouldn't you rather know if its a 100m or a marathon ? The same applies here. Different difficulties can imply different tools, different parameters, etc. – Kuifje Mar 16 '20 at 12:29

The performance of an exact (or heuristic) solver on an instance will depend on some intrinsic characteristics, normally called features. And different solvers, or different configurations of a solver, will obtain different results on instances with different characteristics. For NP-hard problems, this might mean that an instance solved by solver X in few minutes can take hours using solver Y, and the opposite situation can happen for another instance.

To know whether you should use X or Y to solve an instance, you can run the two algorithms in parallel and see which one terminates first, or you can try to look at the instance characteristics and predict which solver will terminate first. If you have to solve multiple instances, the second approach will make you save a lot of time (hopefully).

For example, by knowing that an instance is "easy" you can choose to use an exact solver (ideally, you'll also be able to tell which solver to choose), while for an instance that is or looks like an "open" one you can save time and use an heuristic approach from the start.

In addition to the links provided by Marco Lübbecke in his answer, you can take a look at the the Algorithm Selection library paper, this recent survey on algorithm selection, or this portfolio selector for SAT.

• Thanks for your answer, Alberto! I pretty agree with what you've said, and the papers you shared really help a lot! I understand only the prediction is not enough, it's more important to find out the efficient ways to solve those hard and open MIPs. – Karen Jin Mar 17 '20 at 3:45
• Yes, consider prediction as a preliminary step for solving a model more efficiently, which is what matters in practice. – Alberto Franzin Mar 17 '20 at 8:46

What you are looking for may already exist. E.g., here is a paper on Predicting the Solution Time of Branch-and-Bound Algorithms for Mixed-Integer Programs, and another one on Algorithm runtime prediction: Methods & evaluation. Already years ago, researchers tried to predict the size of the B&B tree and it has been a topic also recently.