线性规划 (二) 单纯形法

问题描述

  标准线性规划的容许集是凸多面体,有有限个极点,若有容许解,则必有基本容许解若有最优解,则必有最优基本解。由此看来,为求最优解,只须关心基本容许解。又因为基本容许解与极点是一一对应的,所以从几何上,容易想出:先求出一个极点,再沿凸多面体的棱求出另一个使目标函数值所有下降的极点。因为极点的总数是有限的,所以在一定条件下,总可以迭代到最优的极点,因为极点的总数是有限的,所以在一定条件下,总可以迭代到最优的极点。

  那么你想依次循环迭代每个极点的话,你需要知道已下三点:1. 怎样求第一个基本容许解? 2. 求出来了这个解怎么判断是不是最优解? 3. 怎么从一个基本容许解迭代到下一个?用官方术语来表示就是:

  1. 怎样求得标准线性规划的一个初始基本容许解?
  2. 怎样判别一个基本容许解是否为最优解?
  3. 怎样从一个基本容许解迭代出使目标函数值下降的另一个基本容许解?

求解思路

  我们先看后面两个,也就是怎么判别一个基本容许解是否为最优解:
  考虑下面的线性规划问题:
min ⁡ c T x s.t.  A x = b x ≥ 0 } \left.\begin{array}{c}{\min c^{T} x} \\ {\text {s.t. } A x=b} \\ {x \geq 0}\end{array}\right\} mincTxs.t. Ax=bx0

  其中 A A A是秩为 m m m m × n m \times n m×n矩阵。设 B B B是已知的容许基,不妨设 A = [ B , N ] A = [B, N] A=[B,N]相应地,把 x x x c c c分解为:
x = [ x B x N ] , c = [ c B c N ] x =\begin{bmatrix}x_{B}\\ x_{N}\end{bmatrix} ,c=\begin{bmatrix}c_{B}\\ c_{N}\end{bmatrix} x=[xBxN],c=[cBcN]
  于是可以写成下式:

min ⁡ c B T x B + c N T x N T s.t.  B x B + N x N = b x B ≥ 0 , x N ≥ 0 } \left.\begin{array}{c}{\min c^{T}_{B} x_{B}+c_{N}^{T}x_{N}^{T}} \\ {\text {s.t. } Bx_{B} + Nx_{N}=b} \\ {x_{B} \geq 0,x_{N} \geq 0}\end{array}\right\} mincBTxB+cNTxNTs.t. BxB+NxN=bxB0xN0

  令所有非基变量的取值为零,即 x N = 0 x_{N}=0 xN=0,那么由上面的这个等式约束立刻得到基变量向量的取值为 x B = B − 1 b x_{B}=B^{-1}b xB=B1b。因此关于 B B B的基本容许解是:

  其目标函数值是:

z ‾ = c B T B − 1 b \overline{z}=c_{B}^{T}B^{-1}b z=cBTB1b

  现在考虑对于上述的线性规划的任意一个解呢?其容许解可表示为 x = [ x B T , x N T ] T x=[x_{B}^{T},x_{N}^{T}]^{T} x=[xBT,xNT]T,其目标函数值是:
z = c B T x B + c N T x N z=c_{B}^{T}x_{B}+c_{N}^{T}x_{N} z=cBTxB+cNTxN

  由此可以求解出 x B = B − 1 b − B − 1 N x N x_{B}=B^{-1}b-B^{-1}Nx_{N} xB=B1bB1NxN并代入上式,再利用 z ‾ = c B T B − 1 b \overline{z}=c_{B}^{T}B^{-1}b z=cBTB1b可得:

z = c B T ( B − 1 b − B − 1 N x N ) + c N T x N = z ‾ − ( c B T B − 1 N − c N T ) x N z = c_{B}^{T}(B^{-1}b-B^{-1}Nx_{N})+c_{N}^{T}x_{N} \\ =\overline{z}-(c_{B}^{T}B^{-1}N-c_{N}^{T})x_{N} z=cBT(B1bB1NxN)+cNTxN=z(cBTB1NcNT)xN

  如令 σ N T = c B T B − 1 N − c N T \sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T} σNT=cBTB1NcNT

z = z ‾ − σ N T x N z=\overline{z}-\sigma_{N}^{T}x_{N} z=zσNTxN

  由于 x x x是容许解,故必有 x N ≥ 0 x_{N} \geq 0 xN0,因此,只要 σ N ≤ 0 \sigma_{N} \leq 0 σN0,由 z = z ‾ − σ N T x N z=\overline{z}-\sigma_{N}^{T}x_{N} z=zσNTxN立刻得知 z ≥ z ‾ z \geq \overline{z} zz,即关于 B B B的基本容许解是最优解。由此得到关于基 B B B的基本容许解是最优解的一个充分条件为

σ N T = c B T B − 1 N − c N T ≤ 0 T \sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T} \leq 0^{T} σNT=cBTB1NcNT0T

N = [ a m + 1 , ⋅ ⋅ ⋅ , a n ] N=[a_{m+1},···,a_{n}] N=[am+1,⋅⋅⋅an]代入 σ N \sigma_{N} σN中,得:

σ j = c B T B − 1 a j − c j , j = m + 1 , ⋅ ⋅ ⋅ , n \sigma_{j}=c_{B}^{T}B^{-1}a_{j}-c_{j},j=m+1,···,n σj=cBTB1ajcjj=m+1⋅⋅⋅n

一些定义

  因为上面这个公式比较重要,所以我们有必要给其下一个定义:

定义:在标准线性规划中,设 B B B是一个基,则:

σ j = c B T B − 1 a j − c j , j = 1 , 2 , ⋅ ⋅ ⋅ , n \sigma_{j}=c_{B}^{T}B^{-1}a_{j}-c_{j},j=1,2,···,n σj=cBTB1ajcjj=1,2,⋅⋅⋅n

  称为变量 x j x_{j} xj关于基 B B B判别数

  按此定义, σ T = c B T B − 1 A − c T \sigma^{T}=c_{B}^{T}B^{-1}A-c^{T} σT=cBTB1AcT所有变量 x x x的判别数向量 σ N T = c B T B − 1 N − c N T \sigma_{N}^{T}=c_{B}^{T}B^{-1}N-c_{N}^{T} σNT=cBTB1NcNT是所有非基变量 x N x_{N} xN的判别数向量。而所有基本变量 x B x_{B} xB的判别数向量是:
σ B T = [ σ 1 , σ 2 , ⋯   , σ m ] = c B T B − 1 B − c B T = 0 T \sigma_{B}^{T}=[\sigma_{1},\sigma_{2},\cdots , \sigma_{m}] \\ = c_{B}^{T}B^{-1}B-c_{B}^{T} = 0^{T} σBT=[σ1,σ2,σm]=cBTB1BcBT=0T

  由此可以看到,所有非基变量的判别数都等于零

定理:在标准线性规划中,设 B B B是容许基,若所有变量关于 B B B的判别数都非正,则关于 B B B的基本容许解是最优解。

  之后你就可以刷题了。emmm。

我的微信公众号名称:小小何先生
公众号介绍:主要研究分享深度学习、机器博弈、强化学习等相关内容!期待您的关注,欢迎一起学习交流进步!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值