线性规划单纯形法【推导+实例】

在这里插入图片描述


一、标准形式

线性规划的标准形式如下:
min ⁡ c T x s . t . A x = b , ( L P ) x ≥ 0 \begin{equation} \begin{aligned} &\min \mathbf{c^T}x\\ & s.t. \quad \boldsymbol{Ax = b}, \qquad (LP) \\ & \qquad \quad \boldsymbol{x\geq 0} \end{aligned} \end{equation} mincTxs.t.Ax=b,(LP)x0
其中 A \boldsymbol{A} A m × n m\times n m×n的矩阵, c \boldsymbol{c} c是n为列向量, b \boldsymbol{b} b是m维列向量。当变量有上下界,不满足标准形式时,需要引入松弛变量将问题转化为标准形式。

二、极点、极方向

定义(极点)

对于任意凸集 S S S S S S内一向量 x \pmb{x} x如果是 S S S的极点,那么不存在不同于 x \pmb{x} x的两个向量 y , z \pmb{y},\pmb{z} y,z,使得 x = λ y + ( 1 − λ ) z , 0 ≤ λ ≤ 1 \pmb{x}=\lambda \pmb{y}+(1-\lambda)\pmb{z},0\le \lambda \le 1 x=λy+(1λ)z,0λ1

Note:

  1. 极点不能表示成两个不同点的组合;
  2. 极点不在 S S S中任何线段的内部;
  3. 显然,多边形的顶点和圆周上的任意一点都是极点;

定义(方向)

S S S R n \mathbb{R}^n Rn 中的闭凸集, d \boldsymbol{d} d 为非零向量, 如果对 S S S 中的每一个 x \boldsymbol{x} x, 都有
{ x + λ d ∣ λ ⩾ 0 } ⊂ S , \{\boldsymbol{x}+\lambda \boldsymbol{d} \mid \lambda \geqslant 0\} \subset S, {x+λdλ0}S,
则称向量 d \boldsymbol{d} d S S S 的方向.

定义(极方向)

d ( 1 ) \boldsymbol{d}^{(1)} d(1) d ( 2 ) \boldsymbol{d}^{(2)} d(2) S S S 的两个方向, 若对任何正数 λ \lambda λ, 有 d ( 1 ) ≠ λ d ( 2 ) \boldsymbol{d}^{(1)} \neq \lambda \boldsymbol{d}^{(2)} d(1)=λd(2), 则称 d ( 1 ) \boldsymbol{d}^{(1)} d(1) d ( 2 ) \boldsymbol{d}^{(2)} d(2) 是两个不同的方向. 若 S S S 的方向 d \boldsymbol{d} d 不能表示成该集合的两个不同方向的正 的线性组合,则称 d \boldsymbol{d} d S S S极方向.

显然,有界集不存在方向, 因而也不存在极方向. 对于无界集才有方向的概念.

S = { x ∣ A x = b , x ⩾ 0 } S=\{\boldsymbol{x} \mid \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0}\} S={xAx=b,x0} 为非空集合, d \boldsymbol{d} d 是非零向量. 证明 d \boldsymbol{d} d S S S 的方向的充要条件是 d ⩾ 0 \boldsymbol{d} \geqslant \boldsymbol{0} d0 A d = 0 \boldsymbol{A d}=\mathbf{0} Ad=0.

证明 :

按照定义, d d d S S S 的方向的充要条件是: 对每一个 x ∈ S x \in S xS, 有
{ x + λ d ∣ λ ⩾ 0 } ⊂ S . ( 1 ) \{\boldsymbol{x}+\lambda \boldsymbol{d} \mid \lambda \geqslant 0\} \subset S . \quad (1) {x+λdλ0}S.(1)
根据集合 S S S 的定义, (1)式即
A ( x + λ d ) = b , x + λ d ⩾ 0. ( 2 ) \begin{aligned} & \boldsymbol{A}(\boldsymbol{x}+\lambda \boldsymbol{d})=\boldsymbol{b}, \\ & \boldsymbol{x}+\lambda \boldsymbol{d} \geqslant \mathbf{0} . \end{aligned} \quad (2) A(x+λd)=b,x+λd0.(2)
由于 A x = b , x ⩾ 0 \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0} Ax=b,x0 λ \lambda λ 可取任意非负数, 因此由 (2)式知 A d = 0 \boldsymbol{A} \boldsymbol{d}=\mathbf{0} Ad=0 d ⩾ 0 \boldsymbol{d} \geqslant \mathbf{0} d0.

