I am familiar with many meta heuristic algorithms (including Simulated Annealing, Tabu Search, Genetic, Ant Colony, PSO , Bee Colony) I always have a fundamental question about choosing appropriate algorithm based on problem domain and its characteristics. Which properties I should know about the problem and how can I decide which algorithm is the best choice? I really appreciate any recommendation. asked 08 Jun '13, 22:52 esmaeil 
It is difficult to answer your question precisely as it is quite broad. I would advise you to look into the scientific literature to check which metaheuristic worked well on similar problems. If it worked well on a similar problem, you can modify this algorithm to suit your problem. The most basic versions of each seldom work well on complex problems so if you have any previous experience in applying any metaheuristic to other problem you should start with what you know. Implementation issues are more important than the choice of metaheuristic metaphor you wish to refer to when designing the metaheuristic. For general advice you can refer to this book, written by E.G. Talbi. answered 09 Jun '13, 01:38 ORNinja 1
In my experience, adding a single constraint to a use case can change which is the best metaheuristic (although the original one still performs very well). In practice, people try out a few quick metaheuristic implementations on a few datasets (often too small!) in realistic time, take the best and then heavily invest in optimizing and tweaking that best one. If  months later  another metaheuristic is used, that best metaheuristic became a selffulfilling prophecy: because all the other code (parameters, neighborhood selection, ...) is tweaked for that best metaheuristic, it wins.
(09 Jun '13, 08:08)
Geoffrey De ... ♦

It's impossible to predict in advance, for your use case, your constraints and/or your time limit. Implement all the metaheuristic algorithms (correctly  I might add) and use a Benchmarker to find the best metaheuristic with the best parameters for your use case, your constraints and your time limit. answered 09 Jun '13, 07:53 Geoffrey De ... ♦ If you're using Java: OptaPlanner has such a open source benchmarker. It generates a benchmark report with graphs and tables. Here's an older version of such a benchmark report. I use the Benchmarker regularly to optimize use cases and to test new metaheuristics (as shown here).
(09 Jun '13, 07:57)
Geoffrey De ... ♦
1
Note: Generally, all (respectable) metaheuristics do give relatively good results on almost any use case: not choosing the best metaheuristic isn't the end of the world. Exceptions define the rule ;) For example: if the construction heuristic is absolutely terrible (such as just random construction), a fast stepping metaheuristic such as Simulated Annealing and Late Acceptance will dwarf a slow stepping one such as Tabu Search.
(13 Jun '13, 03:38)
Geoffrey De ... ♦

The short answer is that the choice of metaheuristic should be guided by the availability of implementations for similar problems rather than by a mapping between problem class and metaheuristic class. That mapping is most likely uninformative. Here is some more detail: For algorithm A to outperform algorithm B, algorithm A must, with mathematical certainty, either:
This is a corollary of extensions of a rather nuanced theorem referred to as the "No Free Lunch" theorem. Therefore, the first question to ask is: what characteristics of your problem can be exploited to produce shortcuts? There are two main places to look:
The first item is mostly independent of the choice of metaheuristic. The second one is not independent of the choice, but only because it needs to be translated differently to the context defined by each metaheuristic. That translation is the secret sauce that makes some implementations succeed while others fail. Therefore, your best bet is to find in the literature a community of people who have solved problems similar to those you are interested in. Then follow their choice of metaheuristic and adapt their algorithms to exploit what is novel about your problem. Using an alternative to their choice is an easy way to get a paper published, but those papers are rarely very insightful, since their main contribution is translating the same structure to a different context. answered 12 Jun '13, 23:06 Leo 