单纯形法的检验数

参考:https://wenku.baidu.com/view/d6c2ec8502d276a200292ef0.html

一、引入

对于最大值问题:
在这里插入图片描述

矩阵形式为:
在这里插入图片描述

对于m个约束条件、n个决策变量,选取m个初始基变量 xix_{i}xi,得到初始基可行解(0,...,0,b1,b2,...,bm)T(0,...,0,b1,b2,...,bm)^T(0,...,0,b1,b2,...,bm)T,以及初始单纯形表。对所得的初始单纯形表,计算σj{\sigma}_jσj,其中σj=cj−zj\sigma _j = c_j - z_jσj=cjzj,寻找最大的整数σj\sigma _jσj,将该列所对应的变量xjx_jxj入基,该列最大的数所对应的行 xix_{i}xi 出基。

二、示例

本文以如下公式为例:
在这里插入图片描述

故初始基变量:(x4,x5,x6)T(x_4, x_5, x_6)^T(x4,x5,x6)T,因为在约束条件所对应的系数矩阵中, x4,x5,x6x_4, x_5, x_6x4,x5,x6对应的系数向量线性无关。

故初始基可行解为:(0,0,0,10,8,4)(0, 0, 0, 10, 8, 4)(0,0,0,10,8,4)

初始单纯性表:

image-20210418200510364

替换基变量步骤:

1、找出最大的正数检验数σj\sigma _jσj,即第2列数字2;

2、找最小正数 bxj=min{101,42}\frac{b}{x_j} = min\{\frac{10}{1}, \frac{4}{2}\}xjb=min{110,24} 所在行,即基变量 x6x_6x6 出基, x2x_2x2 入基,得到新的基变量 (x4,x5,x2)T(x_4, x_5, x_2)^T(x4,x5,x2)T,以及新的可行解:(0,2,0,8,10,0)(0, 2, 0, 8, 10, 0)(0,2,0,8,10,0)

3、进行初等行变换,使 x2x_2x2 所在的列变换到 x6x_6x6 所在的列的形式,得到新的单纯形表:

image-20210418200139831

同理:x3x_3x3 进基变量,x5x_5x5 出基变量,得到新的单纯性表:

在这里插入图片描述

至此,可以求得最优解:(0,12,5,8,0,0)T(0, 12, 5, 8, 0, 0)^T(0,12,5,8,0,0)T,最大值 z=−19z=-19z=19.

三、检验数

如上文,对于线性规划问题,若满足约束条件组成的可行域有界,则目标函数的最优解必定在可行域的顶点上。

当选取了一定的基变量时,如上文的 (x4,x5,x6)T(x_4, x_5, x_6)^T(x4,x5,x6)Tx1,x2,x3x_1, x_2, x_3x1,x2,x3为0,则当前的目标函数值:z0=−x1+2x2−x3+0x4+0x5+0x6z_0 = - x_1+2x_2-x_3+0x_4+ 0x_5+0x_6z0=x1+2x2x3+0x4+0x5+0x6

x1,x2,x3x_1, x_2, x_3x1,x2,x3中的非基变量值 xix_ixi 一旦增加,如上,最开始可行解确定好后,增加 x2x_2x2 的值,x4,x5,x6x_4, x_5, x_6x4,x5,x6的值必定可以减少,而 x2x_2x2 的系数 c2=2>0c_2 = 2>0c2=2>0 ,显然目标函数值z增加了,故目标函数值 z0z_0z0 不是最优解。

而对于检验数的确定:

z=c1x1+c2x2+...+cnxnz = c_1 x_1 + c_2 x_2 + ... + c_n x_nz=c1x1+c2x2+...+cnxn,若 (x1,x2,...,xm)T(x_1, x_2, ..., x_m)^T(x1,x2,...,xm)T 为基变量【对应上例题中的初始基变量(x4,x5,x6)T(x_4, x_5, x_6)^T(x4,x5,x6)T】,则 (xm+1,xm+2,...,xn)T(x_{m+1}, x_{m+2}, ..., x_n)^T(xm+1,xm+2,...,xn)T 为非基变量【对应上例题中的初始基变量(x1,x2,x3)T(x_1, x_2, x_3)^T(x1,x2,x3)T】。显然,基变量根据约束条件可以使用非基变量表示出来,本文继续以上例题为例:
x4=10−(x1+x2−2x3)x5=8−(2x1−x2+4x3)x6=4−(−x1+2x2−4x3) x_4 = 10 - (x_1 + x_2 -2x_3) \\ x_5 = 8 -(2x_1 - x_2 + 4x_3) \\ x_6 = 4 - (-x_1 + 2x_2 - 4x_3) x4=10(x1+x22x3)x5=8(2x1x2+4x3)x6=4(x1+2x24x3)
带入目标函数:z=−x1+2x2−x3+0∗(10−(x1+x2−2x3))+0∗(8−(2x1−x2+4x3))+0∗(4−(−x1+2x2−4x3))z = - x_1+2x_2-x_3+0 * (10 - (x_1 + x_2 -2x_3))+ 0*(8 -(2x_1 - x_2 + 4x_3)) +0*(4 - (-x_1 + 2x_2 - 4x_3))z=x1+2x2x3+0(10(x1+x22x3))+0(8(2x1x2+4x3))+0(4(x1+2x24x3))

化为一般式:
z=(cm+1−(Σi=1mci∗ci(m+1)))xm+1+(cm+2−(Σi=1mci∗ci(m+2)))xm+2+...+(cn−(Σi=1mci∗cin))xn+Σi=1mbi z = (c_{m+1} - (\Sigma _{i=1} ^m ci*c_{i(m+1)})) x_{m+1} + (c_{m+2}-(\Sigma _{i=1} ^m ci*c_{i(m+2)})) x_{m+2} + ... + (c_n-(\Sigma _{i=1} ^m ci*c_{in})) x_n + \Sigma _{i=1} ^m b_i z=(cm+1(Σi=1mcici(m+1)))xm+1+(cm+2(Σi=1mcici(m+2)))xm+2+...+(cn(Σi=1mcicin))xn+Σi=1mbi
从上式可以看出,对任意非基变量,其消除基变量后的系数若为正数,其数值越大,目标函数 zzz 的取值将越大。以此作为检验数。
对于本文初始目标函数:ci=0.(i=3,4,5)c_i = 0. (i=3,4,5)ci=0.(i=3,4,5) ,故初始检验数 σj=cj\sigma_j = c_jσj=cj 。发现 x2x_2x2的检验数为2,对目标函数的更新变化最大。

以上显然未考虑 xi(i=1,...m)x_i(i=1,...m)xi(i=1,...m) 在约束条件中系数不为1的情况。若将其考虑,则同样可得只含有非基变量的新的目标函数。同理,将检验数最大的非基变量换出,如上,换出 x2x_2x2,那换入哪一个非基变量呢?

如上文例子,若换出 x2x_2x2 ,即用其他变量来表示 x2x_2x2,但是其在约束条件中拥有两个正系数1和2,换出后,需要将系数转移到右边,即使用 b系数\frac{b}{系数}b,此时换出一个 b系数\frac{b}{系数}b 更小的基变量即可。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值