Search code examples
optimizationcombinatoricsgenetic-algorithmtraveling-salesmanevolutionary-algorithm

Does translating the genes in a chromosome for a genetic algorithm for a combinatorial function increase the diversity of candidates?


I'm new to genetic algorithms and am writing code for the Traveling Salesman problem. I'm using cycle crossover to generate new offspring and I've found that this leads to some of the offspring retaining the same exact phenotype as one parent even when the two parents are different. Would translating the chromosomes avoid this?

By translate I mean a chromosome with phenotype ABCDE shifting over two to DEABC. They would be equivalent answers and have equal fitness, but might make more diverse offspring.

Is this worth it in the long run, or is it just wasting computing time?


Solution

  • Cycle crossover (CX) is based on the assumption that it's important to preserve the absolute position of cities (a city preferably inherits its position from either parent) and the preventive "translation" is against the spirit of CX.

    Anyway multiple studies (e.g. 1) have shown that for TSP the key is to preserve the relative position of cities and the edges.

    So it could work, but you have to experiment. Some form of mutation is another possibility.

    Probably, if the characteristics of CX aren't satisfying, a different crossover operator is a better choice: staying with simple operators, one of the most successful is Order Crossover (e.g. 2).


    1. L. Darrell Whitley, Timothy Starkweather, D'Ann Fuquay - Scheduling problems and traveling salesmen: The genetic edge recombination operator - 1989.
    2. Pablo Moscato - On Genetic Crossover Operators for Relative Order Preservation.