views:

74

answers:

4

A while back I recall reading a magazine article (in Wired I believe) about applying Darwinian evolution to programs to create better programs. Essentially multiple mutations of a program would be spawned, and the one that performed the best would be selected for the next round of mutations.

Unforunately I can't make the subject sound nearly as interesting as is sounded in the article, but I can't find the article.

Since this sounds like just the coolest thing ever to me, I was wondering what mutations one could have inside of a program

A: 

I read an article on Coding Horror about something like that the other day: Go That Way, Really Fast. Basically, the idea I got from it was that software should constantly be improved which means constantly pushing out new versions/releases. This seems to match the idea of evolution in that your software is always improving into something better.

Shynthriir
New releases of software aren't evolution (in the darwinian sense). (casual) Software is planned - evolution isn't. Software can change radically within one release - evolution is very slow.
delnan
After reading the other posted articles, I got that sense. I've never heard of Genetic Programming before.
Shynthriir
+2  A: 

Yes. It is called Genetic Programming, where a master program that writes programs itself. And the programs it writes can evolve to a certain criterion.

E.g. 8 queen could be solved by GP.

Yin Zhu
+1  A: 

I think you're referring to Genetic Algorithms. I want to work on this topic for my dissertation. I can't stop reading about it :-)

rmx
A: 

Found this article/paper - is this what you're referring to?. Also found this PDF. Quite an interesting topic

What it sounds like is that you could use self-modifying code that reproduces the program itself based on self-monitoring optimizations. This would currently point at interpreted-language programs.

slashmais

related questions