Lec-24 Traveling Salesman Problem(TSP)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
In this lecture, we discuss the Travelling Salesman Problem. The Travelling Salesman Problem is an extremely important problem in operations research. We first define the problem and then we look at methods or algorithms to solve the Travelling Salesman Problem. Later, we will also discuss the relevance and importance of Travelling Salesman Problem in the OR literature. What is a Travelling Salesman Problem? Let us look at a situation where there are five cities or five nodes. Let us say that there is a person who is right now in node 1. Now, this person has to visit each of the remaining nodes once and only once and come back to the starting point. The person may choose to start from 1 and from 1 to go to 2 and say from there to 4, to 5, then to 3 and back to 1 is one feasible solution to the Travelling Salesman Problem. Alternately, another feasible solution could be it goes through 1 to 4, 4 to 3, 3 to 2, 2 to 5 and 5 to 1. Any permutation or order in which the person starts from a particular node, in this case, the given node goes to every other node or vertex once and only once and comes back to the starting point is called the Travelling Salesman Problem and particularly to find out that tour or circuit, which gives minimum distance travelled or minimum cost travelled. The problem is: Given a network, given a set of points to visit every node once and only once and come back to the starting point, travelling minimum distance or incurring minimum cost. This is called the Travelling Salesman Problem as it is. In a five city Travelling Salesman Problem, if we assume that the person starts with 1, let us say, a feasible solution could be 1 to 5, 5 to 2, 2 to 3, 3 to 4 and 4 to 1. We also realize that this solution is the same as 2 to 3, 3 to 4, 4 to 1, 1 to 5 and 5 to 2. So, effectively, in a Travelling Salesman Problem, it does not matter which city or which node the travelling salesman starts. The only thing is, from any node the person can start, but the person has to visit every other node once and only once and come back to the starting node. There are n nodes; we realize that there are n minus 1 factorial feasible solutions, because corresponding to this solution, which say the 1 5 2 3 4 1 is the same as 5 2 3 4 1 5 which is the same as to 2 3 4 1 5 2 and so on. Because each of these n factorial solutions have five solutions that repeat we have n minus 1 factorial feasible solution to the Travelling Salesman Problem. The question is to find out among these n minus 1 factorial feasible solutions, the one with the best value or the minimum distance value. This problem also comes from graph theory. In graph theory, there is a famous problem of finding out whether a graph is Hamiltonian. If we look at a graph like this, a graph is a collection of nodes and arcs that we saw earlier as part of these. If we look at a graph like this with three nodes and three arcs, it is possible to find a sub graph which is 1 3 2 1, which means from 1, I go through every vertex once and only once and I come back. So, this is Hamiltonian. Whereas, if we have the same graph like this, then starting from 1, I can go to 3, 4 but then, I have to come back to 3 and then come to 2 and to 1. So, this graph is not Hamiltonian. One of the interesting decision problems in graph theory is if the given graph is Hamiltonian. So, given a graph, the decision problem from graph theory is to find out whether it is Hamiltonian. When we say whether it is Hamiltonian, we say whether there is a Hamiltonian circuit which means I start from this point. If you take this particular graph, this graph is Hamiltonian 1 to 2, 2 to 3, 3 to 4 and 4 to 1. So, it has a Hamiltonian circuit. I could do 1 to 2, 2 to 3, 3 to 4 and 4 to 1 which is the same as 1 to 4, 4 to 3, 3 to 2 and 2 to 1. If I add this also into this graph, I may do 1 2 3 4 1; I may do 1 2 4 3 1 and so on. If a graph is Hamiltonian it may have more than one Hamiltonian circuit. From graph theory we also have graphs which are completely connected graphs. If we have a graph here where every vertex is connected to every other vertex then clearly this graph is Hamiltonian. You could do 1 2 3 4 5 1; you could do any of these n factorial possibilities. If somebody is given a graph like this and if the decision problem is posed whether this graph is Hamiltonian, then the decision problem is easy to answer because with every vertex is connected to every other vertex, the graph has to be Hamiltonian. In such a case, the decision problems move on to an optimization problem where we try to find out, given this graph is Hamiltonian and it has more than one Hamiltonian circuit, can we find the least cost Hamiltonian circuit? Now, that leads us to a Travelling Salesman Problem wherein we find out the least cost Hamiltonian circuit in a given graph, knowing that that graph is Hamiltonian. In a TSP we normally assume that it is possible to go from every city to every other city. Usually, the distance data in a Travelling Salesman Problem will look like this. This is for a typical five city Travelling Salesman Problem where all these represent the costs or the distances. For example, to go from 1 to 3 it is 8, to go from 1 to 4 it is 9 and so on. We also observe that we do not have a situation, where we say here that I cannot go from 3 to 4. Usually in a TSP, it is assumed that you can go from every city to every other city. The only other difference is the cost or distance between a node and itself should ordinarily be 0, but we do not put a 0 here. We simply put a dash here whenever we solve a Travelling Salesman Problem where this dash represents, infinity. Later, we will explain why we have replaced the 0 with the dash, but, otherwise, in a TSP every node is connected to every other node by arcs. This means the graph is complete, which also means, that Hamiltonian circuit exists. If every node is connected to every other node, then n minus 1 factorial Hamiltonian circuit are possible and feasible. The Travelling Salesman Problem is to find out that among the n minus 1 factorial, which has the least total cost or the least total distance. We have already said from this figure that we could have a feasible solution 1 to 2, 2 to 4, 4 to 5, 5 to 3, 3 to 1 or we could do 2 to 5, 5 to 1, 1 to 4, 4 to 3, 3 to 2. These are all feasible solutions. If we look at something like this, I go from 1 to 2, I go from 2 to 3, come back from 3 to 1; go from 4 to 5 and 5 to 4 is not feasible to the Travelling Salesman Problem. These are called subtours and we should not have subtours. We should have only a full tour where we would have 1 to 2, 2 to 3, 3 to 4, 4 to 5, 5 to 1, which means, I visit every city once and only once and I come back to the starting point. The travelling salesman feasible solution should comprise of tours and should not comprise of subtours. Before we get into solving the Travelling Salesman Problem let us first try and formulate the TSP. Very quickly, we will look at two types of formulations of a TSP. One is we define Xij equal to 1, if the person goes immediately from i to j. The objective function is to minimize the total distance travelled. This will be double sigma Cij Xij. We have already seen that this Cij could represent a cost or it would represent a distance. If we look at a 5 by 5, given by this data, the person has to leave from every city. So, we will have sigma Xij for j equal to 1 to n equal to 1 summed over all i. This means, if I am in city I, I have to go to some other city j and I go to only 1 out of the remaining cities. That is taken care of by summation j equal to 1 to n, from i, it is equal to 1 for every i. The other one is sigma Xij equal to 1, i equal to 1 to n for every j. This means, if I am in a particular city at the moment, I should have come from only one of the cities into the present city that I am right now in. That is given by Xij equal to 1 summed from i equal to 1 to n for every j; we also know that Xij is 0 or 1. I immediately go from i to j or I do not go from i to j. So far, the formulation of the Travelling Salesman Problem appears to be like that of the more familiar assignment problem. If you look at it carefully, the assignment problem has exactly this formulation. The only difference, of course, is because of unimodularity; we put Xij greater than or equal to 0. In a TSP, we do not have that; so, we need to add some more constraints into the Travelling Salesman Problem. Those constraints are called subtour elimination constraints. What are these subtour elimination constraints? If I have, say, five cities; if I get into a solution like this, where I have, say this is 1 and 5, X15 equal to 1 and X51equal to 1. Now, this is a subtour. We should not have subtours of this type. If we have a five city TSP, we could have a subtour of length 1, that is, you may have Xjj equal to 1, which is called subtour of length 1; this is subtour of length 2 and something like this is subtour of length 3; we could have subtour of length 4 and so on. We could have subtours of several lengths starting from 1 to n minus 1 if we are looking at an n city Travelling Salesman Problem and each of these subtours should be eliminated. One of the ways of doing this is to eliminate subtours of length 1 by simply putting Xjj equal to 0, so that I do not have a solution that has X11 equal to 1 or X22 equal to 1. So, I will not have something like this, . That is one way of doing it, explicitly. The other way of doing is to declare the distance between the point and itself to infinity, represented by a dash, so that it does not come into the solution. That is precisely, the reason, why we have the dashes coming here instead of the 0s. Otherwise, we would always have diagonal assignments with 0s being here. We will have diagonal assignments; we do not want diagonal assignment because diagonal assignment represents subtour of length 1. We eliminate subtours of length 1, not by explicitly putting Xjj equal to 0, but by putting Cjj equal to infinity. The cost associated with the diagonals are all infinity, so that we do not have subtours of length 1. We want to eliminate subtours of length 2. We need to add a constraint like this type Xij plus Xji is less than or equal to 1. What does this constraint do? If we look at specifically this pair, this would mean, if this subtour exists then X15 equal to 1 and X51equal to 1, which means Xij plus Xji should be equal to 2. The moment we add this constraint, then this will make sure that this situation does not happen. If X15 is in the solution, then X51cannot be in the solution. If X51 is in the solution then X15 will not be in the solution. We can have a situation where both of them are not in the solution. Therefore, this is a good way by which we eliminate subtours of length 2. Similarly, subtours of length 3 can be eliminated by Xij plus Xjk plus Xki is less than or equal to 2, which would eliminate subtours of length 3, which means, we will not have this situation. If for example, this is 1, this is 5, this is 2, this is 4 and this is 3, then if X12 equal to 1 and 2, 4 equal to 1, X41 cannot be equal to 1; otherwise, it will violate this constraint. Any general subtour elimination constraint can be written like this: if we want to eliminate subtours of length k, then we can put Xij up to k terms, is less than or equal to k minus 1. That is another way to start doing the subtour elimination constraints. If there are n nodes then we have superscript n C2 constraints here because this is done for every pair. We have superscript n C3 here because we are eliminating subtours of length 3 and then superscript n C4, superscript n C5 and so on. One of the problems in the travelling salesman formulation is that the subtour elimination constraints are large and many. If we are looking at n equal to 5, then superscript n C2 is 10, superscript n C3 is equal to superscript n C2 which is also 10. Whereas, if you are looking at a twenty city problem, then superscript n C2 will be 20 into 19 by 2, which is 190 constraints and so on. The Travelling Salesman Problem belongs to a class of problems where we have a large number of constraints and typically exponentially increasing number of constraints, because any superscript n Cr can be treated as exponential. It has a large number of constraints associated with this particular problem. The next issue that happens is can we still reduce the number of constraints from this particular number? Let us go back and look at the same example that we have. We have to eliminate subtours of length 1, subtours of length 2, subtours of length 3 and subtours of length 4. We are solving a five city Travelling Salesman Problem. If we were solving a ten city problem, then we have to eliminate 1, 2, 3, and 4, up to 9. We have already eliminated subtours of length 1 by putting Cjj equal to infinity. We should eliminate subtours of length 2 by adding this constraint, which is a superscript n C2 constraint that we add now. How do we eliminate subtours of length 3? If there is a subtour of length 3 and there are five cities, there has to be another subtour. You cannot have a situation where there is only one subtour; if there is a subtour, then, there has to be another subtour. There will be more than one subtour if you have it. If there is a subtour of length 3, then there should be subtours of length 2 or length 1, so that the 5 is taken care of. For every subtour of length 3, there has to be another subtour, at least one more subtour, which is either a subtour of length 1 or subtour of length 2. By eliminating subtours of lengths 1 and 2, we automatically eliminate subtours of length 3. Similarly, if we have a subtour of length 4, then there has to be a subtour of length 1. So, by eliminating all subtours of length 1, we automatically eliminate subtours of length 4. For a five city problem, it is enough to eliminate subtours of length 1 and 2. Do not worry about 3 and 4. Already 1 is eliminated by this way, so we only add superscript n C2 constraints in a five city TSP. In a seven city TSP, we will have to eliminate subtours of length 1, 2 and 3 because 4, 5, 6 and 7, we can eliminate by carefully eliminating 1, 2 and 3. 1 is always eliminated by this, so for a seven city, we need to add superscript n C2 plus superscript n C3. When n is an odd number, then the number of constraints that we will add is superscript n C2 plus superscript n C3 and so on up to superscript n Cn minus 1 by 2. So this many constraints we add if n is odd. If n is even then, let us say we have six cities. We should eliminate subtours of length 1, 2, 3, 4 and 5. We eliminate this by putting Cjj equal to infinity; this you do by superscript n C2. You have to do this again by doing this superscript n C3, then you can go back and say for every subtour of length 4, we should have subtours of lengths 2 and 1. So, by eliminating these two, we have eliminated this and by eliminating this, we eliminate this. So, when n is even, we end up doing superscript n C2 plus superscript n C3 plus etc., plus superscript n Cn by 2. This way we actually reduce the number of constraints here. When we first formulated, we said we have to do n C1, n C2, n C3 and up to n Cn minus one. We realize by carefully looking at the problem: if n is odd, it is enough to go up to superscript n Cn minus 1 by 2; if n is even, go up to superscript n Cn by 2. The number of constraints to a Travelling Salesman Problem is still very large and usually Travelling Salesman Problems are not solved directly by integer programming and by formulating it this way. This is only to understand the Travelling Salesman Problem represents a class of problems where the number of constraints in a particular type of formulation, the number of constraints is large exponential and it increases with increase in the number of nodes. Much later, people came up with a very interesting form of a subtour elimination constraint and we will look at it that way. Instead of explicitly avoiding subtours of length 2, 3, etc., up to n minus 1, this kind of a constraint was used. We simply said Ui minus Uj plus nXij is less than or equal to n minus 1, for i is equal to 1 to n minus 1 and for j equal to 2 to n. Effectively, this has about n square constraints or n minus 1 square constraints about n square constraints, because i is equal to 1 to n minus 1, j is equal 2 to n. How do these constraints work? We have also introduced Ui and Uj, so n more variables into the formulation. Let us see how this constraint works. Let us take a situation where we have a subtour 1 2 3 1 and 4 5 4 for a TSP that is a five city problem. Let us say I have 1 2 3 1 and I have 4 5 1 to 2, 2 to 3, 3 to 1, 4 to 5, 5 to 4. If we have this kind of a constraint, then let us try and apply this now. Ui minus Uj minus nXij is less than or equal to n minus 1. Ordinarily, we will have U1 minus U2 minus 5X12 is less than or equal to 4. For 2 to 3, I will have U2 minus U3 plus 5X23 is less than or equal to 4. It is plus 5X23 in the first statement. Then, it is not defined for j equal to 1, so I do not have the third constraint. I do not have a third constraint which says U3 minus U1 plus 5X31 less than or equal to 4. I have only two constraints because it is not defined for j equal to 1. When I add vertically, I will get U1 minus U3 plus 10 is less than or equal to 8. Assuming that this is equal to 1 and this is equal to 1 it is always possible to define U1 and U3 such that this constraint is satisfied. Therefore, when we consider a subtour involving 1, we are unable to see that this is a subtour elimination constraint. But, in fact, it is a subtour elimination constraint because for every subtour that involves city 1, there will be a subtour that does not involve city 1. This means because this subtour involves city 1, this subtour does not involves city 1. What are the corresponding equations here? This is U4 minus U5 plus 5 is less than or equal 4 and U5 minus U4 plus 5 less than or equal to 4. Adding these two, 10 is less than or equal to 8. For the subtour that does not involve 1, this is a subtour elimination constraint because we cannot define values for any U4 and U5. We will end up getting 10 less or equal to 8, which will violate this particular constraint. So, this will become a subtour elimination constraint for every subtour that does not involve 1. We also know that for every subtour that does not involve 1, there is a subtour that involves 1; therefore, that also gets eliminated. So this becomes a very valid subtour elimination constraint for every subtour, but we also have to show that this is valid for every tour. A tour should have 1. So, if we have a tour which is 1 2 4 3 5 1, then we have U1 minus U2 plus 5 is less or equal to 4; U2 minus U4 plus 5 less than or equal to 4; U4 minus U3 plus 5 less than or equal to 4; U3 minus U5 plus 5 less than or equal to 4 and it is not defined for 1. When we add vertically, you will get U1 minus U5 plus 20 is less than or equal to 16. It is always possible to find U1 and U5 such that this is satisfied. Every tour will satisfy this, so this will not eliminate a tour. This will eliminate only a subtour and it will eliminate all subtours. This becomes a very valid subtour elimination constraint for the Travelling Salesman Problem. This, with fewer than n square constraints makes it a little easier from the formulation point of view because otherwise we were looking at superscript n C2 plus superscript n C3 plus up to superscript n Cn by 2, which is a much larger number than n square. This kind of a substitution has been used extensively by people who actually formulated the TSP as an integer programming problem. There are also further refinements to this from the literature, some of which have made it slightly more elegant with respect to this formulation. Nevertheless, we also as mentioned earlier we do not solve the Travelling Salesman Problem optimally by using this integer programming formulation. It becomes extremely cumbersome. Travelling Salesman Problems are solved to exactness or to optimality normally by using branch and bound algorithms that provide exact solution to the Travelling Salesman Problem. We also know that branch and bound algorithms are all worse case exponential, in the sense, they do not guarantee polynomial running time. We could get into situations where we consume a large amount of CPU time before we terminate or we could have situations where we do not terminate at all. They are solved using branch and bound algorithms to begin with; and sometimes, we resort to heuristic algorithm which are fast, but which do not guarantee exactness or exact solutions. We now see different versions of branch and bound algorithm to solve the Travelling Salesman Problem. Later, we also see some heuristic solutions to the Travelling Salesman Problem. So, we will first look at the branch and bound solution for this sum. Let us look at a branch and bound 1 to do this. Now, this is a 5 by 5 or a five city Travelling Salesman Problem. We use this data, so we call this city 1 2 3 4 and 5. This is city 1 2 3 4 and 5, now let us see what we can understand from this matrix. One thing is if the person is at city 1, then the person has to leave city 1 by going to one of these four. Therefore, the person has to travel a minimum distance of 7 to leave city 1. Similarly, when the person reaches city 2, the person should travel a minimum distance of 5, a minimum distance of 8, a minimum distance of 5 and a minimum distance of 6. The sum of these minimum distances will have to necessarily be some kind of a minimum total distance that this person has to travel. That is given by the sum of the row minima which is 7 plus 5, 12 plus 8, 20 plus 5, 25 plus 6, 31. This 31 is some kind of a bare minimum that this person has to travel total distance. This 31 is a lower bound to the actual distance that the person has to travel. So row minimum gives us a good lower bound and we say that this person has to travel at least 31. The optimum solution will have to be greater than or equal to the lower bound of 31. Also, realize that the column subtraction would also do something. For example, what does this column subtraction tell us? In order to reach 1, this person should have traveled a minimum of 7, a minimum of 5, a minimum of 8, a minimum of 5 and a minimum of 6, which would be the same 31 because the travelling salesman matrix given here is symmetric. Ordinarily, travelling salesman matrices or distance matrices are given as symmetric because they represent distance. Distance, usually, satisfies symmetry and triangle inequality. The Travelling Salesman Problem matrix is usually square, symmetric and satisfies triangle inequality, which means, given any three distances, dij plus djk is greater than or equal to dik. So, it satisfies this particular inequality also. Because of this inequality we can always go back and say that if we are looking at a TSP, the person will visit every city once and only once. If you have a situation where the person has to come back to that city already visited, then it actually violates the triangle inequality. Therefore, that will not happen. So, whenever the matrix satisfies triangle inequality, we can always show that the person will visit every city once and only once. There can be situations where we do not have a symmetric matrix, in which case, the row minima could be different from the sum of the column minima. We can consistently use either the row minima or the column minima to represent the lower bound. In this case, we are going to use a symmetric matrix. To begin with, if we use the row minima or the column minima, we are going to get the same 31 as the lower bound. From this, what else can we do? We create four branches or n minus 1 branches and say X12 equal to 1, X13 equal to 1, X14 equal to 1 and X15 equal to 1. We do not have X11 equal to 1 because X11 is a subtour of length 1; you do not have X11 in the solution or Xjj the solution. So, we make four branches or n minus 1 branches at this stage. When we fix X12 to 1, it means we are assuming that this person is going to go from 1 to 2. We temporarily leave out this first row and the second column and then see the additional minimum distance that this person has to travel. Since we know that he is going from 1 to 2, now having reached 2, the person has to leave 2. Therefore, he would have to travel this row minimum which is 5, this row minimum which is 8, now this 6 and this 6. So, the sum of the row minima, the moment we fix X12 equal to 1, we leave out the first row and the second column and for the reduced 4 by 4 matrix we try to add the row minima. That will become 5 plus 8, 13 plus 6, 19 plus 6, 25, 25 plus 10 we will get 35 as the lower bound. I repeat. We fixed this 10; we leave out the first row and the second column. For the remaining 4 by 4, the row minimum is 5 plus 8 is 13, 13 plus 6 is 19. This 5 is not counted because this column has been left out. This is 13 plus 6 is 19, 19 plus 6 is 25, 25 plus 10 is 35. The motivation is that the person already goes from 1 to 2. So in order to go from 2, the person has to travel a minimum of 5. In order to go from 3, the person has to travel a minimum of 8, here a minimum of 6. This is not counted because the person has already reached 2. This should not be considered, so minimum of 6 and yet another minimum of 6, to get a bare minimum of 35, the person has to travel if you fix this 10. This would tell us that if X12 equal to 1, which means the person goes from 1 to 2, immediately, the minimum distance that the person travels should be 35 or more. For 1 3 equal to 1, we can do something similar. For 1 3, leave this out and leave this column. This goes and take the row minima this 8 is fixed; the remaining minimum would be 5 plus 8, 13 plus 5, 18 plus 6, 24. I repeat minimum 5, minimum here is 8, minimum here is 5, minimum here is 6, 6plus 5, 11 plus 8, 19 plus 5, 24 plus the fixed 8 would give us 32. If the person goes from 1 to 3, we would say that the minimum distance the person has to travel is 32. For every i,j that is fixed, leave out the ith row and jth column; take the reduced matrix and then find out the sum of the row minima and then add the fixed values to get this 32. When we fix 1 4, we do this and this goes, so this 9 is fixed; row minimum is 6 here because this 5 goes; 6 plus 8 is 14, 14 plus 5 is 19, 19 plus 6 is 25, 25 plus 9 is 34. When we fix 1 5, this row and this column goes; this 7 is fixed, so we have 5, which is the row minimum; 5 plus 8 is 13, 13 plus 5 is 18, 18 plus 6 is 24, 24 plus 7 is 31. What we have done is at 1 level, we have said that if the person goes from 1 to 2. It is 35 or more, 32 or more, 34 or more, 31 or more. Then, we want to minimize the total distance travelled. So, we branch further from this because it has the minimum value of the lower bound. When we branch from here, you create three more branches. There were four branches created here, now we have to create three more branches. We now say that here the person will do X21equal to 1, this will be X23 equal to 1 and this will be X24 equal to 1; we will avoid 2 2 because it is a subtour and we will not have 2 5 because we already have put 1 5. The person has already reached 5 so the person will not go from 2 to 5 again. From 2 the person can do only these three things. Now, we want to find out this. To make this better, here, I have 1 5 and 2 1. I have 1 5, so I freeze this row, this column. I also freeze this row and this column. Effectively, I have only this portion of the matrix available with me. What I have here are 3 4 and 5 and I have 2 3 and 4. I have 10 dash 8, 5 8 dash, 6 9 6. We can actually do one more thing. This would mean that 2 to 1 and 1 to 5. I have 2 to 1, 1 to 5, so, I should not have 5 to 2; otherwise it will be a subtour. I put 5 to 2 as another dash here temporarily and then I can find out the row minimum. The row minimum would give us 8 plus 5, 13 plus 6, 19 and 19 plus the 2 fixed values, that is, 19 plus 7 is 26, 26 plus 10 is 36. Let me repeat this again. This node I fixed X15 to 1 and X21 to 1. I go back. I leave out the first row fifth column, second row first column, get the remaining 3 by 3 here. After we get that from the allocation, I realize that I do 2 to 1 and 1 to 5. So 2 to 1, 1 to 5 would mean, 5 to 2 should not be there; otherwise, it will become a subtour. I will go back and just put temporarily a dash here, so that I do not have this and then I compute the row minimum, 8 plus 5 is 13, plus 6 is 19 and 19 plus 10 is 29, plus 7 is 36. Now, to evaluate this 1 5 and 2 3, I go back, so 3 4 5 and 1 5, this one goes, 2 3 this one goes. So, I have 1 2 and 4 that is here. The values of 3 to 1 is 8 10 8, 9 5 dash, 7 6 and 6. I have 1 to 5, now this is 1 to 5 and 2 to 3 and because I have 2 to 3, I should not have 3 to 2, so I put a dash here and get the row minimum 8 plus 5, 13 plus 6 is 19. 1 to 5 is 19 plus 7 is 26 plus 10, I get 36. So, when I do 1 to 5 and 2 to 3, I get 36 here. I do the third one which is 1 5 2 4. I eliminate this 1 5 and I do 2 4, so I have 3 4 5, 1 2 3, I get 8 10 dash, 9 5 8, 7 6 9. Since, I have 2 4, I should not have 4 2, so the row minimum would give us 8 plus 8 is 16 plus 6 is 22, 22 plus 1 to 5 is 7, 29 plus 2 to 5 is 34, so I get 34 here. Now, I have evaluated up to this. Out of these nodes which are here, I look at that node which has the minimum value which is 32 here. I decide to branch from this, so that I may get a solution with 32 or slightly more than that; branching from here would give me a solution with 36 or more. I would like to get a smaller value as possible, so I tried to branch this node. I already have 1 3, so I create three branches here. I put X21 equal to 1, I will not have X22 because it is a subtour, I will not have X23 because I already have a X13. I will have a X24 equal to 1 and I will have X25 equal to 1. I will go back and try to find out these three values. For the first one, I put 1 3 and 2 1. So, 1 3 goes, 2 1 goes, which means, I have these remaining three. I have 3 4 5 and I have 2 4 5 here. I have used 1 3 and 2 1 and so 2 4 5, 10 8 9, 5 dash 6, 6 6 dash. I have used 1 3 and 2 1. I have 2 to 1, 1 to 3; I should not have 3 to 2, so 3 to 2 goes from here. Sum of the row minima will be 8 plus 5 is 13, plus 6 is 19, 19 plus 10, 29 plus 8 is 37. The next one I do 1 3 and 2 4. I eliminated 1 3, I eliminated 2 4 and I have 1 2 and 5 and the values will be 3 1 is 8 10 9, 9 5 6, 7 6 dash. Again, I have used 1 3 and 2 4, because I have 2 4 here and should not have 4 2, otherwise, I will have a subtour; so, I eliminate this 4 2. I subtract the row minimum 8 plus 6 is 14, plus 6 is 20 and 20 plus 8 is 28, 28 plus 5 is 33. I go back and do 1 3 and 2 5. So 1 3 is here, 2 5 is here and so 1, 2 and 4 are remaining. So, 3 1 is 8, 3 2 is 10, this is 8, 4 1 is 9, 4 2 is 5, 4 5 is dash, 5 1 is 7, 5 2 is 6, 5 4 is 6. Since I have 2 5 equal to 1, 5 2 will be not be there, which is a dash. Now, take the row minimum 8 plus 5, 13 plus 6 is 19, 19 plus 6 is 25, 25 8 is 33. Out of these values, I will again try to find out whichever is the smallest in terms of these values and I branch from there. I could branch from either this or from this. I look at this; I create two branches, 1 3 2 4, I can do X31. I will not do it. I can do X31, I cannot do X31 because X13 equal to 1, I cannot do X31. I do X32, I cannot do X33 because that is a subtour. I will not do X34 because I already have 2 4 here. I will do X35 equal to 1. I fixed three terms; I have only two more terms to go. Whenever I have two more terms to go, I do not find the lower bound. I would only find the upper bound or the feasible solution. I try to find a feasible solution here and how do I find the feasible solution? I have here 1 to 3, this would mean 1 to 3, 3 to 2, 2 to 4. Automatically, it has to be 4 to 5 and 5 to 1. So, 1 to 3 is 8, 3 to 2 is 18, 2 to 4 is 23, 4 to 5 is 29, 5 to 1 7 36. So, I have a feasible solution with Z equal to 36 at this point. The moment I have a feasible solution with Z equal to 36, I can do a few things. I realize that I do not need to do proceed from here, because if I proceed from here down, I will get values 37 or more. One of the properties that we have here in this branch and bound tree is that, as we move down, the value can only increase and it cannot decrease. When I move down from here, I will get 37 or more. I already have a solution with 36, so I fathom this because lower bound is greater than current upper bound. Because this 36 tells me that since I have a feasible solution with 36, my optimal solution is either 36 or less. Since the lower bound is greater than the upper bound, there is no point in doing this. Similarly, I can fathom this as well as this, because even if I proceed from here, I will get 36 or more. I already have a solution with 36. I am not interested in proceeding from this. I go back to this one and see what feasible solution I will get now. This is 1 to 3, 3 to 5 and I have 2 to 4. So, this would give me 1 to 3, 2 to 4 and 3 to 5. I will go back. Therefore 1 to 3, 2 to 4 and 3 to 5 would give me 4 5 and 1 2. 1 to 3, 1 to 3, 2 to 4, 3 to 5 would give me 4 5 and 1 2. I will have 9, 5, 7 6 and since I have 1 to 3, 2 to 4, 3 to 5, so 2 to 4, I will not have 4 to 2 should not be there. So, this is the only possibility, 4 to 1 and 5 to 2. 5 to 2, 2 to 4 and 4 to 1 is the only possibility that I can have here. I repeat again. Since, I have 1 to 3, 3 to 5 and I also have 2 to 4, I cannot have 4 to 2. I will only have to move from 5 to 2, otherwise, I will end up coming back. Therefore, I cannot have 4 to 2. This would give me a feasible solution 1 to 3, 3 to 5, 5 to 2, 2 to 4, 4 to 1. This gives me a value, 3 to 5 is 8 plus 9 is 17, 17 plus 6 is 23, 23 plus 5 is 28, 28 plus 9 is 37. This gives me Z equal to 37, which is not being helping me in any way, because this is more than 36 and therefore, I will not be able to get any gain out of this. I go back and see whichever is the smallest. This is the smallest, so again I branch from here. I have done 1 to 3, 2 to 5, so I cannot do 3 to 1, because I have done 1 to 3. I can do 3 to 2 equal to 1, I will not do 3 to 3, I will do 3 to 4 equal to 1. Each of these will give me a feasible solution. Here, I get 1 to 3, 3 to 2, 1 to 3, 3 to 2, 2 to 5, 5 to 4 and 4 to 1. Now, 1 to 3 is 8, 3 to 2 is 18, 2 to 5 is 24, 5 to 4 is 30, 4 to 1 is 39 so Z is equal to 39. Z equal to 39 is also not going to help me in anyway so I will start looking at this one. This would give me 1 to 3, 3 to 4. I have done 1 to 3, 3 to 4. I cannot do 4 to 5; I can do 4 to 2, 2 to 5 and 5 to 1. So, 1 to 3 is 8, 3 to 4 is 8, plus 8 is16, 4 to 2 is 16, plus 5 is 21, 21 plus 6 is 27 plus 7, so, Z equal to 34. The moment I have a solution with Z equal to 34, I realize I can do many things. This gives me a solution with Z equal to 34. I can fathom this because moving from here down is only going to give me 35 or more. I can fathom this also because this moving down is going to give me 34 or more. I can fathom this as well, based on the lower bound, where proceeding from here is going to give me only 34 or more. At this point, we realize that we have a feasible solution with 34, which is the best solution and right now we do not have any other node that is left for evaluation. All the nodes are now fathomed and these nodes have been fathomed either by feasibility, feasible solution here, here, here and here, or fathomed based on the condition that lower bound is greater than upper bound. When there are no more nodes to move around, the algorithm terminates and in this case it gives us the optimal solution. The best among the feasible solutions is optimal, so this is the optimal solution: 13 4 2 5 1, where 1 to 3 is 8, 3 to 4 is 16, 4 to 2 plus 5 is 21, 2 to 5 is 21 plus 6 is 27 and plus 7 and Z equal to 34. So, the algorithm terminates with this solution, with this optimal. Because the problem is symmetric, we would also have got the solution if we had branched this way, 1 5 2 4 3 1; it would have given us the same value of 34. This is a rudimentary branch and bound algorithm that we have seen for the Travelling Salesman Problem. This is a branch and bound algorithm. We have already seen some aspects of branch and bound algorithm earlier when we did integer programming. In integer programming we said we could fathom in three ways feasibility, infeasibility and based on the bounds. In this case, we will not have infeasibility. So we will fathom either based on feasibility or based on this condition that a lower bound at any node is greater than the current best upper bound. This is the first rudimentary branch and bound algorithm and computational experience with this branch and bound algorithm says that this is not very fast or effective. It evaluates many more nodes. Ordinarily, the bounding strategy comes from the summation of the row minimum consistently. It also takes much more nodes than we normally expect. The branching strategy is based on the node that has the smallest value of the lower bound; the calculation of the bound comes from the minimum. Are there branch and bound methods which are better than this branch and bound? Now, we will see a couple of more branch and bound algorithms to the Travelling Salesman Problem in the next lecture.
Info
Channel: nptelhrd
Views: 478,208
Rating: undefined out of 5
Keywords: Traveling, Salesman, Problem(TSP)
Id: -cLsEHP0qt0
Channel Id: undefined
Length: 58min 29sec (3509 seconds)
Published: Thu Jan 28 2010
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.