This month's MSDN has an amazing article on
genetic programming with the .NET Framework. If you aren't familiar with genetic programming, it is the application of evolution to writing algorithms and programs, fundamentally teaching the computer to breed applications. This article uses the CodeDom
to generate and breed applications based on a famous problem in genetic programming from John Koza's seminal work
Genetic Programming: On the Programming of Computers by means of Natural Selection. The problem itself is simulation of ants searching for food in the most efficient way. Source code is included, so you can get a sense of how this works. There is
even mutation added to keep some randomness in the gene pool.
Where does Rudy Rucker fit in? He's a computer scientist professor, but also a science fiction writer, who often includes genetic programming in his novels, perhaps with the most detail in a work called
The Hacker and the Ants, which I'm sure was inspired by the very problem solved in this MSDN article. Definitely worth reading.
I'll be breeding Avalon 3D apps in my spare time...
An interesting implementation of Darwinian Algorithms:
There is some very interesting research going on in the field of
Artificial Life (aka a-life). Genetic programming is a staple in a-life.
It's fascinating that computer science is as hungry for a definition of Life as biology. Then again, developing a unified definition of life is far from a strictly biological problem. It's mathematical (which can fork off into strange territory when you contemplate
the notion of the universality of math), philosophical, chemical, physical, biological(rife with unknowns) and algorithmic. Makes good sense, though, given that the things trying to come up with this unified definition (and who created the disciplines above) are
Of course, like biology, a-life centers its search on implicit universal core principals like natural selection, which may be too limiting for a universal definition. Nevertheless, the a-life camp is very flexible when it comes to chemistry (as is the astronomy
camp), designing some wild models of life forms based on non-carbon ingredients. A notable astronomer even devised a thinking cloud of gas with dynamic intelligence. But would such a construct evolve given the lack of a genetic subsystem?
Should be fun to see how this all evolves. (Wait, No!- A System.Charles.UnhandledContradictionException was thrown. Program is aborting.)
Interesting, however, what you've termed natural selection, simply sounds like logic. The computer is simply changing parameters and storing results, ranking them and thus finding the ultimate results. You still design base parameters and rules. When it
comes right down to it, rules are rules. You can't change the most basic and fundamental, so all you can ever do is try and try until you find the correct solution.
So, these programs are not really random as evolutionists claim natural selection to be based on.
Yes and no. I suppose.
Natural selection = Survival of the fittest
Survival of the fittest = Best parameters
If the rules are changing, it's evolution.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.