线性规划模型
生产计划问题
用 3 种原料混合配制 2 种清洁剂, 这 2 种清洁剂应 各配制多少
才能使总价值最大?

目标函数
max z=12x+15y
约束条件(s.t.)
0.25x+0.50y≤1200.50x+0.50y≤1500.25x≤50x≥0,y≥0
运输问题
产销平衡, 试制定供销方案, 使总运费最小?

目标函数
min z=3x11+2x12+7x13+7x21+5x22+2x23
约束条件
x11+x12+x13=5000x21+x22+x23=6000x11+x21=6000x12+x22=4000x13+x23=1000
一般形式
min or max z=j=1∑ncjxjs.t. j=1∑naijxj≥ or ≤ or =bixj≥0
-
可行解
满足约束条件和非负条件的变量
-
可行域
全体可行解
-
最优解
目标函数值最小(最大)的可行解
-
最优值
最优解的目标函数值
二维线性规划图解

实际求解在取值范围内 12x+15y 截距的最大值, 当与 B 相切时截距最大, 即 x=120,y=180

此时不存在最优解( z
可以无穷小下去 ), 可行解有无穷个
标准形
min z=j=1∑ncixis.t.j=1∑naijxj=bi≥0,i=1,2,⋯,mxj≥0,j=1,2,⋯,n
转为标准型
-
max 换成 min , 即 cj′=−cj
-
∑j=1naijxj≤bi 引入松弛变量 yj≥0 使得 ∑j=1naijxj+yj=bi
-
∑j=1naijxj≥bi 引入剩余变量 yj≥0 使得 ∑j=1naijxj−yj=bi
-
自由变量 xj 变为 xj′−xj′′ , xj′≥0,xj′′≥0
因为标准形中要求变量非负, 因此自由变量写成减法的形式, 即 xj=xj′−xj′′ , 这样就可以要求两个新变量都是正数, 若已知 xj≥0 , 则不需要这样转
例子
max z=3x1−2x2+x3
x1+3x2−3x3≤104x1−x2−5x3≤−30x1≥0,x2≥0,x3
转化为标准型后为
注意这里 x3 没有明确是正数还是负数, 因此需要转为 xj′−xj′′
min z=−3x1+2x2−x3′+x3′′x1+3x2−3x3′+3x3′′+x4=10−4x1+x2+5x3′−5x3′′−x5=30x1≥0,x2≥0,x3′≥0,x3′′≥0,x4≥0,x5≥0
标准形矩阵


min z=cTxs.t. Ax=b or j=1∑nPjxj=bx≥0
可行解性质
设 A 的秩为 m, A 的 m 个 线性无关
的列向量称作标准形的 基
, 给定基 B=(P1,P2,⋯,Pm) , 对应基中列向量的变量 x1,x2,⋯,xm, 称作 基变量
, 其余的变量称作 非基变量
基变量构成的向量记作 xB , 非基变量构成的向量记作 xN, 令 xN=0 , 约束条件变成 BxB=b , 解得 xB=B−1b , 这个向量 x 满足约束 Ax=b 且非基变量 全为 0
, 称作关于基 B 的 基本解
如果 x 是一个基本解且 x≥0 , 则称 x 是一个 基本可行解
, 对应的基 B 为 可行基
例子
min z=−12x1−15x2
0.25x1+0.50x2+x30.50x1+0.50x2+x40.25x1+x5=120=150=50
xi≥0,i=1,2,⋯,5

取基 B1=(P1,P2,P3) , 基变量 x1,x2,x3 , 非基变量 x4,x5 , 令 x4=0,x5=0

解得 x1=200,x2=100,x3=20 , x(1)=(200,100,20,0,0)T 是 基本可行解
( 要求 xi≥0 ), B1 是可行基
若取基 B2=(P1,P2,P4) , 则

解得 x(2)=(200,140,0,−20,0) 是一个基本解, 但不是基本可行解, 因此 B2 不是可行基
定理
Ax=b 的解 α 是基本解, 当且仅当 α 中非零分量对应的列向量线性无关
-
如果标准形有可行解, 则必有基本可行解
-
如果标准形有最优解, 则必存在一个基本可行解是最优解
-
A 有 m 行 n 列, 也就是说秩最多为 m, 至多有 Cnm 个基(本解) , 即从 n 列中取 m 列组合为基
单纯形法
初始基本可行解
max z=12x+15y
0.25x+0.5y0.5x+0.5y0.25xxy≤120≤150≤50≥0≥0
化为标准形后
min z′=−12x−15y
0.25x1+0.50x2+x30.50x1+0.50x2+x40.25x1+x5xi=120=150=50≥0
若取基变量为 x3,x4,x5 , 实际上初始可行基为 单位矩阵

