线性规划的标准形式与单纯形法

线性规划的标准形式与单纯形法

1.线性规划的标准形式

为什么要化为标准型?

通俗来讲,就是增加方程的维度,降低方程求解的难度。


标准形式的四个特征:

1.目标函数为max(若原问题为min z,则令z_1=-z)
2.约束条件为等式(若为 ≤ \leq ,则加上松弛变量,若为 ≥ \geq ,则减去松弛变量)
3.决策变量为非负(若x_i<0,则令新x_i=-x_i)
4.限额系数b为正数(若小于0,则等式两边添负号;若等于0表示可能出现退化)


案例

max ⁡ z = 2 x 1 + 3 x 2 \max z=2x_1+3x_2 maxz=2x1+3x2
1 x 1 + 2 x 2 ≤ 8 1x_1+2x_2\leq8 1x1+2x28
4 x 1 + 0 x 2 ≤ 16 4x_1+0x_2\leq16 4x1+0x216
0 x 1 + 4 x 2 ≤ 12 0x_1+4x_2\leq12 0x1+4x212
∀ x i ≥ 0 \forall x_i\geq0 xi0
对于上述数学模型,按以上四个特征变化后如下:
max ⁡ z = 2 x 1 + 3 x 2 + 0 x 3 + 0 x 4 + 0 x 5 \max z=2x_1+3x_2+0x_3+0x_4+0x_5 maxz=2x1+3x2+0x3+0x4+0x5
1 x 1 + 2 x 2 + x 3 = 8 1x_1+2x_2+x_3=8 1x1+2x2+x3=8
4 x 1 + 0 x 2 + x 4 = 16 4x_1+0x_2+x_4=16 4x1+0x2+x4=16
0 x 1 + 4 x 2 + x 5 = 12 0x_1+4x_2+x_5=12 0x1+4x2+x5=12
∀ x i ≥ 0 \forall x_i\geq0 xi0
其中x_3,x_4,x_5称为松弛变量,在目标函数中的系数为0


个例 ⇒ \Rightarrow 通例

目标函数:max z=c1x1+c2x2+ ⋯ \cdots +cnxn
约束条件 = { a 11 x 1 + a 12 x 2 + ⋯ + a 1 n x n = b 1 a 21 x 1 + a 22 x 2 + ⋯ + a 2 n x n = b 2 ⋯ a m 1 x 1 + a m 2 x 2 + ⋯ + a m n x n = b m x i ≥ 0 约束条件=\begin{cases} a_{11}x_1+a_{12}x_2+\cdots+a_{1n}x_n=b_1 \\ a_{21}x_1+a_{22}x_2+\cdots+a_{2n}x_n=b_2 \\ \qquad\qquad\quad\quad\quad\cdots \\ a_{m1}x_1+a_{m2}x_2+\cdots+a_{mn}x_n=b_m \\ x_i\geq0\end{cases} 约束条件= a11x1+a12x2++a1nxn=b1a21x1+a22x2++a2nxn=b2am1x1+am2x2++amnxn=bmxi0


单纯形法

什么是单纯形法?

单纯形法是在高斯消除法的基础上,发展为求解变量数多余方程数,并且使目标函数值最优化的方法。
求解工具:单纯形表


单纯形表求解案例
注:单纯形表求解针对已经化为标准型的规划
现有问题标准型如下:

max ⁡ z = 2 x 1 + 3 x 2 + 0 x 3 + 0 x 4 + 0 x 5 \max z=2x_1+3x_2+0x_3+0x_4+0x_5 maxz=2x1+3x2+0x3+0x4+0x5
1 x 1 + 2 x 2 + x 3 = 8 1x_1+2x_2+x_3=8 1x1+2x2+x3=8
4 x 1 + x 4 = 16 4x_1+x_4=16 4x1+x4=16
4 x 2 + x 5 = 12 4x_2+x_5=12 4x2+x5=12
∀ x i ≥ 0 \forall x_i\geq0 xi0
上述模型系数矩阵(约束方程中各变量对应的系数)为 [ 1 2 1 0 0 4 0 0 1 0 0 4 0 0 1 ] \begin{bmatrix} 1&2&1&0&0\\4&0&0&1&0\\0&4&0&0&1\end{bmatrix} 140204100010001 ,其中单位阵对应的变量作为初始基变量,其余为初始非基变量。作单纯形表如下:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
0x_3812100
0x_4640010
0x_51204001
c_i-z_i

表中C_B列为基变量系数(该变量在目标函数中对应的系数),X_B为基变量,c_i-z_i用作确定入基变量 计算案例:如计算x_1列检验数,则等于2-(0*1+0*4+0*0)=2,括号内部分为C_B列与x_1列元素对应乘积的和 θ \theta θ在全部检验数计算完成、确定了入基变量后,用来确定出基变量。
检验数计算完成后如下表:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
0x_3812100
0x_4640010
0x_51204001
c_i-z_i23000

如果存在检验数大于0,说明不是最优解,选择最大检验数对应变量(即x_1)作入基变量,同时计算 θ \theta θ θ \theta θ等于上表中加粗的两个数相除。计算完毕后如下表:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
0x_38121004
0x_4640010
0x_512040013
c_i-z_i23000

θ \theta θ最小做出基变量,则由上表可知,x_2入基,x_5出基,对表中加粗部分进行初等行变换,使得x_2列变为x_5列的001。得到新表,并计算新表检验数和 θ \theta θ后如下:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
0x_321010-22
0x_416400104
3x_2301001/4
c_i-z_i2000-3/4

则x_1入基,x_3出基:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
2x_121010-2
0x_4800-4124
3x_2301001/412
c_i-z_i00-201/4

则x_5入基,x_4出基:

c_i23000
C_BX_Bbx_1x_2x_3x_4x_5 θ \theta θ
2x_141001/40
0x_5400-21/21
3x_22011/2-1/80
c_i-z_i00-3/2-1/80

此时检验数均小于0,无需计算 θ \theta θ,得到最优解x_1=4,x_5=4,x_2=2,其余变量为0,目标函数值为14。
注:若需理论证明可参考相关教材。


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OR'CC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值