Search code examples
programming-languages

Evolutionary programming


I just watched a pretty cool ted talk by Danny Hillis dated 1994.

At one point in the video, he talks about "evolutionary programming", i.e. he asks the computer to generate hundreds of programs by generating random sequences of commands, then tests to see how well each program sorts numbers. He keeps 10% of the programs that sorts numbers the best, then generates a next round of programs based on the 10% that did well and repeats as many times as he wants to, to eventually generate the ultimate sorting program.

Are there tools/programming languages out there that do this? E.g. given certain constraints, generates C code that best satisfies those constraints.

I've visited some wikipedia articles related to "Evolutionary Programming"; there seems to be a lot of theory there, but it doesn't seem easy to find something you can just play with.


Solution

  • A very simple and general free downloadable source is TinyGP implemented in Java. By the way.. for more details on this you should search information about "genetic programming" instead of "evolutionary programming". it is all a bit confusing because there are so many subfields of evolutionary computation with small diffrences in the names like "genetic algorithms", "evolutionary strategies", "evolutionary programming", "genetic programming"... but i think what you're talking about is actually genetic programming