下面给出多面集的一个重要性质, 这就是所谓的表示定理.
定理(表示定理)

S = { x ∣ A x = b , x ⩾ 0 } S=\{\boldsymbol{x} \mid \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0}\} S={xAx=b,x0} 为非空多面集,则有:
(1) 极点集非空, 且存在有限个极点 x ( 1 ) , ⋯   , x ( k ) x^{(1)}, \cdots, x^{(k)} x(1),,x(k).
(2) 极方向集合为空集的充要条件是 S S S 有界. 若 S S S 无界, 则存在有限个极方向 d ( 1 ) , ⋯   , d ( n ) \boldsymbol{d}^{(1)}, \cdots, \boldsymbol{d}^{(n)} d(1),,d(n).
(3) x ∈ S x \in S xS 的充要条件是:
x = ∑ j = 1 k λ j x ( j ) + ∑ j = 1 l μ j d ( j ) , ∑ j = 1 k λ j = 1 , λ j ⩾ 0 , j = 1 , ⋯   , k , μ j ⩾ 0 , j = 1 , ⋯   , l . \begin{aligned} & x=\sum_{j=1}^k \lambda_j x^{(j)}+\sum_{j=1}^l \mu_j d^{(j)}, \\ & \sum_{j=1}^k \lambda_j=1, \\ & \lambda_j \geqslant 0, \quad j=1, \cdots, k, \\ & \mu_j \geqslant 0, \quad j=1, \cdots, l . \end{aligned} x=j=1kλjx(j)+j=1lμjd(j),j=1kλj=1,λj0,j=1,,k,μj0,j=1,,l.

三、 线性规划基本性质

(1)最优解会在极点处取得

由表示定理可以推出如下的定理,具体的证明见《最优化理论与算法(陈宝林)》

定理

设线性规划(LP)的可行域非空, 则有下列结论:

  • 若线性规划存在有限最优解, 则目标函数的最优值可在某个极点上达到.

Note:

  • 也就是说一定会在某个极点上取得最优解

(2)基本可行解

在线性规划(LP)中, 设矩阵 A \boldsymbol{A} A 的秩为 m m m(m<=n), 又假设 A = [ B , N ] \boldsymbol{A}=[\boldsymbol{B}, \boldsymbol{N}] A=[B,N], 其中 B \boldsymbol{B} B m m m 阶可逆矩阵(如果 r a n k ( A ) < m rank(A)<m rank(A)<m,说明有冗余行,可以消去). 如果 A \boldsymbol{A} A 的前 m m m 列是线性相关的, 可以通过列调换, 使前 m m m 列成为线性无关的, 因此关于 B \boldsymbol{B} B 可逆的假设不失一般性. 同时记作
x = [ x B x N ] , x=\left[\begin{array}{l} x_B \\ x_N \end{array}\right], x=[xBxN],
其中 x B x_B xB 的分量与 B B B 中的列对应, x N x_N xN 的分量与 N N N 的列对应. 这样, 可把 A x = b A x=b Ax=b 写成
( B , N ) [ x B x N ] = b , (B, N)\left[\begin{array}{l} x_B \\ x_N \end{array}\right]=b, (B,N)[xBxN]=b,

B x B + N x N = b . B x_B+N x_N=b . BxB+NxN=b.
上式两端左乘 B − 1 \boldsymbol{B}^{-1} B1, 并移项, 得到
x B = B − 1 b − B − 1 N x N , \boldsymbol{x}_{\boldsymbol{B}}=\boldsymbol{B}^{-1} \boldsymbol{b}-\boldsymbol{B}^{-1} \boldsymbol{N} \boldsymbol{x}_N, xB=B1bB1NxN,
x N x_N xN 的分量就是线性代数中所谓的自由末知量,它们取不同的值, 就会得到方程组的不同的解. 特别地, 令 x N = 0 x_N=\mathbf{0} xN=0, 则得到解
x = [ x B x N ] = [ B − 1 b 0 ] . x=\left[\begin{array}{l} x_B \\ x_N \end{array}\right]=\left[\begin{array}{c} B^{-1} b \\ 0 \end{array}\right] . x=[xBxN]=[B1b0].
定义(基本解)


  1. x = [ x B x N ] = [ B − 1 b 0 ] x=\left[\begin{array}{l} x_B \\ x_N \end{array}\right]=\left[\begin{array}{c} B^{-1} b \\ 0 \end{array}\right] x=[xBxN]=[B1b0]称为方程组 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax=b 的一个基本解
  2. B \boldsymbol{B} B 称为基矩阵,简称为基;
  3. x B \boldsymbol{x}_{\boldsymbol{B}} xB 的各分量称为基变量, 基变量的全体 x B 1 , x B 2 , ⋯   , x B m x_{B_1}, x_{B_2}, \cdots, x_{B_m} xB1,xB2,,xBm 称为一组基;
  4. x N x_N xN 的各分量称为非基变量.

