Answers.Body: <p><a href="https://www.iiia.csic.es/~christian.blum/downloads/blum_roli_2003.pdf" rel="nofollow noreferrer">Meta-heuristics</a> are particularly suited for combinatorial optimization problems, given that, although they are not usually guaranteed to find the optimal global solution, they can often find a sufficiently good solution in a decent amount of time. So, they are an alternative to exhaustive search, which would take exponential time. For example, ant colony optimization algorithms have been used to approximately (or exactly, in the case of small or medium-size instances) solve the travelling salesman problem, whose decision version is an NP-complete problem (which means that, unless P=NP, there is no polynomial-time solution to solve it). </p>
  
  <p>Meta-heuristics can also be easily applied to many problems, given that they are not problem-specific. For example, in the case of genetic algorithms, you just need to encode the possible solutions, but, in principle, you can apply genetic algorithms to a wide range of problems, although they may not always be the best solution to each of these problems. Moreover, as opposed to gradient-based optimisation algorithms, there's no need for the gradient of the objective function. For instance, in the case of genetic algorithms, you just need a way of evaluating the solutions (e.g. the fitness or the novelty).</p>
  
  <p>Meta-heuristics often incorporate some form of randomness in order to escape from local minima. Ant-colony optimization algorithms or simulated annealing are two good examples of this approach. </p>
  
  <p>If you are still interested in meta-heuristics, the book <a href="http://cleveralgorithms.com/nature-inspired/index.html" rel="nofollow noreferrer">Clever Algorithms: Nature-Inspired Programming Recipes</a> (by Jason Brownlee) is a very good resource for learning about them. There's also a <a href="https://github.com/jbrownlee/CleverAlgorithms" rel="nofollow noreferrer">Github repository</a> with the implementation of the algorithms described in this book.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-01-27T13:38:24.203Z
Answers.Text: I was already preparing this answer before [the last edit to the question](https://ai.stackexchange.com/revisions/17701/3), which indicates that the OP is already aware of an advantage of meta-heuristics that I mention in this answer.
Answers.UserDisplayName: nbro
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2020-01-27T13:23:51.560Z
Answers.LastActivityDate: 2020-01-27T13:44:55.737Z
Answers.LastEditDate: 2020-01-27T13:44:55.737Z
Answers.UserDisplayName: nbro
Body: <p>What are the advantages and disadvantages of using meta-heuristic algorithms on optimization problems? Simply, why do we use meta-heuristic algorithms, like PSO, over traditional mathematical techniques, such as linear, non-linear and dynamic programming?</p>
  
  <p>I actually have a good understanding of meta-heuristic algorithms and I know how they work. For example, one advantage of this kind of algorithms is that they can find an optimal solution in a reasonable time.</p>
  
  <p>However, my lack of knowledge about other methods and techniques brought this question to my mind.</p>
  
Tags: <comparison><optimization><applications><meta-heuristics>
Title: What are advantages of using meta-heuristic algorithms on optimization problems?
UserDisplayName: user33046
ThreadText: # What are advantages of using meta-heuristic algorithms on optimization problems?
  
  (Asked by: username_0 on 2020-01-27)
  
  What are the advantages and disadvantages of using meta-heuristic algorithms on optimization problems? Simply, why do we use meta-heuristic algorithms, like PSO, over traditional mathematical techniques, such as linear, non-linear and dynamic programming?
  
  I actually have a good understanding of meta-heuristic algorithms and I know how they work. For example, one advantage of this kind of algorithms is that they can find an optimal solution in a reasonable time.
  
  However, my lack of knowledge about other methods and techniques brought this question to my mind.
  
  **Tags:** comparison, optimization, applications, meta-heuristics
  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_1 on 2020-01-27. Score: 1
  
  [Meta-heuristics](https://www.iiia.csic.es/~christian.blum/downloads/blum_roli_2003.pdf) are particularly suited for combinatorial optimization problems, given that, although they are not usually guaranteed to find the optimal global solution, they can often find a sufficiently good solution in a decent amount of time. So, they are an alternative to exhaustive search, which would take exponential time. For example, ant colony optimization algorithms have been used to approximately (or exactly, in the case of small or medium-size instances) solve the travelling salesman problem, whose decision version is an NP-complete problem (which means that, unless P=NP, there is no polynomial-time solution to solve it).
  
  Meta-heuristics can also be easily applied to many problems, given that they are not problem-specific. For example, in the case of genetic algorithms, you just need to encode the possible solutions, but, in principle, you can apply genetic algorithms to a wide range of problems, although they may not always be the best solution to each of these problems. Moreover, as opposed to gradient-based optimisation algorithms, there's no need for the gradient of the objective function. For instance, in the case of genetic algorithms, you just need a way of evaluating the solutions (e.g. the fitness or the novelty).
  
  Meta-heuristics often incorporate some form of randomness in order to escape from local minima. Ant-colony optimization algorithms or simulated annealing are two good examples of this approach.
  
  If you are still interested in meta-heuristics, the book [Clever Algorithms: Nature-Inspired Programming Recipes](http://cleveralgorithms.com/nature-inspired/index.html) (by Jason Brownlee) is a very good resource for learning about them. There's also a [Github repository](https://github.com/jbrownlee/CleverAlgorithms) with the implementation of the algorithms described in this book.
  
  > **Comments:**
  > **username_1**: I was already preparing this answer before [the last edit to the question](https://ai.stackexchange.com/revisions/17701/3), which indicates that the OP is already aware of an advantage of meta-heuristics that I mention in this answer.  
  
  ---
  
  