Attempt to solve the Traveling Salesperson Problem using a modified genetic algorithm. You will use the following benchmark problems that people all over the world use to test their techniques.
The problem is to minimize the distance travelled by a salesperson as they visit all the cities, visiting each city exactly once. You assume that the distance between any pair of cities is given by the euclidean distance. The exact instructions for calculating distances and information on optimal tour-lengths found so far are given in this documentation. You should also visit the TSP library to learn more about the problem and to take a look at all the benchmarks.
More specifically, the assignments is to design and use an elitist genetic algorithm to solve the symmetric Traveling Salesperson Problem. Modify the GA code from your prior assignment and design and implement new selection, crossover, and mutation operators. Implement your evaluation function while being careful to use the distance computation for symmetric TSPs as given in this documentation.
Specifically, implement and use CHC selection or any other selection algorithm with strong selection pressure. State and describe your selection algorithm. You must NOT use fitness proportional selection. Implement and use PMX, OX, or CX and state and describe which crossover you used. Implement swap or invert mutation or both and describe your implementation.
Since your objective is to solve each TSP, you may experiment with and use any GA parameter values (population size, number of generations, probabilities of crossover and mutation, scaling constant, ...) that help achieve this objective or to get as close as you possibly can.
Here are optimal tour lengths for TSP benchmarks, including the benchmarks used for your assignment.
You will also find pages 170 - 175 in Goldberg's book useful for designing your TSP-GA. The book includes an algorithmic implementation (in pascal) of the PMX crossover operator for TSPs. You will find other implementations on the net.
Turn in a report that explains your crossover, mutation, and selection algorithms in terms of their deviations from the canonical three operator genetic algorithm (10 points). For each benchmark, the report should contain
If you use a technique, please cite the appropriate references. Using a technique discovered by someone else will reduce your grade, unless you cite them (even if you independently came up with the same technique). Not knowing is not an acceptable excuse. Good Luck