Can anyone explain to me the benefits of the genetic algorithm compared to other traditional search and optimization methods?
The main reasons to use a genetic algorithm are:
- there are multiple local optima
- the objective function is not smooth (so derivative methods can not be applied)
- the number of parameters is very large
- the objective function is noisy or stochastic
A large number of parameters can be a problem for derivative based methods when you don't have the definition of the gradient. In this type of situation, you can find a not-terrible solution via GA and then improve on that with the derivative based method. The definition of "large" is growing all the time.
- Concept is easy to understand
- Modular, separate from application
- Supports multi-objective
- optimization Good for “noisy” environments
- Always an answer; answer gets better with time
- Inherently parallel; easily distributed
Genetic algorithms differ from traditional search and optimization methods in four significant points:
- Genetic algorithms search parallel from a population of points. Therefore, it has the ability to avoid being trapped in local optimal solution like traditional methods, which search from a single point.
- Genetic algorithms use probabilistic selection rules, not deterministic ones.
- Genetic algorithms work on the Chromosome, which is encoded version of potential solutions’ parameters, rather the parameters themselves.
- Genetic algorithms use fitness score, which is obtained from objective functions, without other derivative or auxiliary information
Genetic algorithms are kind of a last resort. They are useful only when an analytical solution is not feasible (see Patrick's answer for the most common reasons), and you have a lot of CPU time on your hands.