Software enzymes for genetic programming
Andrew Arensburger presents a neat idea: use the metaphor of the lock-and-key hypothesis for enzymes to route data in genetic programming.
Briefly, imagine that each function in the program is a biological structure sitting inside a cell. The structure has a number of binding sites where enzymes can bind to it. The structure is inactive until a promoter enzyme binds to it and activates it. The structure then is fed molecules to process via enzymes that bind at other binding sites. The outcome of the structure’s processing is carried off by other enzymes that bind to yet other binding sites.
Now, the binding sites are strings, the molecules are data, and the enzymes each have a regular expression that specifies which strings they bind to.
Each function in the program is associated with a string. A promoter (”enzyme” in the form of a regular expression) has to bind to that string for the function to be called. Each function argument is also associated with a string. In order for input data to be transmitted to the function, data-carrying enzymes must bind to the function argument strings. Finally, the function has yet another string to allow enzymes to bind to it when it’s done in order to carry off the return value.
July 19th, 2007 at 12:26 am
Of course, all this does is set up a network along which data flows. That can be specified any number of ways. But what I thought was interesting about this approach is that this specification is right there in the “chromosomes”, and can evolve.