Git Product home page Git Product logo

traveling-salesman-problem-algorithms's Introduction

Traveling Salesman Problem: Comparative Study

Overview

This repository contains a comprehensive study on solving the Traveling Salesman Problem (TSP) using different algorithms. The primary focus is on the Branch and Bound algorithm and two approximate methods: the Christofides algorithm and the Twice Around the Tree (TAT) algorithm. The study evaluates the efficiency, accuracy, and practical applicability of these algorithms.

Contents

  • data/: Contains the TSP datasets used in the algorithms' performance comparison.
  • results/: Includes the output results from the algorithm executions.
  • src/: Source code for the Branch and Bound, Christofides, and Twice Around the Tree algorithms.
  • analysis.ipynb: A Jupyter notebook containing the testing code and visualizations of the study's data.
  • paper.pdf: A detailed report of the study, outlining methodologies, results, and conclusions.

Key Findings

  • Branch and Bound: Did not reach optimal solutions within the 30-minute time limit.
  • Christofides Algorithm: More accurate but with a longer execution time.
  • Twice Around the Tree: Faster execution but less accurate.

The choice of the algorithm depends on the priority between precision and speed, with Branch and Bound being suitable for cases where an exact solution is crucial.

Usage

Each script in the repository corresponds to an implementation of the respective algorithm. To run an algorithm, navigate to the script's directory and execute it with an appropriate TSP dataset.

Example:

python BranchAndBound.py <dataset_path>

Requirements

  • Python 3.x
  • NetworkX library
  • Numba library
  • Matplotlib library
  • Pandas library

Install the required libraries using:

pip install networkx numba matplotlib pandas

Acknowledgments

Special thanks to Professor Renato Vimieiro for his guidance and teachings during the semester.

traveling-salesman-problem-algorithms's People

Contributors

fredericobaker avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.