Simplex Method

What have we learned so far?

  LP的标准形式(原始问题)

(LP)mincTxs.t.Ax=bx0.
  1. 如果它的可行域P非空,那么它至少有一个vertex(extreme point)。——from Resolution Theorem
  2. 如果P非空且目标值 z不是无界的,那么最优值在P的(至少)一个顶点(极值点)处取到。——from Fundamental Theorem
  3. 可行域P只有有限个顶点(极值点)。——C(n,m)
  4. Vertices可以用代数的方法来生成,和bfs的一样。

Implications

  • C(n,m)很小时,可以枚举出所有的bfs's(vertices)来找到最优的那个作为最优解。——Enumerate Method
  • C(n,m)变大时,我们需要一个更系统的、有效的方法来做这个工作。——Simplex Method


3.1 Simplex Method

  Convinced by Prof. George B. Dantzig in 1947.

3.1.1 Basic ideas

Phase 1:

  • Step 1 (Starting)
      找到一个初始的extreme point (ep) 或声明P是空的。

Phase 2:

  • Step 2 (Checking optimality)
      如果当前ep是最优的,STOP!
  • Step 3 (Pivoting)
      Move to a better ep.
      Return to Step 2.

从Step 3回到Step 2的过程称为一次iteration
  如果我们不重复同一个ep,那么算法将总是在有限次迭代后终止。—— a finite algorithm
  如何有效地生成更好的极值点?—— basic feasible solutions

What else have we learned?

  • 可行域P中一点x为极值点,当且仅当x是关于某个基B的一个basic feasible solution。
  • 最多存在C(n,m)个基本可行解。当rank(A)=mn,那么一个bfs可以通过A=[BN] x=[xBxN]并且令xN=0以解出xB=B1b

Challenge:
  当我们从一个bfs移动到另一个时,我们真的移动了吗?
  如果没有的话,我们可能陷入循环了!

3.1.2 Nondegeneracy

