Guaranteed Higher Grade!

Free Quote
Traveling Salesman Problem With Profits (TSPP) Report

In the Traveling Salesman Problem with Profits (TSPP) and time limit we are given an undirected complete graph with node set Â and edge set . We assume that node Â represents the depot and nodes Â are the customers. For each customer Â there is a profit Â associated. The aim is to find a route starting and finishing at node Â in such a way the total distance travelled is less than Â and the total profit is maximized.

A feasible solution to the problem is one single route starting and finishing at the depot, which visits a subset of customers and the total length of the route is less than . This problem arise in last mile logistics, where the porter needs to decide which deliveries is willing to do.

The nature of this coursework is to demonstrate your ability to research and report on the literature on the above problem and on your ability to programme two heuristic approaches from the literature.

In this part you present a literature review on the TSPP. It must include a short description of the origin of this problem and its complexity, but the focus should be on discussing what you think is the state-of-the-art today of:

1. optimal algorithms for the TSPP; and

2. heuristics for the TSPP.

You do notÂ need to go into detail about how the methods work. It is expected that you will discuss at least one optimal algorithm as well as at least one heuristic method, since it is quite hard to identify an approach that outperforms all others. You must refer to the literature. Â

Use the internet to find the data of three instances for the Traveling Salesman Problem (TSP) of which other researchers have identified either an optimal solution or a best-known feasible solution. The number of nodes in each instance should be at least 20 nodes. At least one of the instances should have at least 100 nodes.

Â

Then, you will need to convert these instances into the TSPP by providing sensible values for and . In other words, you will need to provide a T value lower than the optimal solution of the original TSP instance and a vector containing the profits of each customer. Note that you will have to test the algorithms on these three instances. So you hence must select instances of which you also know the all the necessary data (the cost of the edges, the vehicle capacity, and which node is the depot).

You do notÂ need to include all the data of an instance in your report! Please do not list. For example, the costs on each of the edges, or the sequence of the optimal route in the known optimal solution.

Select from the literatureÂ a construction heuristic that you will also programme in Python. You will then test the algorithm on each of the three instances selected in Section 2.

Explain in this section of the report:

1. The details of how the algorithm works. It should not be a print-out of your Python code, but a higher-level description of how it works using pseudo-code. Refer to the literature you have used.

Â

2. The results you get on each of the instances: running time of you Python algorithm and the total profit obtained.

Appendices

You have to add your Python code in the appendix. Also, you may include extra material in appropriate sections here as you feel is necessary or desirable. There is no limit on what you provide but avoid excessively long appendices! Think wisely about what to include here. The appendices do not contribute much to the mark you can obtain; a thoughtful use of appendices may help me understand some points in the main text, but if it is too long and contains irrelevant material may then negatively affect your mark.

1. The web is a useful resource, and you are allowed to search for open-access codes of algorithms for the TSP and use these codes to learn from. You will not be penalised if you reuse parts of such code; it may sometimes be better to adopt this approach than to try to write your own codes from scratch. You must refer in this case to the website and authors of these codes carefully in your report and acknowledge precisely which parts you have reused.

Â

2. You are free to choose which heuristics you want to implement, as long as these are methods from the literature. You get marks for writing a good report on these methods, referring properly to the literature, and for implementing them correctly in Python.

Â

3. It is not of such importance that you would use â€œsmart tricksâ€ to speed up the running times of your code. The latter aspect would require a more in-depth knowledge of Python and computer programming than what we can see in this module. The only criteria are: (1) the code implements the method from the literature, (2) it works. Hence the actual running times, while you need to report them, are not that important. (You will not lose marks if, for example, your code is slower than the â€œstate-of-the-artâ€ implementations, which is very likely the case!)

Â

4. Report running times in seconds. Use the method we have seen in the lectures. If you get the result â€œ0 secâ€ from Python, report in your table â€œ<1sâ€.