{"id":19485131,"url":"https://github.com/piero24/tsp_optimization","last_synced_at":"2025-07-20T19:33:38.972Z","repository":{"id":233628162,"uuid":"764231297","full_name":"Piero24/TSP_Optimization","owner":"Piero24","description":"A list of Heuristics, Metaheuristics and Matheuristic algorithms for solve the TSP","archived":false,"fork":false,"pushed_at":"2024-07-25T19:56:42.000Z","size":37373,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T12:37:29.703Z","etag":null,"topics":["c","cmake","cplex","cplex-optimization-solver","heuristics","ibm","matheuristic","metaheuristics","tsp","tsp-problem"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Piero24.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-27T17:59:33.000Z","updated_at":"2025-03-12T14:36:16.000Z","dependencies_parsed_at":"2024-05-28T08:34:07.506Z","dependency_job_id":"c38faffc-219c-4dd2-8362-127f254e24e5","html_url":"https://github.com/Piero24/TSP_Optimization","commit_stats":null,"previous_names":["piero24/tsp_optimization"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Piero24/TSP_Optimization","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piero24%2FTSP_Optimization","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piero24%2FTSP_Optimization/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piero24%2FTSP_Optimization/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piero24%2FTSP_Optimization/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Piero24","download_url":"https://codeload.github.com/Piero24/TSP_Optimization/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Piero24%2FTSP_Optimization/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266187278,"owners_count":23889952,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["c","cmake","cplex","cplex-optimization-solver","heuristics","ibm","matheuristic","metaheuristics","tsp","tsp-problem"],"created_at":"2024-11-10T20:25:57.802Z","updated_at":"2025-07-20T19:33:38.953Z","avatar_url":"https://github.com/Piero24.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv id=\"top\"\u003e\u003c/div\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/Piero24/TSP_Optimization/blob/main/.github/path.png?raw=true\" width=\"150\" height=\"150\"\u003e\n\u003c/p\u003e\n\u003ch1 align=\"center\"\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization\"\u003eTraveler Salesman Problem Optimization\u003c/a\u003e\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n    \u003c!-- BADGE --\u003e\n    \u003c!--\n        *** You can make other badges here\n        *** [shields.io](https://shields.io/)\n        *** or here\n        *** [CircleCI](https://circleci.com/)\n    --\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/commits/master\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/piero24/TSP_Optimization\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Maintained-yes-green.svg\"\u003e\n    \u003c/a\u003e\n    \u003c!--\u003ca href=\"https://github.com/Piero24/TSP_Optimization\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Maintained%3F-no-red.svg\"\u003e\n    \u003c/a\u003e --\u003e\n    \u003ca href=\"https://github.com/Piero24/twitch-stream-viewer/issues\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/piero24/TSP_Optimization\"\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/master/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/piero24/TSP_Optimization\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n    A list of Heuristics, Metaheuristics and Matheuristic algorithms for solve the TSP.\n    \u003cbr/\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/Thesis.pdf\"\u003e\u003cstrong\u003eRead the paper »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/tree/main/Results\"\u003eView Results\u003c/a\u003e\n    • \n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/issues\"\u003eReport Bug\u003c/a\u003e\n    •\n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/issues\"\u003eRequest Feature\u003c/a\u003e\n\u003c/p\u003e\n\n\n---\n\n\n\u003cbr/\u003e\u003cbr/\u003e\n\u003ch2 id=\"introduction\"\u003e📔  Introduction\u003c/h2\u003e\n\u003cp\u003e This project encompasses a comprehensive suite of algorithms designed to tackle the classic TSP, providing solutions via various heuristics, matheuristics, and exact optimization models. Leveraging the power of IBM’s CPLEX solver, our exact models deliver high-quality solutions with mathematical rigor and efficiency. \u003c/p\u003e\n\u003ch4\u003eOverview\u003c/h4\u003e\n\u003cp\u003eThe TSP Solver offers a versatile and powerful framework to approach the Traveling Salesman Problem, which seeks the shortest possible route that visits each city once and returns to the origin city. Our solver is equipped with:\u003c/p\u003e\n    \u003cul\u003e\n        \u003cli\u003e\u003cstrong\u003eHeuristics:\u003c/strong\u003e Fast, efficient algorithms that provide good solutions within a reasonable time frame. These include methods such as Nearest Neighbor and 2-Opt.\u003c/li\u003e\n        \u003cli\u003e\u003cstrong\u003eMatheuristics:\u003c/strong\u003e Advanced hybrid techniques that combine heuristics with mathematical programming to enhance solution quality.\u003c/li\u003e\n        \u003cli\u003e\u003cstrong\u003eExact Models:\u003c/strong\u003e Robust formulations that guarantee optimal solutions using the CPLEX solver from IBM, ensuring precision and thoroughness in solving TSP instances.\u003c/li\u003e\n    \u003c/ul\u003e\n\u003cbr/\u003e\n\u003ctable  align=\"center\"\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003e\u003cstrong\u003eNeirest Neighbor\u003c/strong\u003e\u003c/th\u003e\n    \u003cth\u003e\u003cstrong\u003eNeirest Neighbor + 2-Opt\u003c/strong\u003e\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/Archive/Image/Nearest%20Neighbor/NN.png\" alt=\"Web Page\"\u003e\u003c/th\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/Archive/Image/Nearest%20Neighbor/NN%2B2opt.png\" alt=\"Example Image\"\u003e\u003c/th\u003e \n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003e\u003cstrong\u003eBenders' Loop\u003c/strong\u003e\u003c/th\u003e\n    \u003cth\u003e\u003cstrong\u003eLocal Branching\u003c/strong\u003e\u003c/th\u003e \n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/Archive/Image/Benders'%20Loop/pr1000-96224627-2024-07-21_24-07-22.png\" alt=\"Web Page\"\u003e\u003c/th\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/Archive/Image/Local%20Branching/LocalBr.png\" alt=\"Example Image\"\u003e\u003c/th\u003e \n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003cbr/\u003e\n\nThe program also includes a version of `Performance profiler` developed in python by `Professor Salvagnin` to analyze the performance of the implemented algorithms. This tool allows you to compare the performance of different algorithms and evaluate the quality of the solutions obtained. These are some examples of the results:\n\n\u003cbr/\u003e\n\u003ctable  align=\"center\"\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/.github/Heuristics.png\" alt=\"Web Page\"\u003e\u003c/th\u003e\n    \u003cth\u003e\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/.github/Exacts.png\" alt=\"Example Image\"\u003e\u003c/th\u003e \n  \u003c/tr\u003e\n\u003c/table\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\u003e [!IMPORTANT]\n\u003e 1. To run this program you need to have a valid CPLEX license. You can download the CPLEX solver from the IBM website.\n\n\n\u003ch2 id=\"made-in\"\u003e\u003cbr/\u003e🛠  Built in\u003c/h2\u003e\n\u003cp\u003e\n    The entire program is developed using the following major frameworks and libraries. Leave any add-ons / plug-ins for the thanks section.\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://www.cprogramming.com/\"\u003eC Programming Language\u003c/a\u003e • \u003ca href=\"https://cmake.org/\"\u003eCMake\u003c/a\u003e • \u003ca href=\"https://www.ibm.com/products/ilog-cplex-optimization-studio\"\u003eIBM CPLEX Optimization Studio\u003c/a\u003e • \u003ca href=\"http://www.gnuplot.info\"\u003eGNUPlot\u003c/a\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\u003ch2 id=\"documentation\"\u003e\u003cbr/\u003e\u003cbr/\u003e📚  Documentation\u003c/h2\u003e\n\u003cul\u003e\n  \u003cli\u003e\u003cstrong\u003eRandom\u003c/strong\u003e: A simple algorithm that generates random solutions to the TSP, providing a baseline for comparison with more sophisticated methods.\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eHeuristics\u003c/strong\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eNearest Neighbor (NN)\u003c/strong\u003e: This algorithm starts from an initial node and selects the nearest node to move to next. The process is repeated until all nodes have been visited. It is a simple and effective method to quickly obtain an acceptable solution for problems like the Traveling Salesman Problem (TSP).\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003e2-Opt\u003c/strong\u003e: The 2-Opt algorithm is used to iteratively improve a solution by exchanging pairs of edges. The idea is to reduce the overall path length by finding and removing \"crosses\" between the edges, replacing them with non-intersecting edges.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eMetaheuristics\u003c/strong\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eVariable Neighborhood Search (VNS)\u003c/strong\u003e: This metaheuristic explores different neighborhood structures to avoid getting stuck in local minima. By changing the neighborhood structure, the algorithm can explore a larger part of the solution space, increasing the chances of finding the optimal solution.\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eTabu Search (TS)\u003c/strong\u003e: Tabu Search employs a tabu list to keep track of already visited solutions, preventing the algorithm from revisiting them. This mechanism helps avoid cycles and overcome local minima, promoting a more thorough search of the solution space.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eExact Methods\u003c/strong\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eBenders' Loop\u003c/strong\u003e: This algorithm solves complex problems by dividing them into a main problem and various subproblems. The iterative process alternates between solving the main problem and the subproblems, progressively refining the overall solution.\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eGlued Benders' Loop\u003c/strong\u003e: Similar to Benders' Loop, this method addresses the main problem and subproblems iteratively but with the integration of techniques that improve convergence and process efficiency.\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eMipstart\u003c/strong\u003e: Custom function applied to the relaxed solution of the problem\n      \u003cli\u003e\u003cstrong\u003eCallback Base\u003c/strong\u003e: It's a callback function that can be used when CPLEX finds an integer solution so we can check the number of components and add the SECs if needed.\n      \u003cli\u003e\u003cstrong\u003eCallback Relax\u003c/strong\u003e: It's a callback function that can be used when CPLEX finds a relaxed (not integer) solution so we can check the number of components and add the SECs if there is more than one, or a min cut otherwise.\n      \u003cli\u003e\u003cstrong\u003ePosting Base\u003c/strong\u003e: It's a method implemented in the Callback Base that performs the gluing operation on the candidate solution and posts it on the CPLEX environment.\n      \u003cli\u003e\u003cstrong\u003ePosting Relax\u003c/strong\u003e: It's a method implemented in the Callback Relax that use an heuristic method on the relaxed solution to get a feasible solution and posts it on the CPLEX environment.\n    \u003c/ul\u003e\n  \u003c/li\u003e\n  \u003cli\u003e\u003cstrong\u003eMatheuristics\u003c/strong\u003e\n    \u003cul\u003e\n      \u003cli\u003e\u003cstrong\u003eLocal Branching\u003c/strong\u003e: This approach introduces local constraints to rapidly explore portions of the solution space, improving the effectiveness in searching for optimal solutions.\u003c/li\u003e\n      \u003cli\u003e\u003cstrong\u003eHard Fixing (Diving)\u003c/strong\u003e: This technique temporarily fixes some variables to reduce the problem size, allowing a deeper search in the remaining variables. It is particularly useful for tackling large-scale problems, improving the speed of convergence towards an optimal solution.\u003c/li\u003e\n    \u003c/ul\u003e\n  \u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\n    For a more complete explanation of how the algorithms work, please refer to the \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/Thesis.pdf\"\u003ePaper »\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\n    There are different parameters and different ways to start the program. More details are available at the following link: \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/.github/parameters.md\"\u003eDocumentation »\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n\u003ch2 id=\"prerequisites\"\u003e\u003cbr/\u003e🧰  Prerequisites\u003c/h2\u003e\n\u003cp\u003e\n    To use the actual algorithms, a CPLEX license is required. If you have a license, you can download the software from IBM's official website. An installation guide for MacOS is available at the following link: \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/.github/Cplex_Installation_Guide_for_Mac_OS__ARM__and_VSCode.pdf\"\u003eCPLEX installation on MacOS »\u003c/a\u003e. Currently, there is no installation guide available for Windows or Linux.\n\u003c/p\u003e\n\nNOTE: You also need to install `cmake` and `gnuplot` to compile the code.\n\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n\u003ch2 id=\"how-to-start\"\u003e\u003cbr/\u003e⚙️  How to Start\u003c/h2\u003e\n\u003cp\u003e\n   As mentioned earlier, there are different options:\n    \u003cul\u003e\n    \u003cli\u003e\u003cstrong\u003eSingle Command\u003c/strong\u003e: Launch a single execution with command line parameters\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eMenu\u003c/strong\u003e: Launch a single execution with parameters chosen from a menu\u003c/li\u003e\n    \u003cli\u003e\u003cstrong\u003eLauncher\u003c/strong\u003e: Launch one or more executions with parameters present in a text file\u003c/li\u003e\n    \u003c/ul\u003e\n\u003c/p\u003e\n\u003ch4\u003e\u003cstrong\u003eSingle Command\u003c/strong\u003e\u003c/h4\u003e\n\u003cp\u003e\n    Once you have chosen the parameters and positioned yourself on the folder containing the code, you can launch the program with the following commands:\n\u003c/p\u003e\n\nMacOS\n```sh\n    mkdir build \u0026\u0026 cmake -S . -DCPLEXDIR=\"/Applications/CPLEX_Studio2211/cplex\" -B build\n    make -C build \u0026\u0026 ./TSP_Optimization -g 100 -model 2 -opt 1\n```\n\nWindows\n```sh\n    cmake . -B build --fresh \u0026\u0026 cmake --build build --clean-first\n    .\\TSP_Optimization -f Resource/a280.tsp -model 2 -v 60\n```\n\nLinux\n```sh\n    mkdir build \u0026\u0026 cmake -S . -DCPLEXDIR=\"C:/Program Files/IBM/ILOG/CPLEX_Studio_Community2211/cplex/\" -B build\n    make -C build \u0026\u0026 ./TSP_Optimization -g 300 -model 3 -opt 12 -s 1 -v 60 -tl 120\n```\n\n\u003ch4\u003e\u003cstrong\u003eMenu\u003c/strong\u003e\u003c/h4\u003e\n\nIf you want to use the menu after compiling the code as previously with `cmake`, you can launch the program with the following command:\n\nMacOS/Linux\n```sh\n    make -C build \u0026\u0026 ./TSP_Optimization\n```\n\nWindows\n```sh\n    .\\TSP_Optimization -g 300 -model 2 -v 10 -tl 60\n```\n\n\u003ch4\u003e\u003cstrong\u003eLauncher\u003c/strong\u003e\u003c/h4\u003e\n\nIf you want to use the Launcher after compiling the code as previously with `cmake`, you can launch the program with the following command:\n\nMacOS/Linux\n```sh\n    make -C build \u0026\u0026 clear \u0026\u0026 ./TSP_Optimization -launcher Resource/Launcher/launcher.txt\n```\n\nWindows\n```sh\n    .\\TSP_Optimization -launcher Resource/Launcher/launcher.txt\n```\n\nAn example of the launcher file can be found at the following link: \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/Resource/Launcher/launcher%20example.txt\"\u003eLaucher Example »\u003c/a\u003e\n\nWe remind you that a list of available parameters is present at the following link: \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/.github/parameters.md\"\u003eAvailable Parameters »\u003c/a\u003e\n\nOnce launched, the program will execute the chosen algorithm, displaying the results on the screen with `GNUPlot` (if selected as a parameter). Additionally, the files generated through the `-g` command with the coordinates of the points will be saved. An `.svg` and `.png` image of the optimal path found will also be saved as output.\n\n\u003cstrong\u003eNote:\u003c/strong\u003e If the launcher is used, a `.csv` file with the obtained results will be generated in the output, so that you can use the `performance profiler`. To use it automatically, it is also necessary to install `python3` and `matplotlib` by following these steps:\n\n```sh\n    python3 -m venv env\n    pip3 install matplotlib\n    . env/bin/activate\n```\n\nYou can also launch it manually on `.csv` file with the following command:\n\n```sh\n    python3 src/Comparator/perfprof.py -D , -T 3600 -S 2 -M 20 CSV_PATH OUTPUT_PATH/OUTPUT_FILE_NAME.pdf -P 'Performance Profile'\n```\n\nDi seguto è possibile vedere un esempio dell'output ottenuto a termminale. Dove la prima parte contine i parametri utilizzati, la seconda parte i risultati ottenuti come il costo ed i tempi.\n**NOTE:** Per visionare gli output dei risultati e necessario settare il `verbose` ad un valore maggiore di 0 come riportato nell'immagine.\n\n```sh\n    make -C build \u0026\u0026 clear \u0026\u0026 ./TSP_Optimization -g 100 -model 2 -opt 1 -s 1 -tl 120 -v 1\n```\n\n\n\u003cimg src=\"https://raw.githubusercontent.com/Piero24/TSP_Optimization/main/.github/output_tm.png\" alt=\"Web Page\"\u003e\n\n\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n---\n\n\u003ch3 id=\"responsible-disclosure\"\u003e\u003cbr/\u003e📮  Responsible Disclosure\u003c/h3\u003e\n\u003cp\u003e\n    We assume no responsibility for an improper use of this code and everything related to it. We do not assume any responsibility for damage caused to people and / or objects in the use of the code.\n\u003c/p\u003e\n\u003cstrong\u003e\n    By using this code even in a small part, the developers are declined from any responsibility.\n\u003c/strong\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cp\u003e\n    It is possible to have more information by viewing the following links: \n    \u003ca href=\"#code-of-conduct\"\u003e\u003cstrong\u003eCode of conduct\u003c/strong\u003e\u003c/a\u003e\n     • \n    \u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/LICENSE\"\u003e\u003cstrong\u003eLicense\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n\u003ch3 id=\"report-a-bug\"\u003e\u003cbr/\u003e🐛  Bug and Feature\u003c/h3\u003e\n\u003cp\u003e\n    To \u003cstrong\u003ereport a bug\u003c/strong\u003e or to request the implementation of \u003cstrong\u003enew features\u003c/strong\u003e, it is strongly recommended to use the \u003ca href=\"https://github.com/Piero24/TSP_Optimization/issues\"\u003e\u003cstrong\u003eISSUES tool from Github »\u003c/strong\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp\u003e\n    Here you may already find the answer to the problem you have encountered, in case it has already happened to other people. Otherwise you can report the bugs found.\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cstrong\u003e\n    ATTENTION: To speed up the resolution of problems, it is recommended to answer all the questions present in the request phase in an exhaustive manner.\n\u003c/strong\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003cp\u003e\n    (Even in the phase of requests for the implementation of new functions, we ask you to better specify the reasons for the request and what final result you want to obtain).\n\u003c/p\u003e\n\u003cbr/\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n  \n --- \n\n\u003ch2 id=\"license\"\u003e\u003cbr/\u003e🔍  License\u003c/h2\u003e\n\u003cstrong\u003eAPACHE LICENSE\u003c/strong\u003e\n\u003cbr/\u003e\n\u003ci\u003eVersion 2.0, Jan 2004\u003c/i\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\u003ci\u003e\"License\" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.\n\u003cbr/\u003e\n\u003cbr/\u003e\n\"Licensor\" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License... \u003c/i\u003e\n\u003cbr/\u003e\n\u003ca href=\"https://github.com/Piero24/TSP_Optimization/blob/main/LICENSE\"\u003e\u003cstrong\u003eLicense Documentation »\u003c/strong\u003e\u003c/a\u003e\n\u003cbr/\u003e\n\u003cbr/\u003e\n\n\n\u003ch3 id=\"authors-and-copyright\"\u003e\u003cbr/\u003e✏️  Authors and Copyright\u003c/h3\u003e\n\u003cbr/\u003e\n\u003cp\u003e\n    \u003ctable  align=\"center\"\u003e\n    \u003ctr  align=\"center\"\u003e\n        \u003cth\u003e\u003cstrong\u003e👨🏽‍💻\u003c/strong\u003e\u003c/th\u003e\n        \u003cth\u003e\u003cstrong\u003eAndrea Pietrobon\u003c/strong\u003e\u003c/th\u003e\n        \u003cth\u003e\u003cstrong\u003eAndrea Felline\u003c/strong\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003ctr  align=\"center\"\u003e\n        \u003cth\u003e🌐\u003c/th\u003e\n        \u003cth\u003e\u003ca href=\"https://www.pietrobonandrea.com\"\u003epietrobonandrea.com\u003c/a\u003e\u003c/th\u003e\n        \u003cth\u003e\u003ca href=\"https://andreafelline.altervista.org/\"\u003eandreafelline.altervista.org\u003c/a\u003e\u003c/th\u003e \n    \u003c/tr\u003e\n    \u003ctr  align=\"center\"\u003e\n        \u003cth\u003e\u003cimg src=\"https://assets.stickpng.com/thumbs/580b57fcd9996e24bc43c53e.png\" width=\"30\" height=\"30\" align=\"center\"\u003e\u003c/th\u003e\n        \u003cth\u003e\u003ca href=\"https://twitter.com/pietrobonandrea\"\u003e@PietrobonAndrea\u003c/a\u003e\u003c/th\u003e \n        \u003cth\u003e\u003ca href=\"#\"\u003e\u003c/a\u003e\u003c/th\u003e \n    \u003c/tr\u003e\n    \u003ctr align=\"center\"\u003e\n        \u003cth style=\"text-align:center\" align=\"center\" colspan=\"3\"\u003e🗄 \u003ca href=\"https://github.com/Piero24/TSP_Optimization\"\u003eTraveler Salesman Problem Optimization\u003c/a\u003e\u003c/th\u003e\n    \u003c/tr\u003e\n    \u003c/table\u003e\n\n\u003c/p\u003e\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n\u003ch3 id=\"third-party-licenses\"\u003e\u003cbr/\u003e📌  Third Party Licenses\u003c/h3\u003e\n\u003cbr/\u003e\n\u003ctable  align=\"center\"\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003cth\u003eSoftware\u003c/th\u003e\n    \u003cth\u003eLicense owner\u003c/th\u003e \n    \u003cth\u003eLicense type\u003c/th\u003e \n    \u003cth\u003eLink\u003c/th\u003e\n    \u003cth\u003eNote\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003ctd\u003eIBM CPLEX Optimization Studio\u003c/td\u003e\n    \u003ctd\u003eIBM\u003c/td\u003e \n    \u003ctd\u003e - \u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://www.ibm.com/products/ilog-cplex-optimization-studio\"\u003eLink\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n  \u003ctd\u003ePerfprof\u003c/td\u003e\n    \u003ctd\u003eProessor D. Salvagnin\u003c/td\u003e \n    \u003ctd\u003eNot Specified\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"https://www.dei.unipd.it/~fisch/ricop/OR2/PerfProf/read_me.txt\" \u003elink\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr  align=\"center\"\u003e\n    \u003ctd\u003eGNUPlot\u003c/td\u003e\n    \u003ctd\u003eThomas Williams, Colin Kelley\u003c/td\u003e \n    \u003ctd\u003e\u003ca href=\"https://sourceforge.net/p/gnuplot/gnuplot-main/ci/master/tree/Copyright\" \u003eCopyright\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003ca href=\"http://www.gnuplot.info\" \u003elink\u003c/a\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003cp align=\"right\"\u003e\u003ca href=\"#top\"\u003e⇧\u003c/a\u003e\u003c/p\u003e\n\n\n---\n\u003e *\u003cp align=\"center\"\u003e Copyrright (C) by Pietrobon Andrea \u003cbr/\u003e Released date: 24-07-2024*","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiero24%2Ftsp_optimization","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiero24%2Ftsp_optimization","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiero24%2Ftsp_optimization/lists"}