赞
踩
We can handle minimising z simply by maximising -z
e.g.
can be converted to
and then solved as before.
二. Unbounded problems
If we examine the simplex algorithm, one thing could go wrong: if the whole of the pivot column is negative (or zero), we cannot find the pivot
Fortunately, this does not mean that the algorithm has failed. In fact, it means that max z = +∞, i.e. z is unbounded from above.
To see this, consider the equations which tableau A represents:
satisfies the system for all y ≥ 0 (with all variables ≥ 0).
Thus, we can choose infinitely large y, without violating any constraint. We say that the problem is unbounded.
In practice, an unbounded problem almost always results from an incorrect formulation, since infinite profits do not exist in reality.
A remaining difficulty with the simplex method is that we are required to have a starting basic feasible system. Sometimes such a solution is not apparent, e.g.
Replace “min z” by “max z” and introduce surplus variables x3 , x4 :
(N.B. a ≤ constraint leads to a slack variable, a ≥ constraint leads to a surplus variable.)
The problem is that this is not a basic feasible system.
We could make it a basic system by multiplying the constraints by -1, i.e.
but this is not feasible, since it has negative RHS's.
We will use the two-phase simplex method for it.
Phase I will perform pre-processing. It will produce the following basic feasible system:
Phase II will solve the above problem by the simplex method.
Instead of multiplying the constraints by -1, we keep the original system with non-negative r.h.s.:
So how do we proceed ?
The way out is to introduce some new ( ≥ 0 ) artificial variables, which can act as basic variables in a basic feasible system.
Our first priority will then be to make these zero, so we can remove them from the problem and then continue with the simplex method on a basic feasible system. We do this by minimizing the sum of the artificial variables.
We call this Phase I, and during this we treat the z row simply as an equation (and we do not pivot in this row)
Phase I for our problem starts with the system with two artificial variables w1 and w2 :
For the Phase I problem
we set up a tableau with w1 , w2 as basics.
To do this, we express W in terms of the nonbasics x1 , x2 , x3 , x4 using (1) and (2)
This tableau now represents a basic feasible system to our original LP problem. By chance, it is also optimal (since the nonbasics have ≥0 coefficients in the -z row). In general, we would have to perform further iterations to optimise z. These would form Phase II.
There is still a case we have not examined.
Suppose in Phase I we find min W > 0, so we never enter Phase II.
It is easy to see that this simply means that the constraints of the original problem cannot be satisfied, since they cannot be satisfied with all the artificial variables equal to zero.
We say that the problem is infeasible, meaning that the feasible region is the empty set.
In practice this corresponds to a problem where the requirements asked for are too much, which is quite common in applications.
It is then necessary to modify the formulation by relaxing or removing one or more constraints.
Introducing slacks and artificial variables we obtain:
Replacing W by W = w1 = 3 − x1 − 2x2 + x4
set up tableau, and solve:
Occasionally variables which are not restricted to be ≥0 arise in linear programs. We call such variables sign-unrestricted or free.
It then turns out that only one of these two variables can be basic, so there is no difficulty in reading the solution from tableau. We handle any such variable in the solution process simply by replacing it by a difference between two new ≥0 variables.
It then turns out that only one of these two variables can be basic, so there is no difficulty in reading the solution from tableau.
The simplex method is always guaranteed to find an optimal solution if the value of z increases at every iteration.
This is because there is only a finite number of possible sets of basic variables we could choose, and hence only a finite number of different BFS's
.No BFS can occur twice, since that would mean z would decrease.
However, there is one remaining difficulty.
What if z is not increased ?
This can only occur if the basic variable in the pivot row has value zero, i.e. degeneracy
The iterations of the simplex method should be continued until we reach the situation when all variables have non-negative coefficients in the z-row.
If a basic variable has value zero in the current BFS, our argument about the convergence breaks down, since z may not increase. In fact, it is possible that the method may not converge, but will “cycle”, if we choose the pivot “unwisely”
Cycling is a rare phenomenon. Even constructing an instance on which simplex method may cycle is difficult.
In practice, the rule that selects as the entering variable the variable with the most negative coefficient in the z-row, Dantzig's rule, is more commonly used to choose the pivot.
1. From a practical viewpoint, the simplex method is highly successful, and is used widely to solve linear programs with hundreds of variables and constraints, and even thousands. The cases where it performs badly can be “corrected” by the intervention of a competent analyst, in most cases, simply by modifying the model slightly.
2. From a theoretical viewpoint, the news is bad. The simplex method is not a polynomial-time algorithm. The only upper bound on the number of iterations is the number of possible BFS's, which can be exponentially large.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。