As I said in the last post, it is possible to remove the restriction in GEP of keeping operators in the head. Why we would do that is just to allow a greater variety of trees to form that would be impossible with other notations. I particular, I hope that this may increase the ability of PGEP to find good solutions, as that is a form of GEP that I like a lot and I think it has a lot of potential.
One way to remove this restriction is simply to allow all symbols to appear anywhere, and ignore operators on the end that cause the expression to be invalid. This is a little messy, but it would certainly work.
Another way would be to turn any operator that causes the individual to be invalid to a random terminal before evaluating. Again, messy, but workable.
The last way that I can think of is geared towards binary GEP (BGEP). Again, identify the operators that cause the expression to be invalid, but this time just read them as the symbol with the same value (assuming there is one) and ignoring the bit that determines that it was supposed to be an operator. Since BGEP determines between being a terminal or an operator by one bit in the front of each locus, it would be the same genetic material just being interpreted differently. I like this one the best, but it still has some problems. It depends on the terminals and operators being matched nicely in their binary interpretations and having a way of resolving problems when there is no terminal that matches the operator. Binary GEP is a little messy like that and I plan on trying to find reasonable solutions to its problems, which will hopefully make it easy to remove the head and just have a full homogeneous gene.
No comments:
Post a Comment