I’m mildly obsessed with evolution. I think it’s because the theory of evolution so elegantly describes our very complex biological world.
Evolution is a driving force behind so much of what happens around us, not to mention our continued march as a species.
But my mini-obsession didn’t stem from my college Genetics class or trying to read the first 50 pages of Darwin’s The Origin of Species.
It came from a NASA project that, unfortunately, has gotten very little attention because it’s on an insanely boring topic: antenna design. It turns out that it’s really hard to design an antenna that has the properties that you want. If you’ve ever used an antenna with your old-school TV or radio, you’ve experienced the bizarre effects of bending the antenna this way or that and getting wildly different effects from very small changes.
Antenna design is apparently just as much of a dark art as it is a science. But if you have a design in your hands you can tell how well it will perform with a computer simulation. So a team computer scientists programmed a computer program to solve the problem for them since a human couldn’t do it. The program generated a random population of antenna designs. They looked really funky and weren’t good designs.
But then they took the randomly generated antennas and had the computer simulate how good they were. The better designs “survived” and the rest didn’t. Then the program took the better designs, “mated” them with one another, and added a bit of randomness into their design. This group of offspring became the next generation of antennas – which were tested for the right properties, mated, and mutated to create the next generation.
The program evolved a antenna that met all the specifications in about 10 hours… and the funky antenna shown above was actually the winner. This NASA project blew my head off and was my introduction to genetic algorithms. Learn more about NASA’s work here, here, and here (in-depth video).
Here’s another incredible example of what Genetic Algorithms can do.. that’s frankly a lot more interesting: a computer learning to play Super Mario World better than any human could.
The big different between this example and the antenna example is that the genetic algorithm is improving a neural network that plays Super Mario World instead of a less complex antenna design.
What I think really fascinates me about evolution, and genetic algorithms in particular, is how elegant the solutions are to these very complex problems. Input the rules, desired output, and a few random starting points and out comes a winner (and a lot of losers).
Evolution – in all of it’s forms – offers a really compelling case for the simple trial and error methodology. Evolution works not because it’s smart, but because it’s relentless. So get out there and try and fail, try and fail, try and fail… until you find that you’ve succeeded.
If you’re interested in other applications of evolution and natural selection outside of the genetic and biological worlds, I put a few really interesting resources here.