The Traveling Salesperson


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.

Here is the TSP FAQ

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

  1. All GA parameter values for that benchmark
  2. (30 points) graphs of avg-avg fitnes and max-avg fitness versus number of function evaluations (or generations when you provide population size) over 30+ runs of your algorithm with different random seeds. You always maximize fitness.
  3. (30 points) graphs of avg-avg objective function values (tour length) and max-avg objective function values over the same 30+ runs of your TSP-GA with different random seeds. In this case, you are minimizing tour length which is the objective function.
Finally, for each benchmark problem, I want to see the following numbers that serve as criteria for evaluating your implementation.

You should visit the library or use the internet to find other researcher's GA techniques for solving the TSP. Cite these in your report.

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


Sushil Louis