Sunday, February 21, 2010

Combinatorial Optimization Time

For my capstone project I am investigating the use of gene expression programming in combinatorial optimization. Specifically, I am using the method outlined in the paper "Combinatorial Optimization by Gene Expression programming: Inversion Revisited."
While I agree with the paper (and I think the author is amazing (she invented GEP)), on the usefulness of inversion, there are some things that I just don't accept. First, I have been unable to reproduce her results. At best I get about 6 successes out of 100 runs for the traveling salesman problem The author has not responded to my emails asking for clarification on the setup of the problem, so I'm not sure if its my program, the setup, or the method that is behind this disparity.
Second, while inversion is all well and good, this method will obviously have problems scaling to harder problems, as only one change may be made to an individual in a generation.
Third, I understand the need to remove crossover as an operator for the TSP, but it is not necessary to throw it away entirely. For the problem that I started out investigating, the sorting network problem, there is a natural representation that involves sorting a series of lists that can be crossed over easily and never create anything but a full individual. Unfortunately this has produces very poor results so far, which I suspect is because adding crossover by using each list as a crossover point turns inversion into a point mutation and each list into a locus. This means that the cardinality of the set of states that each locus can be in is huge (2^n), which goes against a lot of GA research. I realize that the low order alphabet idea has come under a lot of criticism, but I think that it is probably justified in this example. Results have been poor so far.
Fourth, this method only solves list ordering, or multi list ordering. Even extended to larger numbers of lists, adding crossover as I am doing in my project, this is does not cover all problems of this type. In fact, I can only think of very few multi list ordering problems. Therefore, I think we can sidestep this whole scalability issue where the method seems to have inherent problems with using regular GEP on set membership problems. I will talk about this in my next post.

No comments:

Post a Comment