From 7147cabff1d35c79dea0dafb5f7ab6d1cc96efed Mon Sep 17 00:00:00 2001 From: "Kamal Bentahar (ab3735)" Date: Wed, 23 Mar 2022 10:19:43 +0000 Subject: [PATCH] Update README.md --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c3b9e01..cd79594 100644 --- a/README.md +++ b/README.md @@ -1 +1,49 @@ -# TSP-Guidance \ No newline at end of file +# Guide for the 380CT Assignment on TSP + +The actual part you need to submit is the **Metaheuristics section**. +The rest is meant to introduce you to the basics. + +--- + +- Ensure you have **Jupyter**. + - Either install [Jupyter](https://jupyter.org/install) alone or [Anaconda](https://www.anaconda.com/distribution). +- Familiarise yourself with Jupyter functionaility. Consider taking **LinkedIn Learning courses** (free through the university) or any suitable alternatives. Here is a recommended set (e.g. each member of the group takes one): + + - [Introducing Jupyter](https://www.linkedin.com/learning/introducing-jupyter/present-data-like-a-pro-with-jupyter) + - [Get Ready for Your Coding Interview](https://www.linkedin.com/learning/get-ready-for-your-coding-interview/welcome) + - [Python for Data Visualization](https://www.linkedin.com/learning/python-for-data-visualization/setting-marker-type-and-colors) + - [Python: Programming Efficiently](https://www.linkedin.com/learning/python-programming-efficiently/time-profiling) + - [Python Statistics Essential Training](https://www.linkedin.com/learning/python-statistics-essential-training/the-power-of-visualization) + +- Load and study `Investigating TSP.ipynb`. + - Can you improve any of the functions to make them more efficient? + - See how large you can make _n_ while testing `exhaustive_search()`. + - Check that `greedy_nearest_neighbours()` is correct. If not then fix it! + +- Read the [Wikipedia article on TSP](https://en.wikipedia.org/wiki/Travelling_salesman_problem). Pay attention to th **Computing a solution** section, and especially to the `2-opt` and `3-opt` techniques for defining neighbourhoods. + +- Experiment with generating your own graph families. For example: + - **Euclidean graphs**: generate points using _(x,y)_ coordinates, then generate the adjacency matrix by calculating all the required distances. Recall that the distance between two points _(x1,y1)_ and _(x2,y2)_ is _sqrt[(x1-x2)2+(y1-y2)2]_. + - **Graphs with obvious shortest cycle**: think of a graph where all the distances are 2 except for the edges on a predefined cycle, where the distance is 1. Such a graph would be useful for testing/debugging the *nearest neighbours greedy search*. + +--- + +- You can use `Template.ipynb` to start writing the part you need to submit (about meta-heuristics). +- I propose you work as follows (You don't have to follow this though!): + * Ensure you are familiar with the TSP problem, 2-opt and 3-opt local search techniques. (See this [Wikipedia article](https://en.wikipedia.org/wiki/Travelling_salesman_problem)) + * Decide which meta-heuristics you want to try. Watch the [guest lecture videos](https://github.coventry.ac.uk/pages/ab3735/380CT_2022/lectures/lecture7/) and check the literature related to TSP and the meta-heuristics you are thinking of. +- You may try Google Colab and/or Microsoft Azure if that helps you work better, but please be aware that I am not sure about their GDPR compliance. + +I should emphasise here that "exhaustive search" and "greedy" are **not* meta-heuristics, nor are 2-opt and 3-opt. Ensure this is clear to you. + + +## Bibliography + +- Applegate, DL, Bixby, RE, Chvátal, V, Cook, WJ, 2007, [The Traveling Salesman Problem: A Computational Study](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA5199622620002011), Princeton University Press, Princeton. +- Cook, WJ 2012, [In Pursuit of the Traveling Salesman: Mathematics at the Limit of Computation](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA5199665280002011), Princeton University Press, Princeton. +- Glover, F, & Kochenberger, GA (eds) 2002, [Handbook of Metaheuristics](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA51109755880002011), Kluwer Academic Publishers, Secaucus. +- Gutin, G, & Punnen, AP (eds) 2002, [The Traveling Salesman Problem and Its Variations](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA51125059450002011), Springer, New York, NY. +- Pintea, C.-M., 2014. [Advances in Bio-inspired Computing for Combinatorial Optimization Problems](https://locate.coventry.ac.uk/permalink/f/1r06c36/COV_ALMA5155140430002011). 1st ed. 2014. +- Steven, SS 2008, [The Algorithm Design Manual](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA5190160580002011), Springer, England. + - You may also find its [companion website](http://algorist.com/problems/Traveling_Salesman_Problem.html) useful. +- Talbi, E.-G., 2009. [Metaheuristics from design to implementation](https://locate.coventry.ac.uk/permalink/f/gr8698/COV_ALMA51117060170002011), Hoboken, NJ: John Wiley & Sons.