Friday, March 17, 2006

Be (a programming) GOD - code your own programs that evolve!

Using simple evolutionary models, it's easy to create algorithms that 'evolve' solutions to problems, such as fitting a function to a dataset (one of my applications) or creating an optimum antenna (one of NASA's applications). The concept I used is simple: sequences of 'DNA', strings that consist of the characters A, T, C, and G (from real biology), map out to some sort of algorithm. Sequences are then ranked, such that the 'better' or 'stronger' algorithms they represent achieve a better rank (in EPTK, lower ranks are 'better'). The EPTK frontend then proceeds to cull the algorithms by rank: the top algorithms reproduce, creating a pure copy and two mutated copies (with either a letter change, insertion, or deletion), while the weaker algorithms are randomly weeded out. Thus, a strong algorithm will either continue its lineage, mutate into something weaker and die out, or mutate into something stronger and perhaps become the new dominant algorithm. In the end, you're left with a strong algorithm

No comments:

Post a Comment