四. Plus! 线性代数, 运筹学, 组合优化(Combinatorial optimisation)之单纯形法(The Simplex Method)

一. Minimisation Problems

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.

三. The Two-Phase Method

a)

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.

 b)

 c) Infeasibility

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.

Example

 Introducing slacks and artificial variables we obtain:

 Replacing W by W = w1 = 3 − x1 − 2x2 + x4

set up tableau, and solve:

d)  Unrestricted variables

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.

四. Convergence of the simplex method

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

Example 1

 Example 2

 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.

 五. Efficiency of the simplex method

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.

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值