Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kaydvc/traveling-salesman-problem
https://github.com/kaydvc/traveling-salesman-problem
Last synced: 19 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/kaydvc/traveling-salesman-problem
- Owner: KayDVC
- License: mit
- Created: 2023-06-19T13:52:20.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2023-08-14T00:36:21.000Z (over 1 year ago)
- Last Synced: 2023-08-14T01:31:29.910Z (over 1 year ago)
- Language: Jupyter Notebook
- Size: 60.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Table of Contents
1. [Objective](#objective)
2. [Requirements](#requirements)
3. [Use](#use)## Objective
The objective of this project is to develop a working solution to the [Traveling Salesman Problem](https://en.wikipedia.org/wiki/Travelling_salesman_problem) using a genetic algorithm.
In addition to implementing a solution, I also wanted to develop a deep understanding of the genetic algorithm – its methods, use-cases, advantages, and disadvantages.
## Requirements
The project has the following baseline requirements derived from the problem description:
1. The solution must generate a list of cities.
2. The solution must generate a list of distances between each city and all others.
3. The solution must find the shortest path between all cities.
* All cities, except the origin city, must be visited exactly once.
* The solution must start and end at the origin city.
In addition to the baseline requirements, the following requirements assist in creating a good testing environment for the genetic algorithm :
* At least 25 cities must be generated.
* All cities must reside within a 200\*200 unit plane. The units can be interpreted as kilometers.
* All cities must be generated at random coordinates (overlap possible, but highly improbable).Lastly, each design choice is explained within the context of the problem.
"If you can't explain it to a six-year-old, then you don't understand it yourself" (Einstein).
## Use
The project requires [Jupyter Notebook](https://jupyter.org/) to *modify*.Python Version: `<= 3.11`
See requirements.txt for full requirement list.
---
If used as "inspiration," please link back to this repo.
Thanks,
\- Kay