项目作者: theyusko

项目描述 :
高级语言: Python
项目地址: git://github.com/theyusko/tsp-heuristics.git
创建时间: 2018-04-27T15:26:38Z
项目社区:https://github.com/theyusko/tsp-heuristics

开源协议:

下载


tsp-heuristics

A team project to implement and compare different TSP heuristics.

Heuristic algorithms:

  1. Insertion Heuristics
    alt text

  2. Greedy
    alt text
    alt text

  3. Nearest Neighbor (Chosen)
    alt text

  4. Branch and Bround
    alt text

  5. 2-Opt
    alt text

  6. Greedy 2-Opt
    alt text
    alt text

  7. Genetic
    alt text

  8. Simulated Annealing
    alt text

  9. Neural Network
    alt text

  10. Minimum Spanning Tree (Chosen)
    https://www.geeksforgeeks.org/travelling-salesman-problem-set-2-approximate-using-mst/

  11. Christofides
    alt text

Resources:

Traveling Salesman Problem, four algorithms

https://www.youtube.com/watch?v=q6fPk0--eHY

Heuristic Implementations

Blogs

http://toddwschneider.com/posts/traveling-salesman-with-simulated-annealing-r-and-shiny/

Greedy Algo

https://stackoverflow.com/questions/30552656/python-traveling-salesman-greedy-algorithm

Test Data

  • Euclidean graph is generated with the following definition of triangle inequality:
    Triangle-Inequality: The least distant path to reach a vertex j from i is always to reach j directly from i, rather than through some other vertex k (or vertices), i.e., dis(i, j) is always less than or equal to dis(i, k) + dist(k, j). The Triangle-Inequality holds in many practical situations.
    When the cost function satisfies the triangle inequality, we can design an approximate algorithm for TSP that returns a tour whose cost is never more than twice the cost of an optimal tour. The idea is to use Minimum Spanning Tree (MST). Following is the MST based algorithm.