又若 B − 1 b ⩾ 0 \boldsymbol{B}^{-1} \boldsymbol{b} \geqslant \boldsymbol{0} B1b0, 则称
x = [ x B x N ] = [ B − 1 b 0 ] \boldsymbol{x}=\left[\begin{array}{c} x_B \\ x_N \end{array}\right]=\left[\begin{array}{c} B^{-1} b \\ 0 \end{array}\right] x=[xBxN]=[B1b0]为约束条件 A x = b , x ⩾ 0 \boldsymbol{A x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0} Ax=b,x0基本可行解. 相应地, 称 B \boldsymbol{B} B 为可行基矩阵, x B 1 , x B 2 , ⋯   , x B m x_{\boldsymbol{B}_1}, x_{\boldsymbol{B}_2}, \cdots, x_{\boldsymbol{B}_m} xB1,xB2,,xBm 为 一组可行基. 若 B 1 b > 0 \boldsymbol{B}{ }^1 \boldsymbol{b}>\mathbf{0} B1b>0, 即基变量的取值均为正数, 则称基本可行解是非退化的. 如果满 足 B − 1 b ⩾ 0 \boldsymbol{B}^{-1} \boldsymbol{b} \geqslant 0 B1b0 且至少有一个分量是零, 则称基本可行解是退化的基本可行解.

每一组基对应一个基本解, 一般地, 当 A \boldsymbol{A} A m × n m \times n m×n 矩阵, A \boldsymbol{A} A 的秩为 m m m 时, 基本可行解的个数不会超过:
( n m ) = n ! m ! ( n − m ) ! . \left(\begin{array}{l} n \\ m \end{array}\right)=\frac{n !}{m !(n-m) !} . (nm)=m!(nm)!n!.
定理(极点和基本可行解等价)

K = { x ∣ A x = b , x ⩾ 0 } , A K=\{\boldsymbol{x} \mid \boldsymbol{A} \boldsymbol{x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0}\}, \boldsymbol{A} K={xAx=b,x0},A m × n m \times n m×n 矩阵, A \boldsymbol{A} A 的秩为 m m m, 则 K K K 的极点集与 A x = b , x ⩾ 0 \boldsymbol{A x}=\boldsymbol{b}, \boldsymbol{x} \geqslant \boldsymbol{0} Ax=b,x0 的基本可行解集等价.

证明见《最优化理论与算法(陈宝林)》第二章。

Note:

  1. 线性规划的最优解会在某个极点达到;
  2. 极点和基本可行解等价;
  3. 所以线性规划问题的求解,可以归结为求最优基本可行解;
  4. 这个思想是单纯形法的主要出发点。

四、单纯形法

由上节的介绍我们知道线性规划的最优解会出现在某个顶点,而单纯形法的主要思想是从一个顶点出发,去找下一个能让目标函数变小(或者变大)的顶点。而如何去寻找这样的顶点,从数学上来说其实就是基本可行解的转换。

(1)数学理论

