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.