In this lecture, we will discuss the minimum
cost flow problem. The minimum cost flow problem is now described
using this numerical example. We consider the network that has five nodes and it has
all these arcs as described in this figure. Each of these arcs has an arch weight which
represents the cost of transportation or cost of flow associated with this arc. For example,
it costs 8 to transport a unit from 1 to 2, while it costs 6 to transport from 1 to 3.
In addition, we also have some values associated with these nodes.
Here b1 equal to 6 means that 6 units are available in node 1, zero units are available
in node 2, 4 units are available in node 3, 5 units are required in node 4, and the requirement
is shown by a negative number. Minus 5 indicates that 5 units are required in node 4 and again,
minus 5 indicates that 5 units are required in node 5. Nodes 1 and 3 are the supply nodes.
Supply nodes have positive quantities that are available. Node 2 is an intermediate node;
intermediate node has a zero, which can be seen either as a zero supply or a zero requirement.
4 and 5 are destination nodes and their requirements are given by these negative values.
At the moment, we can also observe that this is a balanced problem because total supply
is 6 plus 4, that is, 10 and total requirement is 5 plus 5, that is, 10. So, it is a balanced
problem. This problem has a set of nodes, some of which are supply points, some of which
are destination points, and some of which are intermediate points, also called transshipment
points. The problem is to transport a single commodity which are available with 6 and 4
here respectively, to 5 and 5 here, incurring minimum cost of transportation. This problem
is quite similar to the transportation problem that we have seen earlier, so let us compare
this with a transportation problem. If we compare this with a transportation problem
and if we consider, for example, a transportation problem with two supplies and three requirements
the similarities are that there are some supply points here. There are two supply points here,
there are requirement points here, and there is a cost of transportation. Now, the differences
here are: there are transshipment points or intermediate points and transportation problem
does not have any of these intermediate points. If there is a point in a transportation problem
it is either a supply point or it is a demand point; whereas, in this minimum cost flow
problem, we could have transshipment points, which are intermediate points. The other differences
we realize is that this is bipartite in nature, in the sense that there are edges that connect
this set to this set. But, we do not have edges connecting supply point or edges connecting
the demand points; whereas here we observe that there is an edge 1 3, which can supply
from 1 to 3 and then, subsequently transport it from 3 to something.
Similarly, there is an edge 4 to 5, 4 and 5 are demand points. It means something can
go to 4 and after reaching 4, it can be supplied back to 5; whereas, such a thing is not explicitly
modeled in a transportation problem. In a transportation problem, we do not have a scenario,
where from here, we can transport to this. Then, we go back and transport here; or from
here, we can transport to this point and then, we transport to this point. Such a thing is
not modeled in a transportation problem, but such a thing is modeled in the minimum cost
flow problem. Now, how do we solve this minimum cost flow problem? To do that, let us first,
write the primal and the dual associated with the minimum cost flow problem. The minimum cost flow problem will have a
primal, which is minimize double sigma Cij Xij, where Xij is the units transported from
i to j, Cij Xij is the total cost of transportation. For this supply node 1, we will have X12 plus
X13 is equal to b1. For supply node 2, we will have minus X12, that is, what enters
2 and what leaves 2 is plus X24 plus X25 equals zero. As far as 3 is concerned, minus X13
plus X34 plus X35 is equal to b3. As far as 4 is concerned, minus X24 plus X34 minus X45
is equal to b4 or minus 5, as the case may be. For node 5, minus X25 minus X35 minus
X45 is equal to b5 or minus 5, as the case may be. So, this is the primal associated
with the minimum cost flow problem. Also, realize that Xij is greater than or equal
to zero. This is not by definition a 0 1 or kind of an integer programming problem. It
is a linear programming problem. But we also know that if the problem is balanced,
as in this case, we have 6, 4, minus 5 and minus 5 here. If we add all the left hand
sides and all the right hand sides, we get zero equal to zero, indicating a linearly
dependent system of equations. We can also show that this particular matrix is unimodular
and therefore solving it as a linear programming problem would also give us solutions that
are integer values. Let us also write the dual associate with this problem. This formulation
has as many constraints as the number of nodes, there are five nodes, there are five constraints.
It has as many variables as the number of arcs in this network. The dual, we have to introduce dual variables
which are one for each of these constraints. In our case, we will introduce dual variables
w1 to w5. There are five nodes, five constrains in the primal, five variables in the dual.
The dual objective function will be to maximize sigma wj bj, so, w1 b1 plus w2 b2 plus w3
b3, and so on. Subject to the most important condition that every Xij appears in the i'th
constraint as well as in the j�th constraint, with a plus 1 coefficient in the i'th constraint
and minus 1 in the j'th constraint. We will have wi minus wj, the objective function value
here is Cij. The right hand side value here is Cij. It is a minimization problem, the
variables are greater than or equal to type. So, in the maximization problem, we will have
less than or equal to Cij. Then, we have wj, unrestricted in sign, because all these are
equations. The most important thing here is this particular constraint. This is a very
important kind of a constraint that we will have to look at.
This is quite similar to that of a transportation problem where we had ui plus vj is less than
or equal to Cij. In the minimum cost flow problem, we have this as wi minus wj is less
than or equal to Cij. We are also aware from this formulation, that if we add the left
hand side and the right hand side vertically, we get zero equal to zero, if it is balanced.
Our example is balanced so we get zero equal to zero which means it is a linearly dependent
system of equations. This also means that one of the dual variables has to be assigned
an arbitrary value and usually, we assign value equal to zero to one of the dual variables. How do we solve this problem?
We now explain the solution of this problem by taking a particular feasible solution and
then, checking whether that feasible solution is optimal. If not, what do we do to get to
the optimal solution? Let us start with a feasible solution where we put X12. Let us
start with a feasible solution, where we have X equal to 6 here, X12 is equal to 6, X24
is equal to 6, X34 is equal to 4 and X45 is equal to 5. This feasible solution will assume
that we are transporting 6 units from 1 to 2 and then 6 units back from 2 to 4. We transport
all the four to this, so 10 units reach node 4. 5 is consumed here, so the balance 5 will
go here, which is consumed. The cost associated with this feasible solution will be 6 into
8 48, 5 into 6 30, 78 plus 24 is 102, 102 plus 20 is 122. So, the cost associated with
this feasible solution is 122. We need to check whether this feasible solution is optimal.
To do that, let us go back and redo this network. We have 1 2 3 4 and 5. Now, here we have b
equal to 6, b equal to 0, b equal to 4, b equal to minus 5, b equal to minus 5. Now,
these represent the flow. I have X equal to 6, X equal to 6, X equal to 4, and X equal
to 5. The costs associated are 8, 5, 6, and 4 respectively. These four arcs represent
the basic variables associated with this basic feasible solution. There are five nodes and
this basic feasible solution will now have four arcs in the solution. If there are n
nodes, then the basic feasible solution will have n minus 1 arcs in the solution. We have
n minus one equal to four; there are four arcs in this solution. There are 4 arcs that
are kept here. This is also very similar to what we saw in the transportation problem
in the first course. If the transportation problem has m supplies
and n requirements, we said there will be m plus n minus 1 basic variable in the basic
feasible solution. If there are n nodes, we will have n minus 1 variables or n minus 1
arcs in the basic feasible solution. This basic feasible solution is represented here.
This represents the solution to the primal, a basic feasible solution to the primal. What
we do now is we start defining some dual variables. We first define here, w5 equal to zero.
We already said that because of this primal, if the problem is a balanced problem, we have
6 4 minus 5 minus 5. If we add the left hand side and the right hand side vertically, we
get zero equal to zero, which represents a linearly dependent system. Only if there are
n nodes, we have n minus 1 arcs in the solution and therefore, one of the dual variables has
to be given an arbitrary value. In the transportation problem, we are used to define u1 equal to
zero; whereas, in the minimum cost flow problem, we start defining w5 is equal to zero. For
w5 equal to zero, we go back and do this. We try to find out, use wi minus wj is equal
to Cij, wherever Xij is basic, which is nothing but the complementary slackness theorem which
is being applied here. Wherever Xij is basic, we now use wi minus wj is equal to Cij. Here,
Xij is basic. wi minus wj is equal to Cij. This would give us w4 equal to 4, such that
wi minus wj is equal to Cij. w4 takes a value of four, when w5 is defined as zero. So, wi
minus wj is equal to Cij. Coming back to this basic, wi minus wj, is
equal to Cij, which would give us w3 is equal to 10, wi minus wj is equal to Cij. Again
here, Xij is basic so, w2 is found out, such that wi minus wj is equal to Cij, would give
us w2 equals 9, such that 9 minus 4 is equal to Cij, which is 5. Please remember, wi minus
wj is equal to Cij. So, we would always take the cost coefficient associated with the basic
variable. We again, define w1 from this as wi minus wj is equal to Cij, which would give
us w1 is equal to 17. We have now evaluated all the dual values
by fixing w5 equal to zero, applying complementary slackness conditions here and using the condition
wi minus wj is equal to Cij, wherever Xij is basic. Having found out the ws using wi
minus wj is less than or equal to Cij, we go back and verify with the non-basic arcs
whether the duality constraint is satisfied or alternately, we try to find out wi minus
wj minus Cij for all the non-basic arcs. For this non-basic arc, wi minus wj minus Cij,
wi is 17, wj is 10, Cij is 6, so wi minus wj minus Cij is 1. So, 17 minus 10 is 7, 7
minus 6 is 1. Now, there is another non-basic arc. 2 5 is a non-basic arc, wi minus wj minus
Cij is 9 minus 0 minus 7, gives value equal to 2. There is another non-basic arc, which
is 3 5. wi minus wj 10 minus 0 minus Cij, which is 3, so 10 minus 3, you get 7 here.
wi minus wj minus Cij would give us 10 minus 3, which is 7.
We have computed that there are totally 1 2 3 4 5 6 7 arcs, out of which four arcs are
already basic, three arcs are non-basic and then, we have computed the value of wi minus
wj minus Cij. We observed that in all the three cases, wi minus wj minus Cij is positive
indicating that wi minus wj is actually greater than Cij. So, the present solution which is
to the dual, which is given by 0, 4, 10, 9, and 17 is not dual feasible, because for the
non-basic arcs, it violates this condition. Therefore, the one which has the maximum value
will enter the basis. We have already seen in linear programming
theory, that given a primal dual, given a basic feasible solution to the primal, we
can always evaluate the dual. Wherever the dual is infeasible, it means that the primal
is non-optimal and that particular variable can get into the basics. Out of these three,
the one that has the highest value, which happens to be 7 will now enter or get into
the basis. We enter this into the basis by giving an allocation theta to this. This gets
an allocation theta from here, which means this X equal to 4, will become 4 minus theta
and then, this will become 5 minus theta. This is a flow of theta, goes from 3 to 5.
Automatically, 4 minus theta will go here and 5 minus theta will go here. So, the best
value that theta can take is 4, beyond which, this will become negative. So, the best value
that the theta can take is now 4. The allocations changed as this X equal to 4 will go, this
X will become 1, 5 minus theta will become 1, and this will become X equal to 4. We have
a new solution with 6 flows here. Flow of 6 coming here, 5 goes into this, so 1 flow
here. This 4 automatically goes from 3 to 5. The costs associated with this solution
will be 6 into 8 48, 6 into 5 30, that is, 78, 78 plus 4 is 82, 82 plus 12, which is
94. There is a saving of 28 and that 28 come from the fact that Cj minus Zj is 7, theta
is 4, so 7 into 4 is 28, so 122, reduces from 122 to 94. Now, we check whether this particular
allocation is optimal and we do that by once again computing the w values. The solution here is X equal to 6. This is
the solution and the costs are 8, 5, 3, and 4. We again start with w5 equal to zero and
we use the condition, wi minus wj is equal to Cij. Therefore, w4 will become 4. 4 minus
0 is 4. Cij is 5 here, so, w2 will be equal to 9, 9 minus 4 equal to 5 and here, w1 will
be equal to 17, 9 plus 8, that is, 17. So, w3 will be equal to 3, 3 because wi minus
wj is equal to Cij. We have now computed the new dual variables associated with this particular
basic feasible solution to the primal. We again have to go back and check whether
this dual is optimal, which means we have to evaluate wi minus wj minus Cij for all
the non-basic variables. We first look at this non-basic set. This non-basic variable
1 3 wi minus wj minus Cij, 17 minus 3 is 14, 14 minus 6 is 8. For this, wi is 3, wj is
4, wi minus wj minus Cij would give us minus 5. 3 minus 4 minus 6 would give us minus 7.
wi minus wj minus Cij would give us 3 minus 4, which is minus 1 minus 6, is minus 7. For
this non-basic variable, wi minus wj minus Cij will be 2.
Out of the three values that we have computed, for wi minus wj minus Cij we find a positive
quantity here, we find a negative quantity here, we find a positive quantity here. The
positive quantities indicate that the corresponding dual constraint is violated and the most positive
one happens to come here and this will be the entering basic variable. The most positive
quantity here will be the entering basic variable. We have already seen that infeasibility to
the dual is non-optimality to the primal and the constraint that is most violated would
give us the highest Cj minus Zj. When it enters it will eventually reduce the cost further
for a minimization problem. We enter the variable X13 into the basics and we enter it with value
equal to theta. When we have a theta coming here, automatically, 6 will become 6 minus
theta and 6 minus theta comes in, 6 minus theta will come out, 1 minus theta will come
here. So, this theta will become 4 plus theta and the 5 will be balanced.
Out of these, the best value that theta can take is theta equal to 1. When theta equal
to 1, we are going to have a flow of 1 here. We will have a flow of 5 here, we will have
a flow of 5 here, we will have no flow here, and we will have a flow equal to 5 here. We
update that into this matrix, to get X equal to 5 here, we get X equal to 5 here. Here,
there is no flow, this will become X equal to 1, and this will become X equal to 5.
The costs associated with this will be 8 into 5, that is, 40, 5 into 5, that is, 25, which
is 65, 65 plus 6 is 71, 71 plus 15 is 86. I repeat, 8 into 5 is 40 plus 25 is 65, 65
plus 15 is 80, 80 plus 6 is 86. The difference is 8 here and that comes from Cj minus Zj
is 8, theta is 1. So, the product of Cj minus Zj and theta, which is 8 will be the gain
or improvement. So, 94 has come down to 86. We have to again check whether this particular
solution is optimal. In order to do that, we go back and compute this again. I have 1 2 3 4 5 nodes, have a solution X
equal to 5, X equal to 1, X equal to 5, and X equal to 5. This is the solution. We again
fix w5 equal to zero. We get w3 from wi minus wj equal to Cij. Cij is 3, so you get w3 equal
to 3. From here, wi minus wj is equal to Cij. Cij is 6, so you get w1 is equal to 9, 9 minus
3 equal to 6. Therefore w2 is computed such that w1 minus
w2 is equal to 8. Thus w2 will be 1, wi minus wj is equal to Cij. So, w2 is equal to 1 and
to compute w4, w2 minus w4 is equal to 5. So, w4 is minus 4, w2 minus w4 is equal to
5. So, w4 is equal to minus 4. In this way, we have calculated all the dual variables.
We also observed that one of the dual variables has become negative, because we have fixed
w5 equal to zero. Another way of looking at it is we can actually
fix w5 to a large value, so that it does not become negative. However, it does not matter,
because by definition of the dual, wj is unrestricted in sign. Therefore, a negative value for w4
is acceptable. We do not worry about the negative value that is coming in. We go back and check
whether this is optimal by looking at all the non-basic arcs.
We have a non-basic arc, which is this. wi minus wj minus Cij is minus 4 minus 0 minus
4, which is minus 8. We have another non-basic arc, which is here. wi minus wj minus Cij,
that is 1 minus 0 minus 7 is minus 6, and the third one comes here. wi minus wj minus
Cij, 3 minus minus 4 is 3 plus 4 7, 7 minus 6 is plus 1. Out of the three values that
we computed, there is a minus 6, there is a minus 8, and there is a plus 1. Plus 1 indicates
that wi minus wj is actually greater than Cij. Therefore, that variable now has to enter
the basis. When this variable enters the basis, we enter this with value equal to theta. Because
we have a theta here, this becomes 5 minus theta and because we have a theta that is
coming in here, this has to be 5 minus theta. That 5 minus theta plus theta equal to 5 which
goes and from here, this will become 5 minus theta, because you have 5 minus theta here,
we have 1 plus theta. This will remain as it is, nothing will happen here. This is how
the things will get allocated. For example, a theta coming here would mean,
this, nothing will happen to this, this will remain as 5. Theta coming here would make
this, 5 minus theta. So, that they add together and we get a theta here. This 5 minus theta
will force this 5 to 5 minus theta and this will make this 1 plus theta, so that the theta
comes into this, this 5 will not get disturbed. The best value that theta can take is theta
equal to 5. When theta equal to 5, this becomes zero, this becomes 6, this remains at 5, this
becomes theta equal to 5, and this becomes zero. So, the allocations will become, this
will be 0, this will also be 0, this will be 6, this will be theta equal to 5, 6 plus
4 is 10, so, this will remain as 5. This is how, the allocations will look like. Again
we have to go back. Now the cost associated with this will be 6 into 6 that is 36, 36
plus 30, which is 66, 66 plus 15 is 81. This is the cost associated with this. We need
to go back and check whether this is optimal and we do that. We have the solution 6, 5, 5. Right now, we
observe that there are three basic variables; whereas, we would like to have a fourth basic
variable as well. This represents a degenerate basic feasible solution to this problem. Let
us try and proceed, so this would give us w5 equal to zero. From this wi minus wj is
equal to 3, so w3 will be 3. This would give us w1 equal to 9, 9 minus 3 is equal to 6.
This would give us wi minus wj is equal to Cij.
This is X equal to 6, this is C equal to 6, this is cost equal to 3. So, here, cost equal
to 6, so wi minus wj is equal to Cij, so this will be minus 3. Then, we need to introduce
another dummy arc, so that we are able to get this value of 2. Let us, for the moment,
introduce this as the dummy arc. This would give us w2 equal to 1, because this is cost
equal to 8. We introduce this dummy arc into the solution with X equal to zero, so that
wi minus wj is equal to Cij. In order to check whether this is optimal, we have to now find
out the value of wi minus wj minus Cij for all the non-basic arcs. There is a non-basic
arc here, so minus 3 minus 0 minus 4 is minus 7. There is a non-basic arc here, 1 minus
0 minus 7 is minus 6 and the third non-basic arc comes from here. We get 1 minus minus
3 is 4, 4 minus 5 is minus 1. Corresponding to the three non-basic arcs,
the values are minus 1, minus 6, and minus 7 respectively. This means that this dual
is satisfied, so this solution is a dual feasible solution. We have a situation where we have
a basic feasible solution to the primal, the corresponding dual solution is feasible and
complementary slackness conditions are satisfied. Therefore, this solution is optimal to the
given problem. This is a degenerate basic feasible solution, so it is degenerate at
the optimum, but with minimum cost equal to 81.
The method that we have right now seen here is called the �network simplex method�.
It is called the network simplex method, because we do the simplex computations on the network
itself. It is very similar to the transportation algorithm with slight differences here and
there; particularly when it comes to updating the flow using this theta whereas in the transportation
problem, we are much more comfortable identifying the loop and then updating the theta.
Network simplex method is a very popular method to solve the minimum cost flow problem. Next,
what we see is that having seen the network simplex method, do we also try and observe
to see whether there is any other similarity between this and the transportation problem
with which we are extremely familiar and comfortable. Let us look at, can we solve this problem
as a transportation problem and we try to address
this particular issue. In fact, even before we get into solving the
transportation problem, we may look at a couple of other issues. Two or three things are required
to be looked at. Number one is we solved a balanced problem, now what will happen if
the problem is not balanced. This is balanced, because we had 6 plus 4, that is, 10. We have
minus 5 minus 5, which is minus 10. If the problem is not balanced, then we do the same
thing that we do in transportation. Create either a dummy source or a dummy destination,
so that it is balanced and then, create arcs into the dummy destination or from the dummy
source to all the other nodes with zero costs. That is a very convenient way of converting
an unbalanced problem into a balanced problem and solving this to optimality.
The second thing that we should also do is how we can get an initial basic feasible solution
to this particular problem. It is quite similar to the transportation, if we see carefully,
whatever we have seen as a network simplex algorithm is nothing but the uv method applied
to the corresponding transportation problem. In the transportation problem, we assume that
we had a starting basic feasible solution, using either the northwest corner rule or
the minimum cost method or the Vogel's approximation method.
Then, we use the uv method to try and get to the optimal solution. Here, we have the
network simplex method. This is very similar to the uv method with which we used. So, one
of the ways of trying to get an initial solution is by simply having one dummy arc somewhere
and connect all of them into the dummy with a slightly larger value. Then, create a solution
where all the flows go into that dummy arc and then, from there, they go to the destination
arc. It is like for example, saying I start with another node 6 here. All the flows, I
take from this to this, I can take from this to this. Then, I can go from this to this,
I can go from this to this, so I would get a basic feasible solution. Both the issues
of initialization and balancing can actually be handled this way for the minimum cost flow
problem. We get into the next thing to see whether, if there is a transportation equivalent
to the minimum cost flow problem? The answer is yes. What we can do is now, we create a five into
five transportation problem, 4 0. Let us consider this transportation problem, now nodes 1 and
3 are supply nodes, with values 6 and 4 respectively. Nodes 4 and 5 are demand nodes or destination
nodes. So, they have values 5 and 5 respectively. We create a 5 into 5, because there are five
nodes in this; diagonal values are all zero. Now 1 to 2 is 8, 1 to 3 is 6, so 1 to 2 is
8, 1 to 3 is 6. Wherever we have an i to j, put the corresponding Cij value. Wherever
you do not have an ij, put a big M. Big M in the usual way is large positive and tending
to infinity, the same way that we have used big M in transportation and in simplex. That
way, we can create this cost matrix to the transportation problem. These values are 6
and 4, which are the supply values; 5 and 5, which are the requirement values. The problem
is balanced with total equal to 10. What we do is simply add that 10 to all of them. This
becomes 16, 10, 14, and 10. This will become 10, 10, 10, 15, and 15 respectively.
We have created the transportation problem and now, we can solve this transportation
problem using the standard Vogel's approximation, followed by uv or any other method with which
we can solve it. If we do, we will get a solution which is like this. This will be our solution
to the transportation problem. We need to interpret this solution and try and get this
particular solution. What happens is, ordinarily because we have put zero costs here, diagonal
10 is expected to happen, because we put zero cost here. We have added 10 to every element
here and to every element here, so we would expect to have a 10 allocation across the
diagonal. But because transshipment happens, which means if you look at this final solution;
from one source it goes to one source and then, it goes to the destination. It goes
to a destination, so transshipment happens; therefore, we realize it is actually cheaper
in terms of total cost to transport less than 10 here. This means that there is some transshipment
happening, a diagonal allocation, which is less than 10. This would mean that there is
some transshipment that is happening. The solution is straight away given here as
X13 equal to 6, X34 equal to 5, and X35equal to 5, which is actually our solution. Because,
we have this X13 from one, one supply point to another supply point 6 is moving. Automatically,
the diagonal gets reduced by that quantity, you got a 4 here. This would also give us
Z equal to 81, which is the same that we got here. The minimum cost flow problem as we
have seen can be solved either by the network simplex method or by a transportation problem.
This type of transportation problem is called �transshipment problem�. This transshipment
problem will always have a square structure, where the number of effective supplies and
effective demands will be equal to the sum of the actual supplies and actual demands.
In this case, are with equal to the number of nodes in the network. There are five nodes
in the network, so it becomes a 5 into 5. There are two supply points and two demand
points, but since there are five nodes in the network, we get a 5 into 5 transportation
problem, also called the transshipment problem. A diagonal assignment less than the max would
mean that there is some kind of a transshipment happening. You are shipping goods from one
supply to another supply and from there, it goes to the demand points or from one demand
point to another demand point, whichever is optimal to the given problem. While the transshipment
structure of solving this problem looks a little more appealing at this point, this
is may be because of our familiarity with the transportation problem and the ease of
doing it. The network simplex provides a way by which we can actually show all these computations
in the figure or in the diagram and then, motivate ourselves to develop an algorithm,
which uses exactly the duality property associated with the minimum cost flow problem. This is
convenient but this kind of makes the converts the given minimum cost flow problem into a
transportation problem and then, uses ideas from transportation problem to solve this.
That brings us to the end of our discussion on the minimum cost flow problem and network
problems in general, but then we would also like to see something. Over this course, we
have seen few network problems we started with the transportation and the assignment
problems earlier. We started with transportation assignment, shortest path, max flow, and min
cost flow. So we have seen five problems, two of these in the earlier course and three
right now, as part of this course. What are the relationships among these particular problems?
Let me explain the relationship among all these.
Let us look at some kind of a master problem, where we are transporting a single commodity.
Let us say, I have a set of supply nodes, I have a set of intermediate nodes, and I
have a set of destination nodes. I can have connectivity among the supply nodes, I can
have connectivity here, and I may have connectivity here. All these will have supplies, so, b
greater than zero. All these are requirements with b less than zero, all these are intermediates
with b equal to zero. We call this as set S1, we call this as set S2, and we call this
as set S3. There is a Cij associated with this; we may have a capacity restriction also.
We may have a Uij associated with this. This problem of trying to minimize the total cost
will now become minimum cost capacitated flow problem, if we use the Uij. But the problem
that we solved right now did not have Uij, so it becomes minimum cost uncapacitated problem.
If we take this particular problem and if Uij equal to infinity, it means there are
no capacity restrictions. We also have a structure S2, a null set, which means there are no intermediate
nodes and we are not going to allow this kind of transshipment among the supplies, and so
on. Then, the problem becomes a transportation problem. If we do not allow transportation
within the set S1 and S3, then it becomes a transportation problem. In this special
case, if we have cardinality S1 equal to cardinality S2 and if we have all ai equal to bj equal
to 1. This means, if there are ai is the supply associated with the i'th node here, bj is
the demand associated with the j'th node here. There is no intermediate set, so S2 is a null
set. Then, we have a cardinality of S1is equal to cardinality of S3, which means the number
of supply points here is equal to the number of demand points here. Then, this problem
becomes an assignment problem. Number three is, if we have only one supply point here
and we have one destination point here, and a whole set of intermediate points. Case three,
when equal to 1, S2 exists, so there are intermediate points, but there is only one supply point
and one destination point, and all Uijs equal to infinity, which means that there are no
capacities, then this problem becomes a shortest path problem. The minimum cost path that connects
this to this, via the intermediate nodes, would give us the corresponding shortest path
problem. Then, number four, if S1 equal to S3 equal
to 1, there is one source and one destination, with all the costs Cij equal to minus 1 and
Uij is not equal to infinity, which means there is a capacity associated with this.
Cost is minus 1, there is only one supply point, one destination point, then this problem
becomes the max flow problem. Ensure that you observe that the Cij equal to minus 1,
would make it minimize minus double sigma Xij, which would make it maximize sigma Xij
in a certain form. You would get it closer to the maximum flow problem. If Uijs do not
exist, then it becomes a min cost uncapacitated flow problem. If Uijs exists, it becomes a
minimum cost capacitated flow problem. These are the various network problems that we have
seen and we now show that all these are special cases and versions of the minimum cost capacitated
flow problem. Network problems are important from the point of view that number one, all
network problems have unimodular structure. Therefore, it is possible to develop special
algorithms, which exploit certain conditions and properties of the particular network problem,
so that we can solve the network problem much faster than we would do by applying simplex.
Because of unimodularity property, even if they are integer programming problems, they
can be solved as linear programming problems to yield integer valued solutions. We can
always come up with special algorithms, which exploit the special structure of the problem
and solve it efficiently. For the transportation, we have seen largely
the uv method, which adds up from the other three methods. Here, we had seen the Hungarian
method; here, we had seen the Dijkstra's algorithm and its extensions. Here, we have
seen the flow augmenting path algorithm, which also related the max flow to the min cut and
here, we saw the network simplex algorithm. Network models or network problems provides
us with an opportunity to exploit the special structure of each of these network problems
and then, come up with very specific algorithms, which will solve each of these network problems.
Network problems have extensive applications. Several OR problems can be modeled as equivalent
network problems. We have already seen that a single commodity transportation problem
is an extremely valuable problem to solve. In today's context, where there is so much
emphasis on transportation distribution logistics and supply chain management, the use of the
transportation algorithms is actually increasing. Assignment problems are extremely important.
Assignment problems help us assign people to machines, machines to jobs, people to jobs,
and people to projects or any other form of assignments, operators to machines in a manufacturing
context, and so on. It even helps us assign railway locomotives to platforms, rakes to
trains physically, the airplanes to the various flights and so on. These have extensive applications,
particularly in the transportation industry, the airline industry, the railways industry,
and so on. Shortest path problems are well known. Shortest
path problems help us to find the least cost route from one place to another. It is used
extensively in transportation, people movement, journey from one place to another very special
types of problems are formulated as shortest path problems. Some shift allocation problems
become shortest path problem, some equipment replacement problems can be modeled as shortest
path problems, particularly shortest path problems involving two parameters, such as
cost and time. The constraint shortest path problems, successive shortest path problems
find extensive use in the transportation airline and other communication industry.
Maximum flow problem is quite useful. In fact, we can even solve the assignment, Hungarian
the part of it as a max flow problem, the place where we have to draw lines to that
cover all the rows in assignment can be looked upon as a max flow problem. Max flow problem
can be used in applications such as housing allocations. Minimum cost flow problems are
also useful. They have extensive applications in allotting people to machines, jobs particularly,
if they have some preferences, and particularly, if people are into different categories and
people from these categories have to be allocated to various jobs.
Network models have extensive applications and the best part of the network model is
the fact that not only they can be solved as LPs to get integer valued solutions, they
also have special algorithms with which we can solve them. With this, we end the discussion
on the network problems. We will look at the travelling salesman problem in the next lecture.