Image via Wikipedia
The second, feeling of his tusk,
Cried, “Ho! What have we here
So very round and smooth and sharp?
To me ’tis mighty clear
This wonder of an Elephant
Is very like a spear”.
by John Godfrey Saxe
The state of Evolutionary Computing is somewhat like the blind men’s observations in Saxe’s poem above. A practitioner’s opinion of what EC is can be influenced based on the sub-area of their specialty; the development of sub-areas themselves being accidents of history.
The basic approach behind Evolutionary Computing algorithms is that they process symbols based on principles that mimic biological evolution mechanisms. The research behind them involves:
- Understanding the science of how they process symbols;
- Figuring out the engineering aspect of how to make such symbol processing problem friendly.
This post is the start to a series on some ways EC practitioners can and do go wrong.
- One way you can go wrong is to give their symbol processing human attributes. Although EC algorithms can solve problems it does not mean they use the same problem solving techniques humans use. The most prevalent example of the anthropomorphizing of such algorithms is the Building Block Hypothesis. In my opinion the Building Block hypothesis is really an attempt at trying to decipher how EC algorithms (specifically Genetic Algorithms) work based on the common human divide-and-conquer approach.
- Do not follow biological models too closely, only follow the principles. This advise also works for other biologically inspired optimization algorithms such as neural networks. If the reason for your use of EC is to understand biological phenomena then this advise is not for you. However if you objective is to get an EC algorithm to solve a problem on some digital hardware then you are most likely not constrained by the physics and chemistry of DNA and RNA interactions. As an analogy, consider that airplanes don’t flap their wings though birds do.