COMMENTS
What genetic programming program takes a long time to run? I remember back in the day of 486 PCs, my programs used to give good answers in a few minutes, hours, or a couple days max for hard problems. Another example is Tierra, the evolution environment, maybe a slightly different animal. It ran through most of its often-repeated scenarios (parasites, resistance, super-parasites, cannibals, etc.) in a few hours.
What kind of problem are you working on? Would be curious about specifics.
Another post with more specifics would definitely be appreciated. I'm completely ignorant about genetic programming but am curious about the possibilities. Examples ranging from very simple to complex would be helpful for those that are uninitiated.
I third the request for more details. This sounds interesting...
We've gone a long way, cramming a house full of servers into a gaming console.
It's fascinating to draw the similarities between biology and self-evolving software, though it seems that life forms come in features not necessary desired in software -- redundancy, "junk DNA", etc. Academic curiosity aside, would it really be practical to petaflop a rand() function into a working software?
Tony, evolvable apps do not have random behavior. They have evolved behavior that is finely tuned. But, they are "soft" - that is, unpredictable. And, they will require redundancy and junk DNA. I wrote about the differences here:
http://blog.assembla.com/assemblablog/tabid/12618/bid/2470/Soft-Landing-for-Evolvable-Apps.aspx
I can't provide a review of genetic programming here, but I can provide some reference links:
Wikipedia: http://en.wikipedia.org/wiki/Genetic_programming
John Koza's GP site:
http://www.genetic-programming.com/
Mark, I think the basic problem with GP as usually practiced is that you do get most of the behavior that you are going to get relatively quickly. Ideally, as you could run indefinitely and get ever more interesting behavior. That's not happening .. yet.
GP is useful for problems that are hard for human programmers - machine vision, hearing, motion. Getting good results in these applications requires huge computing power because ultimately the processing is complex, and the data sets to be processed are large.
I was using it to evolve financial training rules. I actually had a problem that was opposite to the problem of sophistication. I wanted rules that were very simple, so they would not overlearn, and would be applicable outside the historical training set. I used the Meta-GA to find parameters that would constrain learning, and select inputs with real information content, and give results outside the training set. So, my issue was handling large training data sets, and running the Meta-GA, which consumed days or weeks of compute time even if the individual runs were relatively simple.
I forgot to post some of my own links from way, way back in 1993. Here's an article from Byte magazine that gives you GPQuick- a fast execution GP system written in C++.
http://www.byte.com/art/9402/sec10/art1.htm
Here's the code. Amazingly, someone scooped it up and still serves it on the Internet:
http://ots.fh-brandenburg.de/downloads/gpquick/
I just hope the religion and war parameters are set to zero, or they may end up producing viruses and MCPs (Tron reference for ya) and never have any real progress, since the MCPs will stop it from exploring any "morally objectionable" routes, and take control of the viruses to wipe the entire project out.