calebprime
Penultimate Amazing
- Joined
- Jul 5, 2006
- Messages
- 13,001
I was reading The Third Culture, copyrighted 1995, the section by W. Daniel Hillis.
He describes a method of computer programming (pgs. 383-385) in which the computer evolves better and better routines by a kind of natural selection. The routines are random and ineffective at the beginning, but the best program is selected (by the computer) and, over many generations, an effective routine emerges. The code, he says, is often incomprehensible to a human programmer, but it's very effective. Millions of generations can be run in a very short time, so in a matter of hours, a usable program emerges, all without explicit human design. The example he uses is alphabetical sorting, but the code could do anything.
My question for computer programmers here: How much of computer programming today uses methods like this? What kinds of programs?
Do any common programs, like web browsers, etc. use routines developed this way?
I would simply Google the appropriate Wiki page, as in:
http://en.wikipedia.org/wiki/Evolutionary_computation
but it might be interesting for the experts here to hold forth.
I don't have an opinion or expertise, just wanted to know a little more.
He describes a method of computer programming (pgs. 383-385) in which the computer evolves better and better routines by a kind of natural selection. The routines are random and ineffective at the beginning, but the best program is selected (by the computer) and, over many generations, an effective routine emerges. The code, he says, is often incomprehensible to a human programmer, but it's very effective. Millions of generations can be run in a very short time, so in a matter of hours, a usable program emerges, all without explicit human design. The example he uses is alphabetical sorting, but the code could do anything.
My question for computer programmers here: How much of computer programming today uses methods like this? What kinds of programs?
Do any common programs, like web browsers, etc. use routines developed this way?
I would simply Google the appropriate Wiki page, as in:
http://en.wikipedia.org/wiki/Evolutionary_computation
but it might be interesting for the experts here to hold forth.
I don't have an opinion or expertise, just wanted to know a little more.