250分悬赏线性规划问题(单纯形法)

maxz=6x1+2x2+10x3+8x4
5x1+6x2-4x3-4x4<=20
3x1-3x2+2x3+8x4<=25
4x1-2x2+x3+3x4<=10
x1,x2,x3,x4>=0
建议用颜色深一点的笔在纸上做,然后拍下来,再传上来。
请具有大二以上学力的朋友们帮助我解决

一、线性规划单纯形法的概念

(一)线性规划单纯形解法的基本思路

若一个凸集仅包含有限个极点,则称此凸集为单纯形。
线性规划的可行域是单纯形(证明略,但可以从上节图解法的例子得到认同),进而线性规划的基可行解又与线性规划问题可行域的极点1-1对应(定理2.2.2), 线性规划单纯形法就是基于线性规划可行域的这样的几何特征设计产生的。这个方法最初是在20世纪40年代由George Dantzig研究出来的。这个线性规划单纯形解法的基本思路是:先求得一个初始基可行解,以这个初始基可行解在可行域中对应的极点为出发点,根据最优准则判断这个基可行解是否是最优解,如果不是转换到相邻的一个极点,即得到一个新的基可行解,并使目标函数值下降,这样重复进行有限次后,可找到最解或判断问题无最优解。

(二)单纯形法的最优准则

设:线性规划(LP)为:

min cx
s.t. Ax=b
x≥0

A为(LP)的约束方程组的m*n阶系数矩阵(设n≥m),A的秩为m;B是线性规划的一个基,不失普遍性,记

定义

则:称λ,或者λj,(j=1,2,…,n)为检验数。

若:λ≤0,即全部λi非正,
则:由B确定的基可行解是(LP)的最优解。
(参看附录2.3.1)

二、线性规划单纯形法的表格解法

较简单的线性规划可以采用单纯形法的表格形式,这样利用计算器就可求解。单纯形法的表格解法的基本思路是,对基可行解建立单纯形表,依据此表作最优解判断,以及从原基可行解向目标值更小的新可行解转换的计算。

对于由基阵B确定的基可行解,其单纯形表为表2.3.1形式。对于初始基可行解,其单纯形表的构建方法为:先建立表2.3.2形式的表格,然后应用“行变换”将表2.3.2中的前m列,即基变量对应的列

转换为

其中0是m元0向量:0=(0,0,…,0), 是m阶单位方阵。在这样的行变换下,表2.3.2将转换为表2.3.1

表2.3.1

检验数

基变量
cBB-1A-c cBB-1b
xB B-1A B-1b

表2.3.2

检验数

基变量
-cB -cN o
xB B N B-1b

(参看附录2.3.2)

(一)直接求解
对如下形式的较简单的线性规划可直接采用单纯形法的表格形式求解:

min cx
s.t. Ax≤b
x≥0

这种形式的线性规划标准化后,为

min cx+ox'
s.t. Ax+lx'=b
x≥0,x'≥0

其中x'=(x1',x2',…,xm')为松驰变量,而o=(0,0,…,0)T 。现在新的约束矩阵为

因为I是m*n的单位矩阵。所以我们就可用这个矩阵作基阵,松驰变量是基变量,立即得到一个初始基可行解,其目标函数值为0,而相应的初始单纯形表如表2.3.3所示。表中

θ=o=(0,0,…,0)T,

从而可开始单纯形表上求解的过程。

表2.3.3

检验数

基变量
-c θ o
A I b

下面我们通过一个实例看单纯形表解线性规划问题的一般步骤

例2.3.1 用直接法求解(LP)

max z=40x1+45x2+24x3
s.t. 2x1+3x2+x3≤100
3x1+3x2+2x3≤120
x1,x2,x3≥0

解:
第一步 先将原问题化为标准形式

min -z=-40x1-45x2-24x3
s.t. 2x1+3x2+x3+x4=100
3x1+3x2+2x3+x5=120
x1,x2,x3,x4,x5≥0

第二步 列出初始单纯形表

x1 x2 x3 x4 x5
40 45 24 0 0 0
x4 2 3 1 1 0 100
x5 3 3 2 0 1 120

此时,基可行解(0,0,0,100,120)T为,目标函数值为0.

第三步 检查检验数



λ=(40,45,24,0,0)≥0

因此基可行解不是最优解,要进行基的转换。

线性规划检验数的定义和最优解的单纯形法检验准则:
检验数定义为

若 基可行解对应的λ为检验数为非正向量,即

则 此可行解为最优解。
当大于零的检验数不止一个,理论上可任选一个正检验数对应非基变量为进基变量,一般情况选取最大正值的检验数对应的非基变量为进基变量,这样迭代常常会快一些。为此,我们选x2进基,因为

