Genetic Algorithms are easy to apply to a wide range of problems,
from optimization problems like the traveling salesperson problem,
to inductive concept learning, scheduling, and layout problems.
The results can be very good on some problems, and rather poor
on others.
If only mutation is used, the algorithm is very slow. Crossover
makes the algorithm significantly faster.
GA is a kind of hill-climbing search; more specifically it
is very similar to beam search. As with all hill-climbing
algorithms, there is a problem of local maxima. Local maxima in
a genetic problem are those individuals that get stuck with a
pretty good, but not optimal, fitness measure, so that any small mutation
gives worse fitness. Fortunately, crossover can help them
get out of a local maximum. Also, mutation is a random process, so
it is possible that we may have a sudden large mutation to get these
individuals out of this situation. (In fact, these individuals never get out. It's their offspring that get out of local maxima.)