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 = 3, min = 0.0001, max = 10.0)
- beta = Heuristic influence (default = 5, min = 0.0001, max = 10.0)
- evprate = Evaporation Rate (default = 0.05)
- intsty = Pheromone intensity (default = 0.1)
- nAnt = Number of ants (default = 50)
- nItr = Number of iterations (default = 100)
For example:
tsp.set_param_ACO(100.0, 5, 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tsp-c-0.0.30.tar.gz.
File metadata
- Download URL: tsp-c-0.0.30.tar.gz
- Upload date:
- Size: 118.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffc55d51b0d4f8b91fc2dd18cf6c6c1d46111a28224ae9ce777b697e72c85c4a
|
|
| MD5 |
075298a9397dc6355859edd4f85060a8
|
|
| BLAKE2b-256 |
d3c4eb904287d6bfa865cb30026b731b65b97788db665528c00f63143ddba3be
|
File details
Details for the file tsp_c-0.0.30-py3-none-any.whl.
File metadata
- Download URL: tsp_c-0.0.30-py3-none-any.whl
- Upload date:
- Size: 117.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b53bf831ab7a411cc619d03bcd838f8ecf9f55f03b9b72691ff10e6811e390e5
|
|
| MD5 |
e0900e3220ba9b5f1b14e0c7dde38fd2
|
|
| BLAKE2b-256 |
0fe12158122ad4cd2615b684311563b865fddfd737d4b56f93d6d194af56fae7
|