The Good, Bad, and Ugly Faces of Genetic Algorithms
What makes
GAs so fascinating? How are GAs different from other approachs to problem
solving? Where do they fall short? These questions, as well as others,
are answered in this general overview of this field of Machine Learning.
The Strategy Behind Fitness
The peformance
of a Genetic Algorithm is mostly based on how it measures the effectiveness
of a solution. The way you numerically assign how good a particular solution
is for your problem determines how it's going to work out, so it becomes
a real skill to design a good function. This article also discusses encoding
schemes, or methods for representing your problem in "genomes".
Selection, Mating, and Mutation
This article
is geared toward answering the inquiry: "Okay, so I understand the
general idea of a genetic algorithm. But how do you actually 'breed' solutions?
Population Dynamics
There
are some overall trends in the population that need to be addressed. Search
Space is also discussed in depth, as well as some optional, yet extremely
practical, operators called Speciation and Subpopulations.
The Enemies
What
happens when it doesn't work? Why won't my population converge? Why am
I not getting very good answers? Is my population jumping too fast to
conclusions? Getting a Genetic Algorithm to run is one feat, but getting
it to run well is a whole extra kettle of fish. This article goes over
some of the most common factors that create poor population trends.
Quite a Programming Endeavor: A Programmer's
Perspective
Genetic Algorithms
are a formidable programming endeavor. The algorithm itself provides for
so much flexibility with operators and parameters that programming a GA
and getting it to work are two entirely different things. I discuss in
this article what I have learned about designing a system for GAs...and
what should be done.
All above articles
are also available in PDF format here
|