{ "info": { "author": "Rithin Chalumuri", "author_email": "", "bugtrack_url": null, "classifiers": [], "description": "# pytspsolver\n\nEasy 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.\n\n[![Build Status](https://dev.azure.com/rithinchalumuri/pytspsolver/_apis/build/status/pytspsolver-CI?branchName=master)](https://dev.azure.com/rithinchalumuri/pytspsolver/_build/latest?definitionId=7&branchName=master) \n[![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/rithinch)\n[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)]()\n\n## Installation\n\n```bash\n> pip install pytspsolver\n```\n\n ## Usage\n \n This package is designed to provide an intutive pythonic interface; allowing you to conduct experiments with minimal code and maximum flexibility. \ud83d\ude05\n \n Here's how you can kick-start a travelling salesman problem experiment:\n \n ```python\nfrom pytspsolver.entities import TSProblem\nfrom pytspsolver.experiments import Experiment\nfrom pytspsolver.solvers import *\nfrom pytspsolver.utilities import create_random_problem, get_tsp_lib_problem, Visualizer\nimport matplotlib.pyplot as plt\n\n# Create a few tsp problems (represented as an adjacency matrix)\nproblems = [create_random_problem(\"UniqueProblemName\"+str(i), i) for i in range(3,12)]\n\n# Pass in the location of TSPLIB95 dataset file\ntsp_prob = get_tsp_lib_problem(\"gr17.tsp\")\n\n# Create a new Experiment\nexperiment = Experiment()\n\n# Add the problems to the experiment (single or list of problems)\nexperiment.add_problem(tsp_prob)\nexperiment.add_problems(problems)\n\n# Add solvers to use in the experiment\nexperiment.add_solver(ExhaustiveSearch(time_limit=50))\nexperiment.add_solver(GreedySearch(time_limit=100))\n\n# Run the experiment desired number of times\nresults = experiment.run(epoch=10) \n\n# Set up Visualizer with experiment results\nvisualizer = Visualizer(results)\n\n# Show visualizations - automatically averages the results from different epochs\nvisualizer.plot_n_vs_time_all(plt)\n\n# Note: the visualizer has various plots available, they can be called in a similar fashion.\n ```\n \n It comes with a plug in architecture, therefore it is very customizable.\n\n ## Additional Examples\n\nA 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. \n\n```bash\n> jupyter notebook\n```\n\n\ud83d\udc49 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.\n\n## Contributions\n\nContributions and pull requests are encouraged! \ud83d\udc4f\n\nIf 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.\n\n## Contributors\n\n* [Venkata Rithin Chalumuri](https://github.com/rithinch)\n* [Genaro Bedenko](https://github.coventry.ac.uk/bedenkog)\n* [Ovidiu Mitroi](https://github.coventry.ac.uk/mitroio)\n* [Rishi Mehangra](https://github.coventry.ac.uk/mehangrr)", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/rithinch/pytspsolver", "keywords": "tsp,optimization-experiments,python", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pytspsolver", "package_url": "https://pypi.org/project/pytspsolver/", "platform": "", "project_url": "https://pypi.org/project/pytspsolver/", "project_urls": { "Homepage": "https://github.com/rithinch/pytspsolver" }, "release_url": "https://pypi.org/project/pytspsolver/0.0.1/", "requires_dist": null, "requires_python": ">=3.6.0", "summary": "Easy to use python package for rapid experimentation on the classic travelling salesman problem.", "version": "0.0.1" }, "last_serial": 5106479, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "932b48fb4a1c48cfbb1a4c8d71dc73aa", "sha256": "e99587f565bae988efe072a1dda67e06d9b899fef4b886d2c2a358674bfbeee0" }, "downloads": -1, "filename": "pytspsolver-0.0.1.tar.gz", "has_sig": false, "md5_digest": "932b48fb4a1c48cfbb1a4c8d71dc73aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12465, "upload_time": "2019-04-06T04:20:29", "url": "https://files.pythonhosted.org/packages/85/55/01137020738c43d9a6c703a75fa2dd79d2e471d88917beba65536738ccfe/pytspsolver-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "932b48fb4a1c48cfbb1a4c8d71dc73aa", "sha256": "e99587f565bae988efe072a1dda67e06d9b899fef4b886d2c2a358674bfbeee0" }, "downloads": -1, "filename": "pytspsolver-0.0.1.tar.gz", "has_sig": false, "md5_digest": "932b48fb4a1c48cfbb1a4c8d71dc73aa", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 12465, "upload_time": "2019-04-06T04:20:29", "url": "https://files.pythonhosted.org/packages/85/55/01137020738c43d9a6c703a75fa2dd79d2e471d88917beba65536738ccfe/pytspsolver-0.0.1.tar.gz" } ] }