tsp_random, an Octave code which seeks a solution of the Traveling Salesperson Problem (TSP), by accepting a table of city-to-city distances, and randomly generating round trips that visit every city, returning the tour of shortest length.
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 1 through n. The cost of the tour, that is, the length, is the sum
cost = sum ( 1 <= i <= n ) ( d(p(i),p(i+1)) )where p(n+1) is understood to mean p(1).
In the sampling method, we simply generate sample_num permutations, each of which represents a tour, and return the permutation which has observed to have the shortest length. Since, except for small problems, there are typically an enormous number of possible tours, this method is unlikely to produce optimal results, but it may give some idea of the range of length of typical tours.
The information on this web page is distributed under the MIT license.
tsp_random is available in a MATLAB version and an Octave version and a Python version.
octave_combinatorics, an Octave code which considers a variety of problems in combinatorics involving counting, combinations, permutations, and so on.