Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jhackshaw/tspvis
πΊοΈ Visualize and control algorithms for the traveling salesman problem
https://github.com/jhackshaw/tspvis
algorithms data-visualization heuristics javascript react travelling-salesman-problem tsp visualization
Last synced: about 2 months ago
JSON representation
πΊοΈ Visualize and control algorithms for the traveling salesman problem
- Host: GitHub
- URL: https://github.com/jhackshaw/tspvis
- Owner: jhackshaw
- License: mit
- Created: 2019-09-13T19:35:46.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-30T22:47:39.000Z (about 2 months ago)
- Last Synced: 2024-10-30T23:26:41.529Z (about 2 months ago)
- Topics: algorithms, data-visualization, heuristics, javascript, react, travelling-salesman-problem, tsp, visualization
- Language: JavaScript
- Homepage: https://tspvis.com
- Size: 6.92 MB
- Stars: 438
- Watchers: 11
- Forks: 57
- Open Issues: 33
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Netlify Status](https://api.netlify.com/api/v1/badges/e21365cc-96a9-4649-9ad2-a35bb42d4a9f/deploy-status)](https://app.netlify.com/sites/tspvis/deploys)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Live Demo](https://img.shields.io/badge/demo-online-green.svg)](https://tspvis.com)
[![Contributors](https://img.shields.io/github/contributors/jhackshaw/tspvis)](https://github.com/jhackshaw/tspvis/graphs/contributors)
![GitHub](https://img.shields.io/github/license/jhackshaw/tspvis)
> [!WARNING]
> **Seeking maintainers**: If you're qualified and interested in taking over this project, I'd love to hear from you! The analytics suggest it is still helpful to a number of users, but I don't currently have the time to give it the attention it deserves. There's a lot of potential here and I'm looking to transition this to someone interested in making it better. Please shoot me a message if you're interested.
# Traveling Salesman Problem![](https://media.giphy.com/media/LPkQ56C9z0iSv9Hs9D/giphy.gif)
The traveling salesman problem (TSP) asks the question, "Given a list of cities and the distances between each pair of cities, what is the shortest possible route that visits each city and returns to the origin city?".
### This project
- Live at [tspvis.com](https://tspvis.com)
- The goal of this site is to be an **educational** resource to help visualize, learn, and develop different algorithms for the traveling salesman problem in a way that's easily accessible
- As you apply different algorithms, the current best path is saved and used as input to whatever you run next. The order in which you apply different algorithms to the problem is sometimes referred to the meta-heuristic strategy.
- For example, apply nearest neighbor, then 2-opt inversion, then branch and bound### Heuristic algorithms
Heuristic algorithms attempt to find a good approximation of the optimal path within a more _reasonable_ amount of time.
**Construction** - Build a path
- Nearest Neighbor
- Arbitrary Insertion
- Furthest Insertion
- Nearest Insertion
- Convex Hull Insertion\*
- Simulated Annealing\***Improvement** - Attempt to take an existing constructed path and improve on it
- 2-Opt Reciprocal Exchange
- 2-Opt Inversion\*### Exhaustive algorithms
Exhaustive algorithms will always find the best possible solution by evaluating every possible path. These algorithms are typically significantly more expensive then the heuristic algorithms discussed above. The exhaustive algorithms implemented so far include:
- Random Paths
- Depth First Search (Brute Force)
- Branch and Bound (Cost)
- Branch and Bound (Cost, Intersections)\*## Dependencies
These are the main tools used to build this site:
- [gatsbyjs](https://www.gatsbyjs.org)
- [reactjs](https://reactjs.org)
- [web workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API)
- [material-ui](https://material-ui.com/)
- [deck.gl](https://deck.gl/#/)
- [mapbox](https://www.mapbox.com/)## Contributing
Pull requests are always welcome! Also, feel free to raise any ideas, suggestions, or bugs as an issue.