tsp_greedy, a Python code which reads a file of city-to-city distances, and solves a small traveling salesperson problem (TSP) using the greedy algorithm. It picks a starting city at random, and then successively visits the nearest unvisited city.
The user must prepare a file beforehand, containing the city-to-city distances. The program will request the name of this file, and then read it in as a matrix d. An example of such a file is:
0 3 4 2 7 3 0 4 6 3 4 4 0 5 8 2 6 5 0 6 7 3 8 6 0The distance file d should be square, symmetric, and have a zero diagonal.
A tour of n cities can be represented as a permutation p on the integers 0 through n-1. The cost of the tour, that is, the length, is the sum
cost = sum ( 0 <= i < n ) ( d(p(i),p(i+1)) )where p(n) is understood to mean p(0).
The greedy algorithm starts at one of the cities, and then successively moves to the nearest unvisited city, producing a tour. The tour may depend on the starting city, and so all n cities are tried. At the end, the shortest observed tour is reported.
The information on this web page is distributed under the MIT license.
tsp_greedy is available in a MATLAB version and an Octave version and a Python version.
python_combinatorics, a Python code which considers a variety of problems in combinatorics involving counting, combinations, permutations, and so on.
tsp_brute, a Python code which is given a city-to-city distance table, and solves a (small) traveling salesperson problem (TSP), using brute force.
tsp_descent, a Python code which is given a city-to-city distance table, chooses an initial tour at random, and then tries simple variations, seeking to quickly find a tour of lower cost for the traveling salesperson problem (TSP).
tsp_moler, a Python code which tries to optimize the traveling salesperson problem (TSP), written by Cleve Moler.
tsp_random, a Python code which is given a city-to-city distance table, seeks a solution of the Traveling Salesperson Problem (TSP), by randomly generating round trips that visit every city, returning the tour of shortest length.