tsp_greedy, an Octave 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 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).
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.
octave_combinatorics, an Octave code which considers a variety of problems in combinatorics involving counting, combinations, permutations, and so on.