Hacker News new | ask | show | jobs
by indiesolver 2851 days ago
You can use heuristics if/when the problem becomes ugly due to various constraints you may impose. The trick is to select heuristics depending on the problem at hand and in a way that their hyperparameter values are selected properly.
1 comments

Most modern solvers like CPLEX and Gurobi have built-in heuristics [1] that are automatically selected and applied without user intervention. They typically exploit the structure of the problem or encode the experiences of the developers over large problem testsets.

The default heuristics for commercial solvers are actually pretty darned good these days and there's typically no need to hand-pick them.

In the MIP world, they are the secret sauce to fast solution times.

Hyperparameter tuning has been studied for MIPs (many papers written on this), but ultimately they are black box solutions. My experience inclines me to not even consider hyperparameters except as a last resort or unless you know something specific that a hyperparameter can exploit; there are other more high leverage things than can be done.

Random perturbations to the problem have been found to be much more fruitful for forcing a diversity of branch traversal paths and have lead to significant speedups. (M. Fischetti popularized this idea in 2010s [2])

[1] https://resources.mpi-inf.mpg.de/conferences/adfocs-03/Slide... Also: http://transp-or.epfl.ch/zinal/2017/slides/group5.pdf

[2] https://mat.tepper.cmu.edu/blog/index.php/2012/09/25/fischet...

Thank you for providing useful references. Hyperparameter tuning can accelarate CPLEX by 10x and more depending on problem instances (however, it it true that each new version of CPLEX is faster and faster).

What I meant is that in the case if your problem is formulated in a way that the CPLEX and Gurobi cannot treat it (e.g., stochastic and multiobjective) and is not very large-scale, then one can use heuristics. However, the efficiency of the latter will likely depend on hyperparameter settings which need to be set properly.

> What I meant is that in the case if your problem is formulated in a way that the CPLEX and Gurobi cannot treat it (e.g., stochastic and multiobjective) and is not very large-scale, then one can use heuristics. However, the efficiency of the latter will likely depend on hyperparameter settings which need to be set properly.

Ah makes sense... stochastic and multiobjective formulations have superstructures that are not exploited by MIP solvers by default, so hyperparameter tuning might be useful. Creating (exact) heuristics for these superstructures are also an active area of research.

Some solvers like CPLEX are starting to natively support higher level structures like Benders decompositions [1], but they will never support every structural variation.

[1] Benders: https://www.ibm.com/support/knowledgecenter/en/SSSA5P_12.7.0...