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.