"Recently" someone asked on Twitter whether "people still use genetic algorithms for integer programs". The "majority answer", i.e., 1 out of 1, was: "Yes" .
So, my follow-up question is: With all the (A) progress in computer hardware, solver improvements and decomposition techniques for IPs on the one hand, (B) "elaborated" frameworks for all kinds of search strategies (TS, SA, GA, VNS, ...) on the other -- and, also, (C) constraint (programming) solvers sitting somewhere in between...
...how do you determine if a problem has to be tackled by technique(s) A, B or/and C [when problem constraints fit to (or: can be captured in) any of these "paradigms"] -- e.g., given a multi-stage version of a JSP or a FSP when the "quality" of the solution outweighs the aspect of availability "near"-time results?
What are the criteria/rules of thumb/... that you apply? Which steps do you think of/go through in order to figure out what might work best?