tsp_random


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  0
      
The 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.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Languages:

tsp_random is available in a MATLAB version and an Octave version..

Related Data and Programs:

tsp_random_test

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.

satisfy, an Octave code which demonstrates, for a particular circuit, an exhaustive search for solutions of the circuit satisfiability problem.

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_brute, an Octave code which reads a file of city-to-city distances and solves the traveling salesperson problem, using brute force.

tsp_descent, an Octave code which is given a city-to-city distance map, chooses an initial tour at random, and then tries a number of simple variations, seeking to quickly find a tour of lower cost.

tsp_greedy, an Octave code which reads a file of city-to-city distances, picks a starting city, and then successively visits the nearest unvisited city.

Reference:

  1. Gerhard Reinelt,
    TSPLIB - A Traveling Salesman Problem Library,
    ORSA Journal on Computing,
    Volume 3, Number 4, Fall 1991, pages 376-384.

Source Code:


Last revised on 12 October 2022.