因此,x4为离基变量,则新的基变量为x2,x5。

第四步 建立新的基相应的单纯形表

建立单纯形表的方法:
在计算过程中,只要将A中基变量对应的列组成的子矩阵
通过行变换化成单位阵,基变量对应的检验数化成零即可。

如何从原来的表转到新的基相应的单纯形表呢?只要把A中x2相应的列向量通过初等变换化成单位向量即可。因此在上表中只要把x2对应的列

化成

我们称基变量x4所在行和非基变量x2所在列相交元素为变换轴心,用加*表示,现在这数为3,将这行乘以(-1)加到第三行,乘以(-15)加到第一行,然后将这行行除以3,得一个新的单纯行表

x1 x2 x3 x4 x5
10 0 9 -15 0 -1500
x2 2/3 1 1/3 1/3 0 100/3
x5 1* 0 1 -1 1 20

这样我们作了一次转换,新的基可行解为(0,100/3,0,0,20),目标函数值为-1500。

现在再回到第三步。现在λ1=10,λ3=9均大于零,仍不是最优解,取x1进基;

因为:

所以,x5离基。

x1 x2 x3 x4 x5
0 0 -1 -5 -10 -1700
x2 0 1 -1/3 1 -2/3 20
x1 1 0 1 -1 1 20

现在所有检验数均小于等于零,这个基可行解(20,20,0,0,0)是最优解,原问题最优值1700.以后。

实际在表上作业时,求λk与xr的过程可不写,这些表可连在一起。

(二)单纯形法求解的基本步骤

首先我们需要对单纯形表作进一步的认识,注意到检验数:

可见,对应于基变量的λj=0(j=1,2,∧,m),而且

再记

进而记

这样单纯形表2.3.1可呈现为表2.3.4的形式:

表2.3.4

x1 x2 … xm xm+1 … xn
检验数

基变量
0 0 … 0 λm+1 … λn f0
x1 1 0 … 0 y1m+1 … y1n
x2 0 1 … 0 y2m+1 … y2n
… … … … … … … … …
xm 0 0 … 1 ymm+1 … ymn

有了表2.3.4,单纯形表上解法的一般步骤为:

步一:把线性规划模型变成它的标准形式;

步二:确定初始基可行解,建立初始单纯形表;

步三:检查对应于非基变量的检验数λj,(j∈N);若所有这些λj均小于零,则已得到最优解,停止计算,否则转入下一步;

步四:在所有的λj>0中,若有一个λk在单纯形表上对应的列向量的全部元素yik≤0(i=1,2,…,m),则此问题无解,停止计算;否则转入下一步;

步五:根据max{λj>0|j∈N}=λk, 即确定λk对应的非基变量λk为进基变量;再根据

确定基变量xr为离基变量;

步六:基可行解的转换运算,即实施行变换,将单纯形表上xk对应的列向量变换为单位向量,其中包括将λk变换为0,而原yrk变换为1,称元素yrk为变换轴心。

(三)两阶段法

对一般的线性规划,往往不会象用直接法求解形为Ax≤b的线性规划那样,能够很容易找到初始基可行解,甚至连有无可行基都难以判定,这时就需要应用两阶段法来求解线性规划。

二阶段法就是把解线性规划问题划分为两个阶段,第一阶段求出原问题的一个基可行解或判断原问题可行域为空;第二阶段在得到的基可行解基础上求解原问题。方法如下:

第一阶段
人为地在原约束矩阵中增加一些变量使得到单位矩阵,增加的变量称为人工变量,目标函数是人工变量之和。具体而言,对于原线性规划标准化后的Ax=b,(b≥0)的形式,若A中不包括单位矩阵,则我们在每个方程后面加一个“人工变量”得到一个新的线性规划(LP)如下:

(当A中有一些单位向量时,人工变量可少于m个)

为书写方便我们记(LP0)为:

其中Em=(1,1,K,1),分量全为1的m元横向量,

这儿Im是可行基,又因为xa≥目标函数Emx有下界0,所以(LP0)一定有最优解。设最优解为:

则可能有三种情形:

(1)若:在最优解x0的基变量中,不存在人工变量,即人工变量xn+1,xn+2,…,xn+m都是非基变量。
则:x0的前n个分量(x10,x20,K,xn0)便是原线性规划问题的一个基可行解。可进入第二阶段。

(2)若:在最优解x0的基变量中,包括某些人工变量,并且最优值z>0。
则:原线性规划可行域为空,原线性规划无解。

