Hacker News new | ask | show | jobs
by OccamsRazr 1502 days ago
There are ways (called heuristics) to solve some NP hard problems faster than exhaustive search.

Of course, for theoretical reasons, a heuristic is not guaranteed to be faster on all problem instances.

The general idea is to do some engineering and find a heuristic that works well for your problem. More sophisticated algorithms will try multiple heuristics at the same time (I believe OR tools has options that falll in this category). There is even research by now that aims to use ML to find good heuristics for a given family of problems (where the common characteristics of the problems might lend to a dominant heuristic).

These heuristics can still have guarantees of correctness. A good place to start is by looking up "branch and bound" algorithms, e.g., for ILP problems. The idea there is to narrow the search space while maintaining some theoretical guarantees.

(Not an expert but i did a project on this once. I'm sure someone more expert can come along and correct where I'm wrong.)

1 comments

> There is even research by now that aims to use ML to find good heuristics for a given family of problems (where the common characteristics of the problems might lend to a dominant heuristic).

I think I have spotted some papers about this for combinatorial problems but not for continuous variables, which makes sense given their relative hardness.

Do you know some papers, journals, conferences about this?

I'm interested specially about the view from people working in optimization research more than in AI.

I think we're probably thinking of the same papers. There was a competition /session at last year's neurips and there's related papers linked from their webpage.

https://www.ecole.ai/2021/ml4co-competition/