考虑问题
min ⁡ f =  def  c x  s. t.  A x = b , x ⩾ 0 , \begin{array}{ll} \min \quad f \stackrel{\text { def }}{=} \boldsymbol{c} \boldsymbol{x} \\ \text { s. t. } \quad A \boldsymbol{x}=\boldsymbol{b}, \\ & \boldsymbol{x} \geqslant \boldsymbol{0}, \end{array} minf= def cx s. t. Ax=b,x0,其中 A \boldsymbol{A} A m × n m \times n m×n 矩阵,秩为 m , c m, \boldsymbol{c} m,c n n n 维行向量, x \boldsymbol{x} x n n n 维列向量, b ⩾ 0 \boldsymbol{b} \geqslant \boldsymbol{0} b0 m m m 维列向量. 记:
A = ( p 1 , p 2 , ⋯   , p n ) . \boldsymbol{A}=\left(\boldsymbol{p}_1, \boldsymbol{p}_2, \cdots, \boldsymbol{p}_n\right) . A=(p1,p2,,pn).现将 A \boldsymbol{A} A 分解成 ( B , N ) (\boldsymbol{B}, \boldsymbol{N}) (B,N) (可能经列调换), 使得其中 B \boldsymbol{B} B 是基矩阵, N \boldsymbol{N} N 是非基矩阵, 设
x ( 0 ) = [ B − 1 b 0 ] \boldsymbol{x}^{(0)}=\left[\begin{array}{c} \boldsymbol{B}^{-1} \boldsymbol{b} \\ \mathbf{0} \end{array}\right] x(0)=[B1b0]是基本可行解,在 x ( 0 ) \boldsymbol{x}^{(0)} x(0) 处的目标函数值
f 0 = c x ( 0 ) = ( c B , c N ) [ B − 1 b 0 ] = c B B 1 b , \begin{aligned} f_0 & =\boldsymbol{c x}^{(0)}=\left(\boldsymbol{c}_{\boldsymbol{B}}, \boldsymbol{c}_N\right)\left[\begin{array}{c} \boldsymbol{B}^{-1} \boldsymbol{b} \\ \mathbf{0} \end{array}\right] \\ & =\boldsymbol{c}_{\boldsymbol{B}} \boldsymbol{B}{ }^1 \boldsymbol{b}, \end{aligned} f0=cx(0)=(cB,cN)[B1b0]=cBB1b,其中 c B \boldsymbol{c}_B cB c \boldsymbol{c} c 中与基变量对应的分量组成的 m m m 维行向量. c N \boldsymbol{c}_N cN c c c 中与非基变量对应的分量 组成的 n − m n-m nm 维行向量。现在分析怎样从基本可行解 x ( 0 ) \boldsymbol{x}^{(0)} x(0) 出发, 求一个改进的基本可行解.

