In today's lecture we continue our discussion
on sensitivity analysis. In the last lecture we had seen the effect of changes in the objective
function value for a non basic variable as well as for a basic variable. This is the
example problem that we had discussed in the last lecture. This is the optimum simplex table. Earlier
we first looked at changes in objective function coefficient of a non basic variable. We considered
variable X2 and worked out. Then we looked at change in objective function
coefficient of a basic variable. We made a change in X1 and we worked out the effects
of the change. Today the first thing we would do is to see what happens to the solution
if the right hand side values changes. One of the right hand side values changes or both
can change. The right hand side vector is given by b = 9,
12. We now assume that this 9 is going to change to some value and therefore we start
with b1 here and 12. If this 9 becomes b1 then the effect of this change will only be
seen in the right hand side values. These right hand side values will change. We now know that right hand side value is
= B inverse b and we have already seen that corresponding to the basis X3, X1. We can
read B inverse directly from the simplex table. You could read B inverse from 2/5, - 1/5,
- 1/5 and 3/5 into b 1, 12. So the right hand side values will become (2/5b1 - 12)/5 or
2b1 - 12/5, 36 - b1/5. If b1 is such that these are greater than or equal to 0 then
we have the primary feasible as well as dual feasible and the present set of basic variables
will be optimal with the corresponding value here. For example if we substitute b1 = 9
which is in the original problem so 18 - 12/5 is = 6/5, 36 - 9 is = 27, 27/5 is what we
have here. This would mean that (2b1 - 12)/5 greater than or equal to 0 gives 2b1 - 12
greater than or equal to 0; b1 - 6 greater than or equal to 0; b1 greater than or equal
to 6. 36 - 5, (36 - b1)/5 greater than or equal to 0 would give b1 less than or equal
to 36. As long as b1 is within the range 6 to 36,
6 less than or equal to b1 less than or equal to 36, the present set of basic variables
will remain optimal with values to (2b1 - 12)/5, (36 - b1)/5. We need to substitute the values
of b1 in this to get the right hand side. Now the b1 violates outside of this range.
Then one of these will become negative. For example when b1 is 40 then right hand side
will become 80 - 12/5 which is = 68/5 and - 4/5 Now if b1 is = 40, then these will change
and this will change to 68/5 and - 4/5.Now the value of the objective function will also
change. We do not write the value here because right now we have a negative here which means
we have an infeasible solution. Now this solution is infeasible. The primal is infeasible but
the dual is feasible therefore we can perform a dual simplex iteration till we get to the
optimum. We leave out this variable, we compute theta. Therefore - 18/5 divided by 7/5, we
do not evaluate theta here because there is a strictly positive value. Pivot element should
have a negative. - 6/5 divided by - 1/5 is 6. Here again, we do not evaluate because
of the positive value. There is only one candidate to enter. So variable X4 enters and replaces
variable X1. Now that is shown here in this table. Now you realize that variable X4 has entered
the basis and variable X1 leaves the basis and we perform one dual simplex iteration.
At the end of iteration we have a solution X3 = 12; X4 = 4; Z = 48. The optimum solution
after this change is X3 = 12; X4 = 4; Z = 48. It happens that within one iteration we are
able to get the optimal solutions for this. Wherever there is a change in the right hand
side values, the effect of the change is seen in the right hand side value in the last iteration
the simplex algorithm. We need to evaluate that by doing this. Right hand side becomes
B inverse b and then for the given value if one of them becomes negative, as we saw here,
when b1 = 40, this became negative and then we continue with dual simplex iterations till
we reach the optimum. Now the next thing is that we will see is
what will happen if there is a change in the change in the constraint coefficient of a
non basic variable.If you do that let us go back and write the original simplex table
with the values here. Let us consider a non basic variable X2 here and let us look at
a change in the coefficient of this variable in any one of the constraints which means
we are looking at a change either in this 2 or in this 3. In order to do that let us
consider a change here. Let us assume that this number 3 becomes something else. So what
happens here is P2 from the original problem now becomes 2, a. Now when this 3 changes
to a value a, now what will happen to the optimum table?
When this changes, this becomes 2a instead of 2, 3 this will also change because this
is P bar 2 = B inverse P2. B inverse can be read from the table. We get 2/5, - 1/5, - 1/5,
3/5 into 2a which will give us 4 - a/5, 2/5 into 4/5 - a/5 So 4, - a/5, - 2/5, + 3/5 a,
so 3a - 2/5. This will become (4 - a)/5, (3a - 2)/5 and because of this change this C2
- Z2 will also change. So we evaluate C2 - Z2 = C2 - YP2; C2 is 3
- y. y can be read again from the simplex table. y represents the value optimum solution
to the dual 6/5, 7/5 under the primal slack variables so 6/5, 7/5. P2 has changed to 2a.
This becomes 3 - 12/5 - 7a/5 which is 3/5 - 7a/5. Now if a is such that 3/5 - 7a/5 is
negative then this will become negative and the present solution will remain optimum.
Such a change will not have any impact on the optimal solution. For example for the
present value of a = 3 we would get 3 - 21/5 which is - 18/5 therefore it remains as negative.
If a is such that this term becomes positive then this will become positive and a variable
X2 will enter so if we consider for example a = 0, then C2 - Z2 will be 3/5. P bar 2 will be 4/5 and a is 0 - 2/5. So when
a, is = 0 which means when this 3 becomes 0 then we will have 4/5 - 2/5 and we will
have + 3/5. Because of this + 3/5, variable X2 will enter the basis we need to find out
theta for the leaving variable. 6/5 divided by 4/5 is 3/2, 27/5 divided by negative therefore
we do not divide. This becomes dash. This variable leaves the basis. Variable X2 enters
and variable X3 leaves the basis. We need to do simplex iterations till we get to the
optimal and that is shown here. Variable enters with 3/5; Cj - Zj = 3/5 and
variable X3 leaves with theta 3/2 which is shown by the arrows and in the next iteration
we have X2 and X1 as basic variables with the solution X2 = 3/2; X1 = 6 and Z = 57/2.
The optimum solution is X1 = 6; X2 = 3/2 with Z = 57/2. We get the optimum once again in
one iteration for this example. In summary if we have a change in the coefficient of
a non basic variable in any of the constraint, then that will be reflected by change in Cj
- Zj for that non basic variable and change in the P bar in the corresponding column in
the optimum simplex table. If the Cj - Zj becomes positive because of the change, the
variable enters the basis and we perform or continue to do simplex iterations till we
get to the optimum. Now let us look at one more thing here. Let
us look at something called adding a new product. Let us look at adding a new product. Let us
go back to the optimum simplex table that we had. Now the original problem has three variables
X1, X2 and X3. Let us assume that these represent some decisions with respect to producing three
products 1, 2 and 3 respectively. We have set up the problem and we have found the optimum
solution using the simplex algorithm. Let us assume that we want to introduce a new
product into this and let us call that new product by a variable X6 because X4 and X5
will be the slack variables corresponding to these two. We now introduce a new variable
X6 which represents a new product. A new product is characterized by its contribution in the
objective functions as well as the values in these two constraints. Let us assume that
C6 which is the objective function coefficient corresponding to the new product X6 is given
by 6 and the constraint coefficients in both the constraints 1 and 2 which is given as
P6 is given by previous table 1 and 3. The problem becomes 4X1 + 3X2 + 5X3 + 6X6 subject
to X1 + 2X2 + 3X3 + X6 less than or equal to 9; 2X1 + 3X2 + X3 + 3X6 less than or equal
to 12. Now should we solve the problem all over again
because of the introduction of a new variable or can we make these changes? How these reflect
itself in the optimum simplex table and on addition of a new product can we proceed from
that? We can proceed from the simplex table. To do that, let us just create another column
for X6. X6 the right hand side values will remain as it is 6/5 and 27/5. We need to find
out P bar 6 and C6 - Z6. In order to do this P bar 6 first, we have to find out C6 - Z6
to see whether there is an effect. C6 - Z6 is = C6 - YP6. 6 - C6 is 6, y is the optimum
solutions to the dual which can be seen under the primal slack variables so 6/5, 7/5 with
the minus sign of course. P6 is the requirement of the resources 1 and 3 so C6 - Z6 is now
6 - 6/5 - 21/5. This is 6 - 27/5 which is 3/5. Now if we can
make a product which is 4, reflected by a variable X6 which can give us a unit contribution
of 6 and requires 1 and 3 respectively of these resources. Now under the present optimal,
since C6 - Z6 is positive then this variable X6 will enter the basis and it is profitable
to make the new product. So this becomes 3/5. Now this will enter. In order to find the
leaving variable, we need to know these two values which is the corresponding column in
the optimum simplex table which is here. P bar 6 is given as B inverse P6. We have already seen that any P bar j is B
inverse Pj. P bar 6 is B inverse P6. B inverse is seen under the identity corresponding to
the slake variables in this case. Variables X4 and X5 had identity matrix. B inverse is
2/5 - 1/5 - 1/5, 3/5 into P6 is 1 and 3. You get 2/5 - 3/5 is - 1/5 - 1/5 + 9/5 is 8/5. So you get - 1/5, 8/5. This has 6. Now variable
X6 enters the basis. To find out the leaving variable we need to compute theta 6/5 - 1/5.
We do not compute theta because we have a negative number here 27/5 divided by 8/5 is
27/8. So this variable X1 leaves and variable X6 enters. That is show in the table here. So we started
with X3, X1. When we introduced a new product X6 with objective function coefficient 6,
you can see that above X6 and Cj - Zj is 3/5. For the given values contribution 6, requirements
1 and 3, we compute Cj - Zj to 3/5 and variable X6 enters. We compute P bar j = B inverse
Pj - 1/5, 8/5.The same value is here that you see in that table. Variable X6 enters
the basis and variable X1 leaves the basis. The next simplex table has X3 and X6 with
values 15/8 and 27/8 after one simplex iteration objective function is two 37/8. The optimum
solution is X3 = 15/8; X6 = 27/8; Z = 2 37/8. So in this case adding a new product is profitable
and we add a new product. If we turned out that C6 - Z6 were negative then we will not
enter variable X6 and say that it is not advisable to produce the new product and the present
solution would remain optimum. The next thing that we will see is adding a new constraint. Let us write the simplex table without the
new product. Let us look at this problem again and the
optimum solution. We have solved this problem for these two constraints. At the end, after
getting the optimal solution, we realize that the other constraint has to be included. Let
us assume that inadvertently, we have left out the constraint or suddenly we realize
that there is another resource that may be needed which has not been taken into account
which results in a new constraint coming in. If such a new constraint is introduced once
again we need to know whether we should solve the problem optimally. Is it possible to go back to the optimum table,
make the changes with respect to the new constraint in this table and can we proceed from here
towards the optimum? Let us consider a new constraint. Let us have new constraint which is this.
We get X1 + X2 + X3 less than or equal to 8. Let us look at a constraint X1 + X2 + X3
less than or equal to 8 as a third constraint. If we look at this constraint let us go back
and see whether the optimal solution here satisfies this constraint.
X1 = 27/5; X3 = 6/5; X2 is non basic at 0. X1 + X2 + X3 left hand side is 33/5 which
is less than 8. This constraint is satisfied. When this constraint is satisfied you could
go back and say that this constraint will not have any impact on the optimal solution.
The optimal solution will remain as X3 = 6/5; X1 = 27/5; Z = 138/5. When a new constraint is introduced we first
think we need to verify whether the present optimal solution satisfies the constraint
or not. If it satisfies the constraint then in spite of the inclusion of the new constraint,
the original solution will remain optimal. If on the other hand the new constraint had
been X1 + X2 + X3 less than or equal to 6, then we realize that X1 + X2 + X3 the left
hand side is 33/5 which is more than 6. The present optimal solution violates this constraint
and because it violates this constraint, this constraint will have an impact in the solution
and we need to do that. We write the new constraint as X1 + X2 + X3
less than or equal to 6. X1 and X3 are basic variables. Write the basic variables in terms
of the non basic variables so X1 + 1/5X2 + X3 + 2/0X1 + 1/5X2 + 1X3 + 2/5X4 - 1/5X5 = 6/5
1X1 + 7/5X2 - 1/5X4 + 3/5X5 = 27/5 X1 is written from this equation as 27/5 - 7/5X2
+ 1/5X4 - 3/5X5 + X2 X3 is written from this equation as + 6/5
- 1/5X2 - 2/5X4 + 1/5X5 less than or equal to 6
Let us go back and look at all the right hand side values 27/5 + 6/5 is = 33/5. We take
it to the other side, we get less than or equal to - 3/5.
Let us look at all the X2 values - 7/5 + 1 is - 2/5 - 2/5 - 1/5 is - 3/5 X2,
Let us look at X4 + 1/5 - 2/5 is - 1/5 X4 and let us look at X5 - 3/5 + 1/5 is - 2/5
X5 less than or equal to - 3/5 or the less than or equal to constraint. So we add a slack
variable to convert it to an equation. We get - 3/5 X2 - 1/5 X4 - 2/5 X5 + X6 which
is now the slack variable. To convert this to an equation = - 3/5 so this is how the
new constraint gets reflected in this table. We include this into this table; we add another
row here with variable X6 which is slack variable that comes in. We add another column here
for variable X6. The right hand side values will remain the same, 6/5, 27/5, 138/5. The
Cj - Zj values will remain the same, 0 - 18/5, 0, - 6/5, - 7/5. We write this constraint.
This is 0X1 - 3/5X2; 0X3 - 1/5X4 - 2/5X5 + X6 = - 3/5.
These two will not have X6. Therefore X6 will have 0 0 1, identity column. X6 will be introduced
here. It is a slack variable with an objective function coefficient of 0 and Cj - Zj of C.
If the new constraint is binding as it is in this case, if the new constraint is violated
by the existing optimal solution then this will get reflected as another constraint in
the simplex table. The important thing is that when we write this and when we introduce
a slack variable which becomes a basic variable with the identity column then we will have
a negative value here. This negative value indicates that the present
constraint is binding or the newly introduced constraint is violated by the existing optimal
solution. For example if we had X1 + X2 + X3 less than
or equal to 8 with which we started which was satisfied by the present optimal solution
6/5, 27/5. So we said when a new constraint is introduced the first thing to do is to
check whether the new constraint is satisfied. Only if it is violated we go back, write it
in terms of the existing basic variables and write this equation. In case we had not checked
whether it is violated or not, for example if we had simply taken this eight here and
carried out this exercise then you would realize that we would have a positive value here which
means that the present solution is optimal. When the constraint is satisfied by the present
optimal solution, we leave it as it is or even if we take the trouble of converting
it and seeing its effect in this simplex table we would get a feasible solution here indicating
optimum. Only when the newly added constraint is violated by the present optimal solution
we will get a negative here and that is when we do this exercise. (To get a negative here)
.The negative here is a check for us that this constraint is not satisfied by the present
optimal solution. With this we perform a dual simplex iteration because the feasibilities
conditions are affected, the optimality condition remains intact. So we perform a dual simplex
iteration so variable X6 leaves the basis and we need to find out an entering variable
which is theta. Now to do that we go back and check - 18/5 divided by - 3/5 is = 6,
- 6/5/ - 1/5 is = 6, - 7/5 divided by - 2/5 is 7/2. So for all the 3 negative Cj - Zj
values, we have negatives here. So compute the theta and then we enter the variable which
has minimum theta. Variable X5 enters the basis, X6 leaves the basis and we do a dual
simplex iteration that is shown here. The effect of the constraint, the first thing
we did is verified that this constraint is violated by the present optimal solution. We did all these calculations or computations
and then wrote the new constraint. That is reflected here as an additional third constraint
in the optimum table. It is also shown here. These results in an
introduction of a new row corresponding to the new constraint as well as a new column
corresponding to a slack variable associated with the new constraint. We have one more
row and one more column. The slack variable becomes a basic variable here and the corresponding
right hand side is negative which indicates that the newly added constraint is binding.
This is violated by the present optimal solution. We go back and then perform a dual simplex
iteration by leaving out variable X6 and entering variable X5 and within one iteration we get
the optimum solution which is X3 = 3/2; X1 = 9/2 and X5 = 3/2 with Z = 51/2 which is
shown here. There is one more aspect of sensitivity analysis
which we have to look at. What happens to change in constraint coefficient of a basic
variable? When we do that we go back and write the optimum table as it is. The last thing that we need to look at in
sensitivity analysis is what happens if a constraint coefficient of a basic variable
changes. For example we have variables X1 and X3. X1 has coefficients 1, 2 in the two
constraints. X3 has coefficients 3, 1 and these two constraints.
Earlier we looked at change in constraint coefficient of a non basic variable. We took
variable X2 and we said with this changes to a and so on. Now we are looking at what
will happen to the problem. If for example this number changes to or this or this or
this. When any of these changes take place that is if a basic variable's coefficient
in a constraint changes, then the answer is do not perform sensitivity analysis. Solve
the problem all over again. Only in this case when there is a change in the coefficient
corresponding to a basic variable in any constraint, the answer is do not perform sensitivity analysis. Do not try to see the change in this. But
solve the problem all over again. Why? In all the things that we have seen so far, there
are many aspects of sensitivity analysis. Let us write all those here. The various aspects that we have seen in sensitivity
analysis is, change in the objective function coefficient of non basic variable, two changes
in objective function coefficient of basic variables,
Change in right hand side values, constraint coefficient of non basic variable, adding
a new product and adding a new constraint. In all these
six, we reflected the changes in the optimum table and continue either with simplex iterations
or dual simplex iterations. The reason we could do this was the B inverse was intact.
Any of this change did not change the basis corresponding to X3, X1. Any one of this six
changes would still keep the basis corresponding to X3, X1 as 3 1 1 2. The basis remained intact.
These changes did not affect the basis. Because of that these changes were reflected either
as changes in the right hand side values or effectively changes in the Cj - Zj. These
changes could be written in terms of B inverse. Right hand side values where B inverse B.
Cj - Zj was Cj - CB B inverse Bj B inverse did not change and B inverse could
be read from the optimum simplex. When we make a change here, the basis changes and
because the basis B changes, the B inverse also changes.
This means every element in this would change and there is likelihood that we may get a
negative as well as a positive here. We may have a situation where both the feasibility
and the optimality condition could be violated. Whereas will all these changes if at all there
is a violation it would be either the feasibility violation or the optimality violation. Because
of the possibility that due to change in basis, B inverse changes and the entire matrix changes
which could give us for example a situation where we have infeasibility here and non optimality
here. We do not want to start with a matrix which is both infeasible as well as non optimal.
It is customary that we do not perform sensitivity analysis if we have constraint coefficient
of a basic variable changing. Let us go back and summarize the various aspects of sensitivity
that we have seen. We have seen six aspects of it. So if there
is change in the objective function coefficient of a non basic variable that gets reflected
in Cj - Zj value of that variable and only thing that could happen is that variable could
enter the basis. We looked at simplex iterations till we reach the optimum. Objective function
coefficient of a basic variable would be reflected in Cj - Zj of all non basic variables and
then we could do a simplex iteration to solve. Changes in right hand side would mean changes
in the right hand side again in the optimal solution. It could get a negative right hand
side so we use dual simplex iteration to solve. Constraint coefficient of a non basic variable
would mean Cj - Zj of that variable and if that variable enters, we looked at a simplex
iteration. Adding a new product would mean Cj - Zj of
that product which is presently non basic. We could use simplex to proceed. Adding a
constraint would mean constraint violated. So right hand side is negative and we could
use dual simplex. That is summarized in this table. We have this table summarizing the various
changes that could take place that could be modeled in using sensitivity analysis. These
are the six that we have seen and these are the corresponding methodologies which could
take you to simplex or dual simplex respectively. Now all these six changes where possible because
we said the B inverse did not change the basis. B inverse did not change. B inverse could be read from the optimum simplex
table. We know that for a maximization problem when the optimum simplex table is known then
we could read the B inverse from where we had the identity matrix in the first iteration.
For example if we had started this problem from the beginning, we would have seen variables
X4 and X5 would be the slack variables and they would be the initial basic variables.
Under X4 and X5 you could see B inverse. If we had a minimization problem with all greater
than or equal to then we need to know where in the simplex we could see the B inverse.
If we had a minimization problem then our simplex iterations would look like this. Example, if we have a minimization problem
with three decision variables then we would have had X1, X2, X3, X4, X5, a1 and a2 and
right hand side we would (assuming we would have added greater than or equal to constraint)
have added to artificial variables. We would have started the simplex iteration with the
a1, a2 with the coefficients here with a, - 1 0 0 - 1 under slack and a 1 0 0 1 here
with the right hand side. Under the artificial variables in the optimum iteration you would
see B inverse if we did or used a big M method to solve. If assuming that we either have
problems with all less than or equal to constraints or if we had any other combination, then we
would be using big M method to solve. Then wherever identity we had in the original table
then under that table you would see for example, this is the last table then your B inverse
will be here. Because this had a - i, you would have a - B inverse under the slack variable.
This is something that we need to know if you want to do sensitivity analysis using
the matrix method that we have seen. B inverse, the location or where we find B
inverse in the simplex table is something that we need to know. If we have an all less
than equal to constraint problem then the slack variables would become the starting
basic variables. Under the slack we have here under X4 and X5. If we had any other combination
of constraints, either mixed or with greater than or equal to, then we would be adding
suitable artificial variables and using the big M method. Wherever we had had, the identity
matrix we would see the B inverse under that. If we had only greater than or equal to then
both the artificial variables would qualify to be the basic variables in which case the
artificial variable portion will have the identity matrix. The slack variable portion
will have - i. Under the artificial variable you see B inverse.
Under the slack you will see - B inverse. In summary we use sensitivity analysis to
try and evaluate changes in the problem. We need not solve the problem all over again.
If there are changes in the objective function coefficients both basic variables and non
basic variable, if there are changes in the right hand side, if there is a change in the
constraint coefficient of a non basic variable, if we add a new product which means we add
a new variable into the problem and if we add a new constraint and if the constraint
is binding in all these situations, the six situations that we have seen. We need not
solve the problem all over again. We could reflect the changes that have taken place
in the problem into the optimum simplex table. Using the matrix equations proceed from the
optimum simplex table either by using a simplex iteration or a dual simplex iteration depending
on where the changes are. The only situation where we need to do workout the problem all
over again, is when there is a change in the constraint coefficient of a basic variable.
For our example since X3 and X1 are basic variables, if there is any change in the constraint
coefficient, either here or here or here or here then we need to solve the problem all
over again. Now this brings us to the end of what is the linear programming portion
of the course. Let us spend couple of minutes for a quick
recap to look at the number of things that we had learned in the linear programming portion
of this course. The first thing we did was we learnt the formulation.
In the formulation part of the course, we learnt how to write or convert a real life
situation into a mathematical model and then we defined the linear programming problem.
We defined basic terminologies such are decision variables, objective functions, constraints
and non negativity. We said a problem is called linear programming problem if it has a linear
objective function subject to linear constraints and non negativity restriction. We also classified
or found out that the we could have two types of objective functions maximization and minimization,
three types of constraints less than or equal to greater than or equal to and equations
and three types of variables greater than or equal to less than or equal to and unrestricted.
Then we looked at solving the linear programming problem. Under solution we saw three aspects
the graphical method which is applicable to a 2/2 problem or applicable to any two variable
problem irrespective of the number of constraints. We saw the algebraic method and then we saw
the simplex method. We saw the graphical method and we found it suitable if there are two
variables. We looked at the algebraic method which evaluates all basic feasible solutions
and then we looked at simplex which does not evaluate all basic solutions and evaluates
fewer than the many basic feasible solutions. It then improves as we proceed and then we
continued our discussion on the simplex by looking at initialization, iteration and termination
aspects of the simplex algorithm and then we also learnt how to standardize or how to
initialize into a simplex table if you have mixed type of constraints and mixed types
of variables. Under iteration, we learn degeneracy and under termination we looked at alternate
optimum, unboundedness and infeasibility and bit of cycling of course. So we looked at
the three aspects alternate optimum unboundedness and infeasibility. Later we looked at duality
and showed that every linear programming problem has another associated problem called the
dual of the linear programming problem and we also said that the given problem is called
the primal and the other problem that we write is called the dual. Then we also saw how to
write the dual for different primals given for example minimization, mixed type of constraints
and different types of variables. Then we looked at duality theorems. We looked at the weak duality theorem, optimality
criterion theorem and the main duality theorem. We also had an economic interpretation of
the duality. We said what the dual variable means physically, mathematically, algebraically
etc and we also saw the dual simplex method and dual simplex method that can be used if
we have all greater than or equal to constraints and then we also for example in duality we
looked at the relationship where the primal and the dual will have optimal solutions. If they have optimal solutions, the optimal
solutions will have the same value of the objective function and then we also said that
if primal and dual have feasible solutions then both have optimal solutions with the
same value of the objective function etc. That also brings us to the relationship between
unboundedness and infeasibility as far as these problems are concerned. For example if the primal maximization problem
is unbounded then the dual is infeasible and if the primal is infeasible
then the dual is unbounded or infeasible. We did not see these results explicitly earlier
but these also follow as a result of our discussion on duality. From the duality theorems, one
can understand that it is the primal to which the maximization problem is unbounded. The
dual is infeasible and the primal is infeasible, dual is either unbounded or infeasible. Under
duality we also looked at the dual simplex algorithm that helps us solve problems with
all greater than or equal to constraints, algorithm which assumes or which can be used
if the optimality condition is satisfied and the feasibility condition is violated.
Then we also learnt the complementary slackness conditions and we said that the simplex algorithm
not only solves the primal but also solves the dual and can give the optimal solution
to both primal and dual. Then we applied the complementary slackness to all intermediate
iterations of this simplex and showed that every non optimal intermediate iteration of
this simplex corresponds to a situation where we corresponding dual is infeasible. We also
showed that this Cj - Zj which is the extent of non optimality or the extent, to which
we can enter a variable, represents extent to which a corresponding dual is infeasible
and so on. From duality we move to sensitivity analysis
and in sensitivity analysis we saw what we would do if there are changes in the problem
and we modeled six possible changes in the objective function coefficient for the basic
variables as well as the non basic variables, Changes in the right hand side, changes in
the constraint, coefficient of a non basic variable, adding a new product and adding
and new constraint. We have seen all these aspects under linear programming. There are
two very interesting problems which are linear programming problems but they have special
algorithms to solve them. Now these two are called the transportation problem and the
assignment problem. We look at these two. Next we have something
called the transportation problem and we have something called the assignment problem. We
will be looking at both these problems in detail. Both of them are interesting linear
programming problems. Both of them can be formulated or modeled as linear programming
problems. But they are not solved using the simplex algorithm directly. Special algorithms are developed to solve
the problems, the transportation as well as the assignment. Now in the next few lectures
we will be going through these things in detail. However let us start the transportation problem
and try to formulate the problem today. What is the transportation problem? The transportation problem is as follows.
Let us assume that there are a certain number of supply points
and certain number of demand points. For example let us assume that there are three supply
points which we write here and there are four demand points. Now we are interested in supplying
a single product that is available in different quantities in each of these supply points
and to each of these demand points. In the transportation problem we supply a single
product or a single item is transported from the supply points to the demand point. We
assume that a certain number is available in each of the supply point. So we assume
that a1, a2 and a3 are the supplies available in points, 1 2 and 3 respectively or in general
ai is the quantity that is available in supply point i. In our example i = 1 to 3. We also know we call these requirements as
b1, b2, b3, and b4 or in general bj as the requirement in the demand point j and it also
takes some money to transport from the supply point to the demand point. We right now assumed
that it is possible to supply from every supply point to every demand point. For example we
can supply here, supply here, and supply here. Similarly one could supply to all the four
demand points. The cost of supplying one quantity, one item from i to j is given by Cij. In this
case this is C1 2 or C1 1, this is C1 2. For example this is C3 1 this is C3 4 respectively.
Cost of unit transportation from i to j is given by Cij, so the problem is this, given
a certain supply points, m number of supply points ai i = 1 to m, given a certain number
of demand points. n demand points bj = 1 to m. Where ai is the supply available at points
i, bj is the requirement of point j. Unit transportation cost is Cij from point i to
point j. How do we transport from this? The formulation would be like this, Xij is
the quantity transported from i to j now as far as every supply point is concerned
we write this. So sigma Xij is less than or equal to ai. If I take a supply point i, then
whatever that goes from the supply point should be less than or equal to i.
So j = 1 to n is less than or equal to ai. ai is the supply point i. This is the quantity
that goes out to each of the destinations and similarly whatever that enters destination
j. Now i = 1 to m. This comes into each of the destination point that should be greater
than or equal to bj. For example b1 is the requirement here so whatever comes from these
should be greater than or equal to bj. This is for j = 1 to m. This is i = 1 to m. Xij
greater than or equal to 0 and the objective function is to minimize the total cost of
transportations which is double sigma Cij Xij. Xij is a quantity that goes from i to
j. Cij is the unit cost of transportation from i to j, so this is summed over i = 1
to m; j = 1to n, Cij Xij. This is the formulation of the transportation
problem and this is a linear programming problem with the linear objective function and linear
constraints and an explicit non negativity constraint. I will look at understanding the
transportation problem further and trying to solve the transportation problem in the
next lecture