http://burakkanber.com/blog/machine-learning-genetic-algorithms-part-1-javascript/
Interesting article above. Stired an idead that has been bubbling around for ages.
The issue I see is that the chromosome of the GA and the fitness function are seperated. The choromosome is mutated, mated and selected, while the fitness function is static. This treats the "chromosome" simply as "data" while the fitness function, mutation function, mating function and selection function act as immutable "code".
I feel like I have been in this conversation before, but I want some way to load all the functions into the chromosome and allow both the "code" and the "data" to mutate and be mixed up at the same time.
For this to happen, there has to be a simple generic machine to parse the data in the chromosome and interpret some of it as "payload", some as fitness function, some as mating function, some as selection function and some as mutation function.
Chances are that this model will cause catastrophic failure in most scenarios... but its a fun idea.
By allowing all these functions to mutate and become part of the GA, it should make for a more flexible system, that does not encode any of the assumptions of the designers into it. It should allow the system to evolve without any unknown constraints.
What will this need?
A set of abstract mechanisms to iplement the various functions (Fitness, mutation, selection, mating) at a population level along with a chromosome of "data".
The simplest place to start is halfway.... Start with a library of fitness functions and use a simple flag in the data chromosome to pick which one to use on the GA. (Theoretically, this will pick the fitness function which gives the highest "score" for different families of GA's.
Ditto for mutation, selection and mating functions... just sit around and come up with every weird and amusing function possible, then let evoluation selecte the winners.
No comments:
Post a Comment