Monday, February 22, 2010

Binary GEP Time

So like I said in the previous post, set membership is easy to express with a GEP. Then we run into the problem that size of the terminal set is dependent on size of the problem (|A| where A is the set we are taking a subset of). In other problems, this does not appear. In symbolic regression for example, we have some small constants, and maybe some method of creating constants (which is a cool area on research in GEP btw) and the size of the problem can be very large with very few terminals (at least, the number of terminals is dealt with in a nice way).
There is such thing as Binary GEP (BGEP) which encodes the operators and terminals in a low order alphabet (0|1), which it is claimed will help when you have problems with many operators and terminals. I also would like to try prefix GEP, just because I like it a lot. It seems to allow building blocks to be created and stay together better. I hope that these two techniques, which I've never seen used together, will provide some reasonable performance and solve even relatively hard problems.
Of course, this is a general method, and will almost certainly be outperformed by problem specific solvers. On the other hand, I would guess that it will outperform simple GA solvers simply because GEP seems to generally perform well.
This is especially interesting as a project because what we will end up with is an expression that creates the solution, not the solution itself. This means that we may be able to investigate the knowledge that is encoded in the expression and learn about the problem. I doubt I will actually do this, but it would be cool in a real applied situation where that knowledge may be helpful.

No comments:

Post a Comment