x = [ x B x N ] x=\left[\begin{array}{l} x_B \\ x_N \end{array}\right] x=[xBxN]是任一个可行解, 则由 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax=b 得到
x B = B − 1 b − B − 1 N x N , \boldsymbol{x}_{\boldsymbol{B}}=\boldsymbol{B}^{-1} \boldsymbol{b}-\boldsymbol{B}^{-1} \boldsymbol{N} \boldsymbol{x}_N, xB=B1bB1NxN,在点 x \boldsymbol{x} x 处的目标函数值
f = c x = ( c B , c N ) [ x B x N ] = c B x B + c N x N = c B ( B − 1 b − B − 1 N x N ) + c N x N = c B B − 1 b − ( c B B − 1 N − c N ) x N = f 0 − ∑ j ∈ R ( c B B − 1 p j − c j ) x j = f 0 − ∑ j ∈ R ( z j − c j ) x j , ( 1 ) \begin{aligned} f & =\boldsymbol{c} \boldsymbol{x}=\left(c_B, c_N\right)\left[\begin{array}{l} x_B \\ x_N \end{array}\right] \\ & =c_B x_B+c_N x_N \\ & =c_B\left(\boldsymbol{B}^{-1} \boldsymbol{b}-\boldsymbol{B}^{-1} \boldsymbol{N} x_N\right)+c_N x_N \\ & =c_B \boldsymbol{B}^{-1} \boldsymbol{b}-\left(\boldsymbol{c}_B \boldsymbol{B}^{-1} \boldsymbol{N}-\boldsymbol{c}_N\right) \boldsymbol{x}_N \\ & =f_0-\sum_{j \in R}\left(\boldsymbol{c}_B \boldsymbol{B}^{-1} \boldsymbol{p}_j-c_j\right) x_j \\ & =f_0-\sum_{j \in \mathbb{R}}\left(z_j-c_j\right) x_j, \end{aligned} \qquad (1) f=cx=(cB,cN)[xBxN]=cBxB+cNxN=cB(B1bB1NxN)+cNxN=cBB1b(cBB1NcN)xN=f0jR(cBB1pjcj)xj=f0jR(zjcj)xj,(1)其中 R R R 是非基变量下标集,
z j = c B B − 1 p j . z_j=\boldsymbol{c}_{\boldsymbol{B}} \boldsymbol{B}^{-1} \boldsymbol{p}_j . zj=cBB1pj.由 (1) 式可知, 适当选取自由末知量 x j ( j ∈ R ) x_j(j \in R) xj(jR) 的数值就有可能使得
∑ j ∈ R ( z j − c j ) x j > 0 , \sum_{j \in R}\left(z_j-c_j\right) x_j>0, jR(zjcj)xj>0,从而得到使目标函数值减少的新的基本可行解. 为此, 在原来的 n − m n-m nm 个非基变量中, 使 得 n − m − 1 n-m-1 nm1 个变量仍然取零值, 而令一个非基变量, 比如 x k x_k xk 增大, 即取正值, 以便实现我们的目的. 那么怎样确定下标 k k k 呢? 根据 (1) 式, 当 x j ( j ∈ R ) x_j(j \in R) xj(jR) 取值相同时, z j − c j z_j-c_j zjcj (正 数)越大, 目标函数值下降越多, 因此选择 x k x_k xk, 使
z k − c k = max ⁡ j ∈ R { z j − c j } , z_k-c_k=\max _{j \in R}\left\{z_j-c_j\right\}, zkck=jRmax{zjcj},这里假设 z k − c k > 0. x k z_k-c_k>0 . x_k zkck>0.xk 由零变为正数后, 得到方程组 A x = b \boldsymbol{A x}=\boldsymbol{b} Ax=b 的解
x B = B − 1 b − B − 1 p k x k = b ‾ − y k x k , \boldsymbol{x}_{\boldsymbol{B}}=\boldsymbol{B}^{-1} \boldsymbol{b}-\boldsymbol{B}^{-1} \boldsymbol{p}_k x_k=\overline{\boldsymbol{b}}-\boldsymbol{y}_k x_k, xB=B1bB1pkxk=bykxk,其中 b ˉ \bar{b} bˉ y k \boldsymbol{y}_k yk m m m 维列向量, b ˉ = B − 1 b , y k = B − 1 p k \bar{b}=\boldsymbol{B}^{-1} \boldsymbol{b}, \boldsymbol{y}_k=\boldsymbol{B}^{-1} \boldsymbol{p}_k bˉ=B1b,yk=B1pk, 把 x B \boldsymbol{x}_{\boldsymbol{B}} xB 按分量写出, 即
x B = [ x B 1 x B 2 ⋮ x B m ] = [ b ˉ 1 b ˉ 2 ⋮ b ˉ m ] − [ y 1 k y 2 k ⋮ y m k ] x k , ( 2 ) \boldsymbol{x}_B=\left[\begin{array}{c} x_{B_1} \\ x_{B_2} \\ \vdots \\ x_{B_m} \end{array}\right]=\left[\begin{array}{c} \bar{b}_1 \\ \bar{b}_2 \\ \vdots \\ \bar{b}_m \end{array}\right]-\left[\begin{array}{c} y_{1 k} \\ y_{2 k} \\ \vdots \\ y_{m k} \end{array}\right] x_k, \qquad (2) xB= xB1xB2xBm = bˉ1bˉ2bˉm y1ky2kymk xk,(2)

x N = ( 0 , ⋯   , 0 , x k , 0 , ⋯   , 0 ) T , \boldsymbol{x}_N=\left(0, \cdots, 0, x_k, 0, \cdots, 0\right)^{\mathrm{T}}, xN=(0,,0,xk,0,,0)T,

