I suspect that there is real power in the ability of GEP to encode knowledge as a tree, which allows the expression of relationships in tree form.
I'm thinking of a GEP with union (and maybe 'not') as the functions and indices as the terminals. The expression tree evaluates to a set of indices to be set as 1 in a bit vector. The final bit vectors is evaluated for fitness. The cool thing about such a setup is that it creates the object most GAs are concerned with (a bit vector), yet it encodes this as a string.
It is well known that related loci should be close to each other so good configurations will not be disrupted by crossover easily. With GAs we have the problem that we don't know the relationship, so we don't know the best order of bits, and even with inversion trying to evolve a good ordering (not that many people use inversion) a bit can only be related to a small number of other bits because it can only be next to 2, and near a small number.
The power of the expression tree is that it it not limited to the relations it can express this way (or it is not as restricted). I would like to know if the relationships can be used to improve performance, and I think I have the perfect problem to test this out..
Next post I guess.
No comments:
Post a Comment