saper0 / tsp-heuristics

Heuristic Algorithms for solving the Traveling Salesman Problem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tsp-heuristics

Heuristic Algorithms for solving the Traveling Salesman Problem, developed for the 2018W - Computational Optimization course.

Algorithms

Local Search: ls_2opt.py

Multistart local search algorithm using a 2-opt neighbourhood structure.

Implements two initialization methods:

  • Random Inititalization
  • Nearest Neighbour Heuristic

Implements two neighbour selection strategies:

  • Best Improvement
  • First Improvement

Genetic Algorithm: ga.py

Genetic local search algorithm mostly based on the papers [1, 2]. It reuses the local search implementation from ls_2opt.py for the initial population generation and as the mutation operator.

Implements two different crossover strategies:

  • Order Crossover OX as used in [2]
  • Maximum Preservation Crossover [3]

[1] Ulder et al. (1991). Genetic local search algorithms for the traveling salesman problem.

[2] Braun H. (1991). On solving travelling salesman problems by genetic algorithms.

[3] Muehlenbein, H. (1991). Evolution in Time and Space - The Parallel Genetic Algorithm

TSP-Instances

Implementations have been tested on and nativly support the berlin52, gr120, pcb442 and fl1400 instances from TSPLIB

About

Heuristic Algorithms for solving the Traveling Salesman Problem


Languages

Language:Python 100.0%