在新得到的点, 目标函数值是
f = f 0 − ( z k − c k ) x k . ( 3 ) f=f_0-\left(z_k-c_k\right) x_k .\qquad (3) f=f0(zkck)xk.(3)
再来分析怎样确定 x k x_k xk 的取值. 一方面, 根据(3) 式, x k x_k xk 取值越大函数值下降越多; 另一方面, 根据 (2) 式, x k x_k xk 的取值受到可行性的限制, 它不能无限增大 (当 y k ⩽ 0 \boldsymbol{y}_k \leqslant 0 yk0 时). 对 某个 i i i, 当 y i k ⩽ 0 y_{i k} \leqslant 0 yik0 时, x k x_k xk 取任何正值时, 总成立 x B i ⩾ 0 x_{B_i} \geqslant 0 xBi0, 而当 y i k > 0 y_{i k}>0 yik>0 时, 为保证
x B i = b ˉ i − y i k x k ⩾ 0 ,  x_{B_i}=\bar{b}_i-y_{i k} x_k \geqslant 0 \text {, } xBi=bˉiyikxk0
就必须取值
x k ⩽ b ˉ i y i k x_k \leqslant \frac{\bar{b}_i}{y_{i k}} xkyikbˉi
因此, 为使 x B ⩾ 0 x_B \geqslant 0 xB0, 应令
x k = min ⁡ { b ˉ i y i k ∣ y i k > 0 } = b ˉ r y r k , x_k=\operatorname{min}\left\{\frac{\bar{b}_i}{y_{i k}} \mid y_{i k}>0\right\}=\frac{\bar{b}_r}{y_{r k}}, xk=min{yikbˉiyik>0}=yrkbˉr,
x k x_k xk 取值 b ˉ r / y r k \bar{b}_r / y_{r k} bˉr/yrk 后, 原来的基变量 x b = 0 x_b=0 xb=0, 得到新的可行解这个解一定是基本可行解. 因为原来的基
B = ( p B 1 , ⋯   , p B r , ⋯   , p B m ) \boldsymbol{B}=\left(\boldsymbol{p}_{\boldsymbol{B}_1}, \cdots, \boldsymbol{p}_{\boldsymbol{B}_r}, \cdots, \boldsymbol{p}_{\boldsymbol{B}_m}\right) B=(pB1,,pBr,,pBm)
中的 m m m 个列是线性无关的, 其中不包含 p k \boldsymbol{p}_k pk. 由于 y k = B − 1 p k \boldsymbol{y}_k=\boldsymbol{B}^{-1} \boldsymbol{p}_k yk=B1pk, 故
p k = B y k = ∑ i = 1 m y i k p B t , \boldsymbol{p}_k=\boldsymbol{B} y_k=\sum_{i=1}^m y_{i k} \boldsymbol{p}_{\boldsymbol{B}_t}, pk=Byk=i=1myikpBt,
p k \boldsymbol{p}_k pk 是向量组 p B 1 , ⋯   , p B r , ⋯   , p B m \boldsymbol{p}_{\boldsymbol{B}_1}, \cdots, \boldsymbol{p}_{\boldsymbol{B}_r}, \cdots, \boldsymbol{p}_{\boldsymbol{B}_m} pB1,,pBr,,pBm 的线性组合, 且系数 y r k ≠ 0 y_{r k} \neq 0 yrk=0. 因此用 p k \boldsymbol{p}_k pk 取代 p B r \boldsymbol{p}_{\boldsymbol{B}_r} pBr 后, 得到的向量组
p B 1 , ⋯   , p k , ⋯   , p B m , p_{B_1}, \cdots, p_k, \cdots, p_{B_m}, pB1,,pk,,pBm,
也是线性无关的. 因此新的可行解 x \boldsymbol{x} x 的正分量对应的列线性无关,故 x \boldsymbol{x} x 为基本可行解.
经上述转换, x k x_k xk 由原来的非基变量变成基变量,而原来的基变量 x B r x_{B_r} xBr 变成非基变量. 在新的基本可行解处, 目标函数值比原来减少了 ( z k − c k ) x k \left(z_k-c_k\right) x_k (zkck)xk. 重复以上过程, 可以进一步 改进基本可行解, 直到在 (1) 式中所有 z j − c j z_j-c_j zjcj 均非正数, 以致任何一个非基变量取正值都不能使目标函数值减少时为止.

定理 (单纯形法判别数)

  1. 若在极小化问题中, 对于某个基本可行解, 所有 z j − c j ⩽ 0 z_j-c_j \leqslant 0 zjcj0, 则这个基本可行解是最优解;
  2. 若在极大化问题中, 对于某个基本可行解, 所有 z j − c j ⩾ 0 z_j-c_j \geqslant 0 zjcj0, 则这个基本可行解是最优解.

其中:
z j − c j = c B B − 1 p j − c j , j = 1 , ⋯   , n . z_j-c_j=\boldsymbol{c}_{\boldsymbol{B}} \boldsymbol{B}^{-1} \boldsymbol{p}_j-c_j, \quad j=1, \cdots, n . zjcj=cBB1pjcj,j=1,,n.

在线性规划中, 通常称 z j − c j z_j-c_j zjcj判别数或检验数.

(2)实例

截屏2023-08-07 17.21.11

截屏2023-08-07 17.21.56

截屏2023-08-07 17.22.32

截屏2023-08-07 17.22.52

Reference

  1. 陈宝林.《最优化理论与算法》第二版
  • 33
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值