Skip to content

vasilev17/tsp-branch-and-bound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚚🗺️ TSP Branch & Bound — Optimal Route Solver

A High-Performance C++ Toolkit that finds optimal tours for classic Travelling Salesman Problem (TSP) instances.
The project contains parallelized Branch-And-Bound (B&B) implementations, tested on Grid5000's multi-core and multi-node architectures, as well as parallelized implementations of Concorde TSP Solver.


🎯 Goals

This toolkit aims to find exact solutions to tsplib TSPs for an undirected graph with symmetric edge costs in three ways:

  • Parallelizing Concorde on a multi-node architecture
  • Implementing an OpenMP suitable Branch and Bound approach for multi-core architectures
  • Swapping the default single-threaded LP solver that Concorde uses (QSOPT) with the multi-threaded CPLEX
  • Benchmark and record solving times of different implementations in various scenarios

🗂️ Custom Implementations

  • BaseRec.cpp – Base recursive implementation of Branch and Bound algorithm
  • ImprovedRec.cpp – Implemented Bitmasking and a more suitable lower bound
  • BaseOpenMP.cpp – Achieved multiple core parallelization via OpenMP
  • run_parallel.shParralelizes Concorde on multiple available nodes with different seeds and then lists each node's performance time
  • run_parallel_best.sh – Also fires up multiple Concorde runs, but frees resources immediately after one node finishes (the fastest one)

🏗️ Tech Stack

Layer Technology / Language
Core Algorithm C++
External TSP Solver Concorde
LP Solver QSOPT, CPLEX
Parallel Execution Bash, SSH, OpenMP
Problem Dataset TSPLIB (*.tsp)
Computational Testbed Grid5000

🎬 Showcase

Branch & Bound Algo Visualization

B.B.Map.TSP.Showcase.mp4

Concorde Visualization

Concorde Showcase

For detailed test run results, visualizations, and in-depth information about the problem and implemented solutions, please visit:

About

A High-Performance C++ Toolkit for solving classic TSP instances with B&B.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published