{x1+x2402x1+x260x120x1, x20{x1+x2+s1=402x1+x2+s2=60x1+s3=20x1, x2, s1, s2, s30

Observations:

  • 如果一个ep是由正好有m个正的basic variablesnm个为零的non-basic variables组成的,那么两者之间应该是一一对应的。——a nondegenerate bfs
  • 只有当basic variables中至少有一个为零时,这个ep才可能与不止一个bfs对应。——a degenerate bfs

Terminology: 如果所有的bfs都是非退化的,那么LP nondegenerate

Property 1: 如果一个bfs x非退化的,那么x由n个hyperplane唯一确定

Why? n hyperlanes? Where are they?
  A=[BN]x=[xBxN]=[B1b0],令M=[BN0I],那么M是非奇异的,并且Mx=[BN0I][xBxN]=[b0]。因此,x=[xBxN]=M1[b0]n个线性无关的hyperpalne唯一决定。

  M1(或M)是LP的fundamental matrixM1=[B1B1N0I]。因此,若B1已知即可得到M1

提示

fundamental matrix中包含了linear programming的所有信息。

Property 2: 如果一个bfs x退化的,那么x由超过n个hyperplane超定

  因为除了[BN0I][xBxN]=[b0]n个hyperplane外,还至少有一个basic variable xi=0(因为bfs是退化的),也是一个hyperplane。

Property 3: 对于一个退化的p(lgm)个正的元素的bfs x,可能有(npnm)=(np)!(nm)!(mp)!不同的bfs与同一个极值点相关

3.2 Simplex Method under Nondegeneracy

Basic idea: 利用a simple pivoting scheme从一个bfs(ep)移动到另一个bfs(ep)。

  • 只考虑neighboring bfs(ep),而非同时考虑所有bfs(ep)。

Definition: 如果两个bfs有m1个共同的basic variable(不是指它们的值),那么这两个bfs adjacent

Observations:

  • 在非退化的情况下,每个基本可行解(极值点)都有nm个adjacent neighbors。
  • 对于一个bfs,所有的相邻bfs都可以通过将一个非基本变量从零增加到正的并且将一个基本变量从正的减小为零来到达。——Pivoting

3.2.1 Pivoting

  一个nonbasic变量进入basis(从0到positive),同时一个basic变量离开basis(从positive到0)。

Who and where are my neighbours?
  当前的ep沿着P的boundary edge走到相邻ep。当前ep有nm个邻居,应有nm条edge directions指向相邻的极值点,与各个非基变量(n.b.v.)的增加相对应。令edge direction dqRn与非基变量xq的增加相对应。

Where are these edge directions?

3.2.2 Edge direction

Conjecture: dqM1中与xq相关的列,i.e. dq=[B1Aq00100]T 。其中,A=[A1A2An]

vA处,basic variables为{x3,x4},nonbasic variables为{x1,x2}
所以B=[1001]N=[1121]M1=[1011012100100001]

General case: 对于λ0

x(λ)=x+λdq=[xBxN]+λ[B1Aq010]

(1)非基变量,均为0,除了xqλ增大,i.e. xN(λ)=xN+λ[010]T
(2)基变量,由于BxB+NxN=b,因此xB=B1bB1NxN。当xqλ增大时,其它的非基变量仍为0,那么xB(λ)=B1bλB1Aq。因此,dq=[B1Aqeq]

问: edge direction dq总是可行的方向吗?这要求对于足够小的步长λ>0,需要满足x(λ)=x+λdqP。即必须有Ax(λ)=bx(λ)0。等同于要证Adq=0x(λ)0

—Yes,当问题是非退化的时候,每个edge direction都是一个可行的方向

证:(1)由MM1=I可得Adq=0
  (2)对于非退化的情况,x(λ)=x+λ[B1Aqeq]。因此,当λ足够小时x(λ)0。i.e. 在非退化的情况下,an edge direction dq is a feasible direction!

—No,当问题是退化的时候,不一定每个edge direction都是一个可行的方向

3.2.3 Reduced cost

问:如果当前bfs不是最优的,那么哪个相邻的bfs是更好的呢?也就是说,要往哪个edge direction移动呢?或者说,哪个非基变量是一个好的转入候选呢?

Observations:

z(x(λ))=cTx(λ)=cT(x+λdq)=z(x)+λ[cBTcNT][B1Aqeq]=z(x)+λ(cqcBTB1Aq)=z(x)+λrq

如果rq=cTdq=cqcBTB1Aq)<0,那么dq是一个好的方向。

Definition: rq=cTdq=cqcBTB1Aq称为关于变量xqreduced cost

Theorem: 如果x=[B1b0]是与B有关的一个bfs,并且对于某些n.b.v. xqrq<0,那么dq=[B1Aqeq]Rn会带来更好的目标值。

Observations:

  • 对于一个基本变量xqBrq=cqcBTB1Aq=cqcq=0
  • 任意满足rq<0dq (xq n.b.v.)将被用于单纯形法。减小最多的方向为minj:nonbasic{cTdjdj},但对于单纯形法而言,贪心策略是无效的,因为无法预知再下一步会减小多少。

3.2.4 Optimality check by reduced cost

:如果对于任意的n.b.v. xqrq0,当前基本可行解是最优的吗?

Theorem: 给定一个基为B的bfs x=[B1b0],如果rq0, n.b.v. xq,那么x是最优的

证:思路为证明cTycTx00, yP,即证明cT(yx0)0

问:该定理反过来还成立吗?i.e. "如果一个bfs x是最优的,那么rq0, n.b.v. xq"
答:仅在非退化的情况下成立。因为在退化的情况下,在向其它方向移动的时候,可能会移动到可行域外面。

最优解的唯一性

corollary 1: 如果对于所有的n.b.v. xq都有reduced cost rq>0,那么bfs x唯一的最优解。
corollary 2: 如果x是一个有些rq1,rq2,,rqk=0的最优bfs,那么P中任意满足y=x+i=1kyqidqi也是最优的。

3.2.5 Step length

  已知顶点x,移动后的点为x(α)=x+αdq, α>0,那么需要移动多远才能使得x(α)是一个相邻的bfs呢?

  已知x(α)=x+αdq, α>0,且rq=cTdq=cqcBTB1Aq<0。由Adq=0可得Ax(α)=Ax=b

Case 1:如果dq0,那么x(α)0, α0。因此x(α)P, α0并且当α+时,cTx(α)=cTx+αcTdq。也就是说,如果沿着某个每个元素都大于0的方向dq移动时reduced cost是负的,那么就一直沿这个方向走向无穷,目标函数值会一直减小且解不会到可行域外。

Theorem: 对于某个n.b.v. xq,如果x是一个满足dq0rq<0的bfs,那么这个LP是无界的。

Case 2dq中至少有一个元素<0。为了保证x(α)0,我们需要令α=mini:basic{xidqi|dqi<0},其中mini:basic{xidqi|dqi<0}minimal ratio test

Note 1:dqi<0只能发生在基变量上(xiB)。
Note 2:α是由minimum ratio test决定的。
Note 3:在非退化的情况下,对于b.v. xixi>0,可以推出α>0,进而有x(α)是另一个极值点。
    对于退化的bfs,有可能xi=0α=0,所以x(α)还停在同一个极值点处。

Theorem: x是一个bfs,如果step length α是由minimum ratio test决定的,那么x(α)=x+αdq是一个相邻的bfs。

  注意,当bfs x是非退化的时,x(α)会移动到相邻的极值点处。

3.2.6 Summary

单纯形法的关键步骤:

  • Step 1 找到一个与A=[B|N]对应的bfs x
  • Step 2 检查n.b.v.的rq=cTdq(=cqcBTB1Aq)
     如果rq0,  nonbasic xq,那么当前的bfs是最优的;
     否则,选择一个rq<0,进行下一步。
  • Step 3 如果dq0,那么LP是unbounded;
     否则,找到α=mini:basic{xidqi|dqi<0},那么xx+αdq是一个新的bfs,更新BN,返回Step 2。

Theorem: 在非退化假设下,单纯形法在有限次数的迭代后终止,得到无界最小值或给定LP的最优解。

提示

问:如何获得一个初始的基础可行解呢?
系统方法:1. 两阶段法(一阶段问题) 2.大M法

3.2 Two-Phase Method

  • Step 1 令右侧向量非负:
    (LP)mincTxs.t.Ax=b(0)x0.
  • Step 2 在一阶段问题的基础上增加m个人工变量
    u=[u1u2um](PhⅠ) mini=1muis.t.Ax+Iu=b(0)x,u0.

一阶段问题的特殊性
 1. u=b,x=0是PhⅠ的一个bfs
 2. PhⅠ的下界为0
 3. 当且仅当zPh=0时,LP是可行的
 4. 在非退化的情况下,如果zPh=0,那么PhⅠ的一个最优解为LP的一个bfs

Degenerate case
 5. 如果一个最优bfs的基中至少有一个人工变量ui是退化的,而且在这个最优bfs中zPh=0,那么设ui=0是当前基的第k个基变量,那么
(1)如果对于一个n.b.v. xq,有ekTB1Aq0,那么可以用xq替换ui来生成一个开始的基。
(2)如果n.b.v. xq,有ekTB1Aq=0,那么Ax=b的第k行是冗余的,可以删掉这行再开始。

提示

找到一个起始的基本可行解与找到一个给定基本可行解的最优解一样困难。
两阶段法的第一阶段是通过单纯形法解决构造的PhⅠ问题,由此得到原始LP的一个bfs,所以两个阶段的工作是一样的。

3.3 Big-M Method

  给每个人工变量加一个很大的惩罚系数M>0,将PhⅠ问题和初始问题结合起来考虑,这就是大M问题:

minj=1ncjxj+j=1mMuis.t.Ax+Iu=b(0)x,u0

大M问题的特殊性
 1. x=0,u=b是一个bfs
 2. z是在最优解[xu]处有限的或无下界的。
 3. 假设z[xu]处有限,
  (i) u=0,那么x对LP可行,[x0]可行(大M)。因此cTx+M×0cTx+Mi=1mcTxcTx+0,i.e. x对LP是最优解。
  (ii) u0,那么对于LP可行的x[x0]对大M可行,并且cTx+M×0cTx+Mi=1mui。但是这对于M非常大的情况是不可能的,因此P=
 4. 如果对于所有的ui=0z,那么LP是无下界的。否则,P=

注意

问:M应该取多大才够大呢?
对于大M法而言,只有无穷大的M才能保证有效地解决所有问题。所以商业LP求解器更喜欢使用两阶段方法。

Supplement:Prevent Cycling

  当LP是退化的时,对于某些基变量xpxp=0,所以step length α=0z=cTx=cBTB1b不是严格下降的。

Key idea:保证某个量严格单调

  1. Brand's rule:按顺序踢出和进入
  2. Lexicographic rule (1955)
补充

其实可以不用考虑退化的情况,因为在数值的世界里,线性规划的函数都是连续的,只有将某一条约束稍微移动一个很小的值,便可以得到和原来退化的顶点非常接近的新的非退化的顶点。