Git Product home page Git Product logo

fernandoschett / tsp_experiments Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 191.22 MB

Implementation of various heuristics designed to tackle the TSP.

Home Page: https://www.overleaf.com/read/yzgxqkwwzkwt#623679

License: Apache License 2.0

Makefile 2.34% C++ 65.85% Shell 22.33% Perl 9.47%
cpp heuristic-search-algorithms heuristics tsp-problem tsp-solver makefile grasp local-search nearest-neighbor-search path-relinking

tsp_experiments's Introduction

πŸ§‘β€πŸ’Ό TSP Experiments πŸ§‘β€πŸ’Ό

Developed by πŸ’»:

Special thanks to πŸ₯°:

About πŸ€”:

This repository contains the implementation of various algorithms designed to tackle the Traveling Salesman Problem (TSP). The project is part of the evaluation for the Topics in Computational Systems III course at the Federal University of Bahia (UFBA), supervised by Professor Celso da Cruz Carneiro Ribeiro, conducted in the first semester of 2023. The repository includes the implementation of adaptive greedy heuristics, multi-start procedures, local search and path relinking algorithms.

The source code and datasets used for testing are provided to facilitate further research and replication of results (avaliable here). You can also read ./results_tsp_project.pdf to get experiment analysis and graphs, or check this Overleaf link for the online version. For a quicker approach, check out our YouTube presentation available at this link.

Resourses πŸ§‘β€πŸ”¬:

  • TSP instances and solutions reader;
  • Constructive Heuristics: Nearest Neighbor and Double-Sided Nearest Neighbor (Greedy and Semi-Greedy, alpha and k_best);
  • Local Search (Two-opt Best Improvement, First Improvement, Candidade lists and Circular Search);
  • Path Relinking with restart;
  • GRASP Heuristic (GRASP, GRASP + Path Relinking and GRASP + Path Relinking + Restart);
  • Executions Test Scripts;
  • Experiments Analysis and graphs at ./results_tsp_project.pdf;
  • Logs generators.

Repo Overview πŸ“:

  • ./benchmarck/ contains all instances (data) and serves as the log and solution folder.
  • ./build/ contains the build files;
  • ./results/ contains the final results at each ./src/tsp.cpp execution;
  • ./src/ contains all implemented code: ./src/lib/ for functions, ./src/include/ for headers, and ./src/tsp.cpp as the main script;
  • ./scripts/ contains the scripts used to run all experiments and gather data;
  • ./tttplots/ contains the scripts used for creating time-to-target graphs;
  • ./results_tsp_project.pdf is the final document with all experiment results and TSP analysis.

How to run it πŸƒ:

First, clone this repository. After that, yout can use some of scripts avaliable at ./scripts/ or simply type:

make all
./TSP [options]

Tools Used πŸ› οΈ:

How to contribute πŸ«‚:

Feel free to create a new branch, fork the project, create a new Issue or make a pull request contact one of us to develop at tsp_project.

Licence πŸ“œ:

Apache V2

References πŸ“™:

[1] [Karp 1972] Karp, R. M. (1972). Reducibility among Combinatorial Problems, page 85–103. Springer US.

[2] [Reinelt 1991] Reinelt, G. (1991). TSPLIB–a traveling salesman problem library. ORSA Journal on Computing, 3(4):376–384.

[3] [Resende and Ribeiro 2016] Resende, M. G. and Ribeiro, C. C. (2016). Optimization by GRASP: Greedy Randomized Adaptive Search Procedures. Springer New York.

tsp_experiments's People

Contributors

fernandoschett avatar mralves17 avatar

Stargazers

 avatar

Watchers

 avatar

tsp_experiments's Issues

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.