Skip to main content

A wrapper for c++ to solve the Traveling Salesman Problem

Project description

Package description

A wrapper for c++ to solve the Traveling Salesman Problem

Installation

pip install tsp-c

Available methods

  • Greedy
  • Simulated Annealing (SA)
  • Particle Swarm Optimization (PSO)
  • Ant Colony Optimization (ACO)
  • Two-opt Heuristic

Available functions

solve_greedy(distance_matrix)
solve_SA(distance_matrix)
set_param_SA(C0, Cmin, L0, alpha)
solve_PSO(distance_matrix)
set_param_ACO(hconst, alpha, beta, evprate, intsty, nAnt, nItr)
solve_ACO(distance_matrix)
solve_two_opt(distance_matrix)
set_param_PSO(w, c1, c2, maxV, muProb, nPar, nItr)

Examples

To solve the problem with the Greedy method:

import tsp_c as tsp

distance_matrix = [
	[0.0, 290.7, 254.9, 172.9],
	[263.6, 0.0, 508.3, 185.0],
	[258.2, 497.1, 0.0, 405.6],
	[136.8, 190.7, 394.8, 0.0]
]

sol, distance = tsp.solve_greedy(distance_matrix)
print("\nSolution from Greedy:")
print(distance, " ", sol)

The solution will be (1, 3, 0, 2) with total distance 1073.8000000000002.

To solve the problem with the Simulated Annealing method, change the code to:

sol, distance = tsp.solve_SA(distance_matrix)

To set the parameters of the Simulated Annealing method, use:

tsp.set_param_SA(C0, Cmin, L0, alpha)

where

  • C0 = Initial temperature (default = 20.0)
  • Cmin = Final temperature (default = 0.1)
  • L0 = Number of iterations in each temperature (default = 10000)
  • alpha = cooling rate (default = 0.9)

For example:

tsp.set_param_SA(10.0, 0.01, 10000, 0.95)

To set the parameters of the ACO method, use:

tsp.set_param_ACO(hconst, alpha, beta, evprate, intsty, nAnt, nItr)

where

  • hconst = Heuristic Constant (default = 50.0)
  • alpha = Pheromone influence (default = 0.1, min = 0.0001, max = 10.0)
  • beta = Heuristic influence (default = 5, min = 0.0001, max = 10.0)
  • evprate = Evaporation Rate (default = 0.1)
  • intsty = Pheromone intensity (default = 0.1)
  • nAnt = Number of ants (default = 100)
  • nItr = Number of iterations (default = 100)

For example:

tsp.set_param_ACO(100.0, 0.15, 4, 0.1, 0.15, 200, 200)

To set the parameters of the PSO method, use:

tsp.set_param_PSO(w, c1, c2, maxV, muProb, nPar, nItr)

where

  • w = Inertia weight of the particle (default = 1.0)
  • c1 = acceleration coefficient for the local best position (default = 2.0)
  • c2 = acceleration coefficient for the global best position (default = 2.0)
  • maxV = Maximum velocity of the particles (default = 2.0)
  • muProb = mutation probability that change the position of a particle (default = 0.05)
  • nPar = Number of particles (default = 100)
  • nItr = Number of iterations (default = 5000)

For example:

tsp.set_param_PSO(0.8, 1.5, 1.5, 5, 0.1, 200, 1000)

Requirement

python >=3.6

Operating System

Linux

References

  • Janjarassuk, Udom. (2011). A comparison of heuristic approaches to the travelling salesman problem. ICIC Express Letters. 5. 279-283.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tsp-c-0.0.28.tar.gz (118.3 kB view hashes)

Uploaded Source

Built Distribution

tsp_c-0.0.28-py3-none-any.whl (117.0 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page