这是因为,否则可设原规划有可行解(x1*,x2*,…,xn*),
则(x1*,x2*,…,xn*,0,…,0)是(LP0的可行解,其目标函数值
为0,这与最优值大于零矛盾。

(3)若:在最优解x0的基变量中,包括某些人工变量,但最优值z=0,即,此时为基变量的人工变量都取值为0。
则:设xn+1是一个人工变量的基变量,其在最优解的单纯形表中对应第S行,设J是非人工变量中非基变量的下标集。

① 如果单纯形表的第S行中,所有的ysk=0,(k∈J)此示原约束Ax=b中第S行为其余行的线性组合,即是个多余的约束,应当删去;

② 如果存在ysk≠0 (k∈J),
则无论ysk是正还是负,以它为变换轴心,xk进基,xn+1离基.如果新表中的基变量中还有人工变量,重复以上步骤,有限次可得到(1)的情形。

第二阶段

步1:以第一阶段最优解对应的单纯形表为基础,删去人工变量对应的列,并且将原规划(已标准化)的-c作为检验数,放在第一行,然后用用行变换将基变量对应的检验数消为零。

步2:以步1结束时建立单纯形表为原线性规划的初始单纯形表,求解原线性规划。

[例2.3.2] 用二阶段法求解(LP):

min x1-2x2
s.t. x1+x2≥2
-x1+x2≥1
x2≤3
x1,x2≥0

解:
先标准化:

min x1-2x2
s.t. x1+x2-x3=2
-x1+x2-x4=1
x2+x5=3
x1,x2,x3,x4,x5≥0

第一阶段:
因为A中 对应单位向量

,故只要引进两个人工变量x6,x7即可

min x6+x7
s.t. x1+x2-x3+x6=2
-1+x2-x4+x7=1
x2+x5=3
x1,x2,K,x7≥0

在第一行放入检验数:

这等价于在第一行放-c,再用行变换使基变量的检验数为零。

x1 x2 x3 x4 x5 x6 x7
0 0 0 0 0 -1 -1 0
x6 1 1 -1 0 0 1 0 2
x7 -1 1 0 -1 0 0 1 1
x5 0 1 0 0 1 0 0 3
0 2 -1 -1 0 0 0 3
x6 1 1 -1 0 0 1 0 2
x7 -1 1 0 -1 0 0 1 1
x5 0 1 0 0 1 0 0 3
2 0 -1 1 0 0 -2 1
x6 2* 0 -1 1 0 1 -1 1
x2 -1 1 0 -1 0 0 1 1
x5 1 0 0 1 1 0 -1 2
0 0 0 0 0 0 -1 0
x1 1 0 -1/2 -1/2 0 1/2 -1/2 1/2
x2 0 1 -1/2 -1/2 0 1/2 1/2 3/2
x5 0 0 1/2 1/2 1 -1/2 -1/2 3/2

得到第一阶段最优解,人工变量不是基变量,最优值为0,则去掉x6,x7所在两列就是原问题基可行解。

第二阶段
仍将-c放在第一行,用行变换将基变量对应的检验数消为零。

x1 x2 x3 x4 x5
-1 2 0 0 0
x1 1 0 -1/2 1/2 0 1/2
x2 0 1 -1/2 -1/2 0 3/2
x5 0 0 1/2 1/2 1 3/2
0 0 1/2 3/2 0 -5/2
x1 1 0 -1/2 1/2* 0 1/2
x2 0 1 -1/2 -1/2 0 3/2
x5 0 0 1/2 1/2 1 3/2
-3 0 2 0 0 -4
x4 2 0 -2 2 0 1
x2 1 1 -1 0 0 2
x5 -1 0 1* 0 1 1
-1 0 0 0 -2 -6
x4 0 0 0 2 2 2
x2 0 1 0 0 1 3
x3 -1 0 1 0 1 1

现在检验数全小于等于零,得到原问题最优解x*=(0,3,1,2,0)T最优值-6。

[例2.3.1.3] 用二阶段法求解(LP):

min -3x1+4x2
s.t. x1+x2≤4
2x1+3x2≥18
x1,x2≥0

标准化:

min -3x1+4x2
s.t. x1+x2+x3=4
2x1+3x2-x4=18
x1,x2,x3,x4≥0

第一阶段:

min x5
s.t. x1+x2+x3=4
2x1+3x2-x4+x5=18
x1,x2,x3,x4,x5≥0

为了少写一张表,也可在表最上方一行放 ,然后再用行变换使基变量的检验数为零。

0 0 0 0 -1
x1 x2 x3 x4 x5
2 +3 0 -1 0 18
x3 1 1* 1 1 0 4
x5 2 +3 0 -1 1 18
-1 0 -3 -1 0 6
x2 1 1 1 0 0 4
x5 -1 0 0 -1 1 16

已得到第一阶段最优解,但人工变量仍留在基里,并且最优值z=6>0故原问题可行域为空。原线性规划无解。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-01
各位 你们把简单的问题复杂化了 上题只要先把线性方程标准化后 用上单纯形法就变得极为简单
第2个回答  2009-03-20
我 的毕业设计就是这方面的 我还没有搞 嘿嘿 这题有点难度啊
第3个回答  2009-03-20
你学会了交我吧
第4个回答  2009-03-20
额。。。你强。。。去哪搞的题啊

250分悬赏线性规划问题(单纯形法)
这个线性规划单纯形解法的基本思路是:先求得一个初始基可行解,以这个初始基可行解在可行域中对应的极点为出发点,根据最优准则判断这个基可行解是否是最优解,如果不是转换到相邻的一个极点,即得到一个新的基可行解,并使目标函数值下降,这样重复进行有限次后,可找到最解或判断问题无最优解。 (二)单纯形法的...

线性规划问题及其单纯形法
线性规划问题解的情况由图解法得到的启示有:若线性规划问题有可行解,则可行域(或可行解集)是凸集;若线性规划问题有最优解,则一定有最优解在可行域的某个顶点上取得。单纯形法原理如下:不妨设基为[公式],则...基解的数目不会超过[公式]个。基解没有[公式]的限制,故基解不一定是可行解。

运筹学问题,用单纯形法求解下面线性规划方程组
将x2当成y,x1当成x,这三个约束方程在x-y平面上形成了一个区域,这种线性问题的解都在区域的角上,比较一下各角的x+y的大小,就知道在(10,6)取得最大值,因此解为x1=10,x2=6,z=16

如何用单纯形法解决线性规划问题?
单纯形法应用在线性规划的标准模型上,任何一个线性规划的一般形式都可以化为标准模型。线性规划模型的一般形式为:把它转换为标准型是要求所有的约束都是等式约束,且所有的决策变量非负。如下面的形式:举个例子:那么很容易就可以写出这个线性规划问题的数学模型:再重复一遍,线性规划的标准型必为以下形...

单纯形法的计算步骤
单纯形法是求解线性规划问题最常用、最有效的算法之一。它的计算步骤如下:1、把线性规划问题的约束方程组表达成典范型方程组,找出基本可行解作为初始基本可行解 。2、若基本可行解不存在,即约束条件有矛盾,则问题无解。3、若基本可行解存在,以初始基本可行解作为起点,根据最优性条件和可行性条件,...

简单理解线性规划的单纯形算法
单纯形算法的收敛性是它的一大亮点。在非退化情况下,每次迭代都会使得目标函数值有所下降,而且这个过程是有限的,一旦达到最优,算法就停止。这就像在解迷宫,每一次正确的选择都引领我们接近目标。将线性规划问题通过等价形式转化为易于处理的单纯表,是表格单纯形法的精髓。通过这种方法,我们可以清晰地...

线性规划:单纯形法的相关证明
单纯形法是解决线性规划问题的一种有效方法,其核心原理在于从基本可行解出发,不断寻找更优的基本可行解,直至找到全局最优解。为了深入理解这一算法,我们首先需要对一些关键概念有清晰的认识,包括凸集、极值点、基本可行解等。首先,让我们定义凸集与极值点。在二维平面上,凸集是指包含了任意两点连线的...

单纯形方法
单纯形法最早由 George Dantzig于1947年提出,近70年来,虽有许多变形体已经开发,但却保持着同样的基本观念。如果线性规划问题的最优解存在,则一定可以在其可行区域的顶点中找到。基于此,单纯形法的基本思路是:先找出可行域的一个顶点,据一定规则判断其是否最优;若否,则转换到与之相邻的另一顶点...

单纯形法(Simplex Method)
单纯形法是解决线性规划问题的强大工具,由Dantzig在1947年提出,通过逐步逼近最优解的策略,以非负变量和等式约束为前提,逐步优化目标函数。下面详细阐述其求解步骤:首先,将线性目标和约束转换为标准形式,确保目标函数是线性的,且所有变量非负,且只包含等式约束。然后,构建初始单纯形表,包含决策变量...

用单纯形法求解线性规划问题,并列出单纯形表
先化成标准型:max W=-x1-x2-x3-x4 x1+x4-x5=15 x1+x2-x6=12 x2+x3-x7=18 x3+x4-x8=10 x1,x2,x3,x4,x5,x6,x7,x8>=0 列出单纯形表:x1 x2 x3 x4 x5 x6 x7 x8 RHS -1 -1 -1 -1 0 0 0 0 1 0 0 1 -1 0 0 0 15 1 1 0 0 0 -1 0 0 12 0 1 1 0 ...

相似回答