Sunday, March 6, 2016

Genetic Engineering Algorithms

Why do I care?

In discussion with creationists, I'm often told that "randomness cannot design." 

That's utter bullshit. One of the ways I reply to these tweets is with examples of Genetic Design Algorithms, where random mutations coupled with selection and reproduction based on objective performance criteria can will always result in the appearance of design that satisfy the performance criteria.
In the course of these conversations, I've dug up quite a few resources and developed a few memes.

Evolution Works

It works so damn well that it can be used to design things when you're not sure what approach is best. I'm not just saying that, there's really good examples:
  • Field -Programmable Gate Arrays (FPGA's) have been designed to distinguish sounds
  • There are commercial software products like Genetic Designer and Natural Selection which provide tools for genetic design
  • Open-source libraries are free and available, so you can study the techniques and evaluate the performance for yourself. Admittedly, most of the people don't have the technical expertise, time, or patience to learn how to use these tools.

Watch it Happen Yourself

There are some really great examples of genetic design algorithms which can be watched evolving in near-real-time. One of my favorites is called BoxCar2D. In it, you can watch randomly designed cars compete for speed and distance.  Successful cars reproduce with random mutations. You can even manipulate the mutation rates and number of top cars to breed. BoxCar2D is a pretty robust simulation,
There are other, simpler online examples of the same basic concept. Since they're simpler, they converge faster:

  • Genetic Algorithm 2D is a version that runs on pure HTML5 / javascript, so you don't need Flash.
  • Genetic  Cars lets you cross-breed your cars with cars from other online players.
  • Darwin Bots is a more comprehensive simulation that runs on your desktop
  • BioMorph is a simulator where the user interactively selects the successful child in each generation.
I'm sure there are more. If you have a personal favorite, please post a comment or tweet me.

No comments :

Post a Comment