首页 理论教育 线性规划问题求解:单纯形法的使用与局限性

线性规划问题求解:单纯形法的使用与局限性

时间:2023-06-30 理论教育 版权反馈
【摘要】:求解线性规划问题的最常用方法之一是著名的单纯形法。然而,单纯形法在最坏情况下的复杂度是指数式增长的,这可以通过精心构造的案例展示出来。在运用单纯形法的过程中,通常将问题表示成表格的形式,此表格在后续步中按照给定的规则修改。

线性规划问题求解:单纯形法的使用与局限性

求解线性规划问题的最常用方法之一是著名的单纯形法。单纯形法是一种迭代方法,它将向量x从一个可行基本向量移至另一个,移动方向总是朝着fx)减小的方向。经过一定步数的迭代后,它能给出精确解,迭代步数通常大大小于组合数978-7-111-58306-6-Chapter06-37.jpg,一般至多需要2m~3m次迭代(这里m是等式约束的个数)[7]。然而,单纯形法在最坏情况下的复杂度是指数式增长的,这可以通过精心构造的案例展示出来。

在运用单纯形法的过程中,通常将问题表示成表格的形式,此表格在后续步中按照给定的规则修改。单纯形法的每一步都从一个表格开始。表格的第一行包含有与目标函数fx)有关的系数。fx)的当前值显示在表格的右上方。表格中接下来的m行表示等式约束,最后一行包含当前的向量x。表格中与等式约束相关的行可以通过基本行变换进行改变,而不会对解产生影响。

表格必须满足的规则有:

1.向量x必须满足等式约束Ax=b

2.向量x必须满足不等式x≥0。

3.x中有n个元素是零元(指定为非基变量),剩余的m个元素通常为非零元,并指定为基变量。

4.在定义约束的矩阵中,一个基变量只能出现在一行中。

5.目标函数fx)只能由非基变量表达。

6.为得到初始解,需在一个或多个约束中加入人工变量。

单纯形算法可以总结如下:

单纯形算法

1.若fx)的所有系数(即表格的第一行)均大于或等于零,那么当前的向量x即为所求的解。

2.在非基变量中挑选其系数在fx)中负的最大的,将此变量设置为新的基变量xj

3.对于每一行i,用新的基变量的系数(aij)去除该行的bi。新的基变量的取值是这些比例中的最小值(例如,第k行的比例最小,则取第k行的比例为xj的值,xj=bk/akj)。

4.使用主元akj通过Gauss消元法将第j列消去。返回步骤1。

式(6.53)中的所有不等式放在一起就形成一个相交的超平面。可行域在这个n多面体的内部,而fx)的最小值一定在这个多面体的顶点上。单纯形法通过沿着此多面体最陡峭的边界移动,有规律地搜索这些顶点,直到获得x∗,如图6.2所示。

例6.4 最小化

fx):-6x1-14x2

约束条件为

2x1+x2≤12

2x1+3x2≤15

x1+7x2≤21

x1≥0,x2≥0

978-7-111-58306-6-Chapter06-38.jpg

图6.2 单纯形法搜索的例子

解6.4 引入松弛变量x3x4x5,使问题变为

最小化

fx):-6x1-14x2+0x3+0x4+0x5(www.xing528.com)

约束条件为

x1≥0,x2≥0,x3≥0,x4≥0,x5≥0

构造求解的表格:

978-7-111-58306-6-Chapter06-39.jpg

起始向量是x=[0 0 12 15 21]Tfx)的当前值显示在表格的右上角。下一步,将检查函数fx)以确定哪个变量会导致fx)的值有最大的下降。由于-14比-6绝对值大,x2的单位增量引起的fx)值的下降比x1的单位增量大。因此,保持x1为0不变,而让x2尽可能地增大(即横跨多面体的一条边到下一个顶点)。为了确定x2的新值,考虑如下的约束条件:

0≤x3=12-x2

0≤x4=15-3x2

0≤x5=21-7x2

根据此约束条件,可以得到x2的可能值为x2≤12,x2≤5,x2≤3。最严厉的约束是x2≤3,因此,x2可以增大到3,这样有

x3=12-x2=9

x4=15-3x2=6

x5=21-7x2=0

从而产生一个新的向量x=[0 3 9 6 0]Tfx)=-42。

新的基变量(非零)是x2x3x4,因此fx)必须用x1x5来表达。通过变量替换,

978-7-111-58306-6-Chapter06-40.jpg

978-7-111-58306-6-Chapter06-41.jpg

为了满足一个基变量只能出现在一行中的规则,采用Gauss消去法从每一行(有一行除外)中消去x2,采用的主元按前面所述的算法第3步确定。

Gauss消去后的新的表格为

978-7-111-58306-6-Chapter06-42.jpg

计算步骤重新开始。x5增大时fx)将会增大,因此,x1被选作基变量。因此,保持x5为0不变,而让x1尽可能地增大。新的约束条件为

978-7-111-58306-6-Chapter06-43.jpg

0≤7x2=21-x1

978-7-111-58306-6-Chapter06-44.jpg978-7-111-58306-6-Chapter06-45.jpgx1≤21。严厉的约束是978-7-111-58306-6-Chapter06-46.jpg,因此,设置x1978-7-111-58306-6-Chapter06-47.jpg,然后计算x2x3x4的新值。得到新的向量978-7-111-58306-6-Chapter06-48.jpg,而fx)要用x4x5来表达:

978-7-111-58306-6-Chapter06-49.jpg

由于fx)的所有系数都是正的,意味着x4x5的任何增大都会使fx)增大,因此单纯形法结束。这表示当前的向量x就是问题的解,且fx)的最终值978-7-111-58306-6-Chapter06-50.jpg

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