则初始基本可行解为 x(0)=(0,0,120,150,50)T
最优性检验
给定可行基 B=(P1,P2,⋯,Pm)
对于约束条件 Ax=b 两边同时乘上 B−1 得到
B−1Ax=B−1b
假设 A 中对应非基变量的列构成的矩阵为 N , 则有
xB+B−1NxN=B−1b
注意 A 中基变量对应的矩阵为 B , 因此 B−1BxB=xB
解得
xB=B−1b−B−1NxN
将上述式子带入目标函数 z=cTx 得
z=cTx=cBTxB+cNTxN=cBT(B−1b−B−1NxN)+cNTxN=cBTB−1b+(cNT−cBTB−1N)xN
由于基本可行解为 xB(0)=B−1b,xN(0)=0 , 因此目标函数值为
z0=cBTB−1b
因此目标函数可以变为
z=cTx=z0+(cNT−cBTB−1N)xN=z0+(cBT−cBTB−1B)xB+(cNT−cBTB−1N)xN=z0+(cT−cBTB−1A)x
令检验数为
λT=cT−cBTB−1A
目标函数变为
z=z0+λTx
若 λi≥0 , 则 x(0) 是最优解
若存在 λk<0 且所有 aik≤0(1≤i≤m) ( m 是秩 ) , 则无最优解
基变换
令 Pj′=B−1Pj(1≤j≤n) , A=(P1,P2,⋯,Pn)
设 λk<0 且 alk>0 , 其中 xk 必是非基变量
用非基变量 xk 替换基变量 xl , 用 Pk 代替 B 中的 Pl
因为 P1,P2,⋯,Pm 线性无关, 因此可以表示 Pk, 即
Pk=i=1∑mαikPi
解得
Pl=alk1Pk−i=1,i=l∑malkaikPi
由于 Pl 是 B′ 的一个线性组合, 因此得到的 B′ 依旧是一个基
要保证 B′ 是一个可行基, 把它化为 单位矩阵
形式的同时需满足
βi′=βi−αlkαikβl≥0
当 αik≤0 时必然成立, 当 αik>0 时要求
αlkβl≤αikβi
因此可以选取
θ=αlkβl=min{αikβi∣αik>0,1≤i≤m}
单纯形法步骤
-
设初始可行基 B=(P1,P2,⋯,Pm) , λT=cT−cBTB−1A
-
若所有 λj≥0(1≥j≥n) , 则 xB=β,xN=0 是最优解(最小值)
-
若 λk<0 且所有 αik≤0(1≤i≤m) , 则无最优解 ( 即 λk<0 且 A 矩阵第 k 列全是小于等于 0 的 )
-
做基变换, 继续判断 λj
若判断 最大值
, 则 λj≤0(1≥j≥n) , λk>0
单纯形表
对于线性规划
max z=12x+15y
0.25x+0.5y0.5x+0.5y0.25x≤120≤150≤50
转化为标准形后得

取基 B=(P3,P4,P5) , 则

其中 β=B−1b , 由于 B 是单位矩阵, 因此
β=Bβ=BB−1b=b
由 z0=cBTB−1b=cBTβ 可知
−z0=−(0×120+0×150+0×50)=0
由于初始时 cBT=0 , 因此
λT=cT−cBTB−1A=cT
由上图可知, 不存在全部 λ 都大于 0 , 因此 z0 不是最优解 , 由于 λ1 和 λ2 均小于 0 , 但是 A 的第一、第二列均不小于 0 , 因此可能存在最优解, 需要进行 基变换
选取一个最小的 λ 进行基变换, 如上图 λ2 所在列
由于 θ=αlkβl , 需要取 θ 最小的列进行替换, 即 P3 替换成 P2
取基 B=(P2,P4,P5)

λ 可以直接变换, 也可以使用公式计算, 直接变换时使 λk=0 即可
由于依旧有 λ<0 , 因此再次进行变换, 使用 P1 替换 P4

最优值为 z′=−4140 , 最优值 z=4140 , 最优解为 x1=120,x2=180
无最优解的情况

两个约束条件, 添加两个松弛变量 x3,x4

构造单纯形表

由于 λ1<0 且 (a11,a12)T<0 因此无最优解
两阶段法
约束函数存在大于或等于的情况时

引入松弛变量 x4 和剩余变量 x5 转换为标准形

对于大于等于的情况, 还需要再引入人工变量 x6,x7 ( 不是标准形了 )

初始可行基 B=(P4,P6,P7) , x(0)=(0,0,0,11,0,3,1)T
x(0) 不是标准形的可行解, 只有当所有人工变量等于 0 时, 才能舍去人工变量得到标准形的可行解
对人工变量构造 辅助问题
min w=i=1∑myi
s.t. j=1∑naijxj+yi=bi,1≤i≤m
假设辅助问题的最优解 w∗ , 存在三种情况
-
如果 w∗>0 , 原问题无可行解
-
如果在最优解中, 所有的人工变量都是非基变量, 因此 w∗=0 , 可以删除人工变量, 得到问题的解
-
w∗=0 , 但是人工变量不全是非基变量, 可以转化为 2
步骤
阶段一, 引入人工变量, 按照单纯形法求解 辅助问题
的最优值


最优值 w∗=0 , 且基变量为 x4,x2,x3 均不是人工变量, 属于 情况二
, 进入阶段二
阶段二, 删除人工变量 x6,x7

A 和 β 保持, 修改 c 和 cB

最优值 z=−2 , 最优解为 x1=4,x2=1,x3=9
无解的情况

化为标准形

阶段一辅助函数最优值计算, 引入人工变量 x5

w∗=1>0 原问题不存在可行解

w*=0 且人工变量为基变量的情况

引入人工变量 x5,x6,x7

辅助问题
min w=x5+x6+x7

由于 a11=a12=a13=a14=0 , β1 必为 0 , 因此第一个约束可以由剩下两个约束组合得到, 可以去掉

最优值为 z=6 , 最优解为 x1=0,x2=2/3,x3=4
有限终止
基本可行解中基变量的值都大于 0 , 则称这个基本可行解是 非退化的
如果线性规划的 所有
基本可行解都是非退化的, 则称这个线性规划是非退化的
如果线性规划有可行解并且是非退化的, 则在计算中可行基不会重复出现, 单纯形法会在有限步内 终止
, 反之计算出现循环
Bland 规则 ( 避免循环 )
-
当有多个 λj<0 时, 取对应的非基变量中 下标最小
的作为换入变量
-
当有多个 θi 同时取到最小值时, 取对应的基变量中 下标最小
的作为换出变量