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 computer code and data files described and made available on this web page are distributed under the MIT license
tsp_greedy is available in a MATLAB version and an Octave version and a Python version.
change_making, an Octave code which considers the change making problem, in which a given sum is to be formed using coins of various denominations.
partition_problem, an Octave code which seeks solutions of the partition problem, splitting a set of integers into two subsets with equal sum.
subset_sum, an Octave code which seeks solutions of the subset sum problem.
tsp, a dataset directory which contains test data for the traveling salesperson problem (TSP);
tsp_brute, an Octave code which reads a file of city-to-city distances and solves the traveling salesperson problem (TSP), using brute force.