Easy to use python package for rapid experimentation on the classic travelling salesman problem.
Project description
pytspsolver
Easy to use package for rapid experimentation on the classic travelling salesman problem. Contains implementations of various optimization algorithms, cool visualizers and a plug-in architecture.
Installation
> pip install pytspsolver
Usage
This package is designed to provide an intutive pythonic interface; allowing you to conduct experiments with minimal code and maximum flexibility. 😅
Here's how you can kick-start a travelling salesman problem experiment:
from pytspsolver.entities import TSProblem
from pytspsolver.experiments import Experiment
from pytspsolver.solvers import *
from pytspsolver.utilities import create_random_problem, get_tsp_lib_problem, Visualizer
import matplotlib.pyplot as plt
# Create a few tsp problems (represented as an adjacency matrix)
problems = [create_random_problem("UniqueProblemName"+str(i), i) for i in range(3,12)]
# Pass in the location of TSPLIB95 dataset file
tsp_prob = get_tsp_lib_problem("gr17.tsp")
# Create a new Experiment
experiment = Experiment()
# Add the problems to the experiment (single or list of problems)
experiment.add_problem(tsp_prob)
experiment.add_problems(problems)
# Add solvers to use in the experiment
experiment.add_solver(ExhaustiveSearch(time_limit=50))
experiment.add_solver(GreedySearch(time_limit=100))
# Run the experiment desired number of times
results = experiment.run(epoch=10)
# Set up Visualizer with experiment results
visualizer = Visualizer(results)
# Show visualizations - automatically averages the results from different epochs
visualizer.plot_n_vs_time_all(plt)
# Note: the visualizer has various plots available, they can be called in a similar fashion.
It comes with a plug in architecture, therefore it is very customizable.
Additional Examples
A few examples have been implemented using jupyter notebooks; found in the examples folder. These notebooks can be accessed by launching jupyter notebook from your current conda environment.
> jupyter notebook
👉 Make sure you are in the right environment when launching jupyter notebook, otherwise, jupyter notebook kernel will be pointing to a different python version which won't have pytspsolver
package installed.
Contributions
Contributions and pull requests are encouraged! 👏
If you spot any issues or would like to add a new feature, please discuss it in the GitHub issues section prior to writing code and submitting a pull request.
Contributors
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
File details
Details for the file pytspsolver-0.0.1.tar.gz
.
File metadata
- Download URL: pytspsolver-0.0.1.tar.gz
- Upload date:
- Size: 12.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.6.2 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e99587f565bae988efe072a1dda67e06d9b899fef4b886d2c2a358674bfbeee0 |
|
MD5 | 932b48fb4a1c48cfbb1a4c8d71dc73aa |
|
BLAKE2b-256 | 855501137020738c43d9a6c703a75fa2dd79d2e471d88917beba65536738ccfe |