两阶段法分析与实现.docx
- 文档编号:5652797
- 上传时间:2022-12-30
- 格式:DOCX
- 页数:16
- 大小:25.37KB
两阶段法分析与实现.docx
《两阶段法分析与实现.docx》由会员分享,可在线阅读,更多相关《两阶段法分析与实现.docx(16页珍藏版)》请在冰豆网上搜索。
两阶段法分析与实现
肉侏军孑莉愁★诊
GUILINUHiVfRSITYOFELECTHCNICTECHNOLOGY
〈〈最优化方法》
课程设计
题目:
两阶段法分析与实现
院系:
数学与计算科学学院
专业:
统计学
学号:
雨坤1200720216
指导教师:
主且
日期:
2015年01月22日
摘要
常用的解线性规划问题的方法有图解法,单纯形法,对偶单纯形法,解乘数法,椭球法等。
而本论文即主要阐述的是从届丁单纯形法的两阶段法。
两阶段法
第一阶段是先求解一个目标函数中只包含人工变量的线性规划问题,当第一阶段
求解结果表明问题有可行解时,第二阶段是从第一阶段的最终单纯形表出发,去掉人工变量,并按问题原来的目标函数,继续寻找问题的最优解,即是一种为使人工变量被替换出成为非基变量的方法。
与大M法同时被广为使用,但相较丁大M法,两阶段法能够求的更准确地结果。
关键词:
线性规划;单纯形法;两阶段法;大M法
Abstract
Weusuallysolvethelinearprogrammingproblemswithgraphicmethod,simplexmethodanddualsimplexmethod,themultipliermethod,ellipsoidmethodandsoon.Thispapermainlyexpoundsthetwostagemethodwhichbelongstosimplexmethod.Thefirststageoftwostagemethodisusedtosolveaobjectivefunctionwhichonlycontainsartificialvariableslinearprogrammingproblem.Whenthefirstphaseofsolvingresultsshowthattheproblemhasafeasiblesolution,thesecondstageisfromthefirststageofthefinalsimplextableau,removeartificialvariables,andaccordingtotheproblemsoftheoriginalobjectivefunction,continuetolookfortheoptimalsolutionoftheproblem.Itisakindofwaytomakeartificialvariablessubstitutedthenonvariablemethod.ThebigMmethodisalsowidelyusedatthesametime,butcomparedwiththebigMmethod,two-phasemethodcanmoreaccurateresults.
Keywords:
;Linearprogramming;Simplexmethod;Twostagemethod;
ThebigMmethod;
1、弓I言1...
2、两阶段法描述1..
2.1基本可行解1..
2.2两阶段法概述1..
2.3两阶段法第一阶段2.
2.4两阶段法第二阶段3
3、两阶段法求解引例.4..
3.1两阶段法计算步骤4.
3.2例15..
3.3例28..
3.4弓I例分析.9.
4、算法比较.9..
4.1大M法.9..
4.2算法比较1.0
4.3特殊情况1.1
5、总结1.2
5.1总结概括12
5.2个人感言12
6、参考文献:
13
1、引言
在各种优化算法中,两阶段法(Twostagemethod是非常重要的一种。
即如果线性规划模型中的约束条件系数矩阵不存在单位向量组,阶梯式应先加入人工变量,人工构成一个单位向量组,其只起过渡作用,不应影响决策变量的取值,两阶段法即可控制人工变量取值。
寻找线性规划问题初始基可行解的一种方法.把增加人工变量的线性规划问题分为
Axxb
两个阶段去求解.第一阶段是构造一个辅助的人工目标函数,即a或x0,xa0
maxZ(乂)。
若原问题有可行解,则在本阶段的最终单纯形表中,必有Z0和
Yi0(i1,2,L,m),并使人工变量均为非基变量.此时,划去人工变量所在的歹0与人工目标函数所在的行,就得到原问题的初始可行基对应的单纯形表,进入第二阶段.
2、两阶段法描述
2.1基本可行解
当线性规划问题的条件全部为“”时,可按下述方法比较方便的寻找可行解:
设给定线性规划问题为
n
maxzCjxj
ji
n
aijxjbi(i1,L,m)
s.tj1
xj0(j1,L,n)
在第i个约束条件上加上松弛变量xsi(i1,L,m),化为标准形式
m
0xsi
i1
bi(i1,L,m)
(j1,L,n)
n
maxzgxj
j1
n
aoxjxsi
s.tj1
xj0
如
a12
L
a〔n
10
L
0
a21
a22
L
a2n
01
L
0
M
M
M
MM
M
am1
am2
L
amn
00
L
1
由丁这个系数矩阵中含一个单位矩阵(Psi,L,Psm),只要以这个单位矩阵作为基,就可以立即解除基变量值xsibi(i1,L,m),因为有bi0(i1,L,m),由此X(0,L,0,bi,L,bm)T就是一个基可行解。
当线性规划中约束条件为“”、“”时,化为标准形式后,一般约束条件的系
数矩阵中不包括有单位矩阵。
这是为能方便地找出一个初始的基可行解,可添加人工变量来人为地构造一个单位矩阵作为基,称作人工基。
先在不等式左端减去一个大丁等丁零的剩余变量(也称为松弛变量)化为等式,然后再添加一个人工变量。
2.2解线性规划概述
两阶段法第一阶段是先求解一个目标函数中只包含人工变量的线性规划问题,即令
目标函数中其他变量的系数取0,人工便灵的系数取某个正的常数,(一般取1),在保持原问题约束条件不变的情况下求这歌目标函数极小化的解。
显然在第一阶段中,当人工变量取值为0的时候,目标函数值也为0。
这时候的最优解就是原线性规划问题的一个可行解,。
如果第一阶段求解结果最优解的目标函数值不为0,也即最优解的基变
量中含有人工基变量,表明原线性规划问题无可行解。
当第一阶段求解结果表明问题有可行解时,第二阶段是从第一阶段的最终单纯性表出发,去掉人工变量,并按问题原来的目标函数,继续寻找问题的最优解。
2.3两阶段法第一阶段
两阶段法第一阶段是先求解一个目标函数中只包含人工变量的线性规划问题,即令目标函数
中其他变量的系数取0,人工便灵的系数取某个正的常数,(一般取1),在保持原问题约束条件不变的情况下求这歌目标函数极小化的解。
显然在第一阶段中,当人工变量取值为0的时候,
目标函数值也为0。
这时候的最优解就是原线性规划问题的一个可行解。
如果第一阶段求解结果最优解的目标函数值不为0,也即最优解的基变量中含有人工基变量,表明原线性规划问题无可
行解
两阶段法第一阶段是求解第一个LP。
首先我们可以知道,原LP的表达式为
minzCjXj
ji
s.t
Axbx0
其可行域为
D:
x
而我们需要一个辅助的LP,其表达式为
ai
min
s.t
Ax
0,a0
其可行域为
x
D:
Dminw0
0
我们计算以上辅助LP有三种可能结果:
1)、最优值w0,且人工变量皆为非基变量。
从第一阶段的最优解中去掉人工变
量后即为原LP的一个基本可行解。
作为原LP的一个初始基本可行解,再求原问题,从而进入第二阶段。
2)、最优值w0,且存在人工变量皆为基变量,取值为0。
把某个非基变量与该人工变量进行调换。
3)、最优值w0,说明至少有一个人工变量不为0。
原LP无可行解,不需要再做第二阶段计算。
两阶段法第一阶段目的就是判断原LP有无可行解,若有,则可得原LP的一个初始基本可行解,再对原LP进行第二阶段的计算。
2.4两阶段法第二阶段
以第一阶段求得最优解作为初始基本可行解,再用第一阶段求得最优解时的约束条件和原问题的目标函数进行迭代,直到求出最优解。
3、两阶段法求解引例
3.1、两阶段法计算步骤
两阶段法具体计算步骤:
第一步:
求出线性规划的初始基可行解,列出初始单纯形表。
第二步:
进行最优性检验。
第三步;从一个基可行解转换到另一个目标函数值更大的基可行解,歹0出新的单纯形表。
第四步:
重复第二、三步一直到计算终止。
第五步:
去除人工变量。
根据求得初始基本可行解,求得最优解。
其中第三步具体方法如下:
1)、确定换入基变量。
只要检验数j0,对应的变量x就可作为换入基的变量,
当有一个以上检验数大丁零时,一般从中找出最大的一个k
kmaxjj0
其对应变量Xk作为换入基的变量(简称换入变量)。
2)、确定换出基的变量,确定
bich
minaik0
aikak
确定xi为换出基的变量(简称出基变量)。
元素aik决定了从一个基本可行解到另一个可
行解的转移去向,取名主元素。
3)、用换入变量Xk替换基变量中的换出变量,得到一个新的基
(P,L,Pi,Pk,P|i,L,Pm,Pm1,L,Pmn)。
对应这个基可以找出一个新的基本可行解。
并可
划出一个新的单纯形表。
进行如下计算:
a、将主元素所在的I行数字除以主元素
aik,即有
bi
b——a
ak
a
a*
b、为使Pk列变换成单位向量,将单纯形表的第
an
I行数子乘上
(一),加到单纯
aik
形表第i行数字上,计入其相应行。
即有
c、
bibi
aijaj
bi〜
gaik(l
d
aij
一gaik(i
alk
I)
I)
计算单纯形表中各检验数,如下
(CjZj)Cj
Cj
)Ci
aiki
G3ik
1
Ck
iI1
Ciaik
_ClaIk
xmaiki1
Ciaik
1
aIk
(Ck
Zk)
Ciaij
m
Gaj
I1
aij
aik
m
i1
Ciaik
Ck
m
iI1
Ciaij
aij
Ckaik
m
Gaik
i1
(Cj
Zj)
aij
aik
m
(C|
Gaik
其检验数(Ck
(CkZk)
i1m
I1
I1
Z|
i1
由上可看出,检验数计算同样因Xk基变量后,
Zk)应为零,故将单纯形表
中第I行数字乘上(
e^Q)加到该表的检验数上,得新的变量的检验数。
a*
接下来在引例中用以上步骤实际求解
3.2、例一:
用两阶段法求以下问题最优解
maxz3X]x3
X1
X2
X3
4
2x1
X2
X3
1
3x2
X3
9
s.t
Xj0(j1,2,3)
首先第一阶段是将此问题化为标准形式,
在约束条件中加入松弛变量X4,X5,X6,X7后
minwx6x7
Xi
X2X3X4
cf
2x1
X2X3X5X6
s.t
3x2x3
X7
Xj0(j1,L,7)
先用单纯形法解一阶段问题,迭代如下:
J
ZjCjCbBPj
Cj
CBYj
Cj
J
ZjCjcbBPj
cj
cj
其中,Cb时目标函数中基变量的系数构成的维行向量,yj是上表中的第j列,b是上表
中的右端列。
求解过程如下单纯形表3-1
表3-1单纯形表
Cj
0
0
0
0
0
-1
-1
Cb
基
b
Xi
X2
X3
X4
X5
X6
X7
0
X4
4
1
2
1
1
0
0
0
-1
X6
1
-2
1
-1
0
-1
1
0
-1
X7
9
0
3
1
0
0
0
1
cjzj
-2
4
0
0
-1
0
0
0
X4
3
3
0
2
1
1
-1
0
0
X2
1
-2
1
-1
0
-1
1
0
-1
X7
6
6
0
4
0
3
-3
1
cjzj
6
0
4
0
3
-4
0
0
X4
0
0
0
0
1
1
2
1
2
1
~2
0
X2
3
0
1
1
3
0
0
0
1
3
0
Xi
1
1
0
2
3
0
1
2
1
2
1
6
cjzj
0
0
0
0
0
-1
-1
所有判别级数CjZj0,因此达到最优解,在第一阶段问题最优解中,人工变量X6、
X7都是非基变量。
因此我们可得到初始基可行解
Xi,X2,X3,X4,X51,3,0,0,0
第二阶段是将表3-1中的人工变量X6,X7去除,目标函数改为:
maXz3X10x2x30X40x5
再从表3-1最后一个表出发,继续迭代,求解过程的单纯形表如下表3-2
表3-2单纯形表
Cj
-3
0
1
0
0
Cb
基
b
X
X2
X3
X4
X5
0
X4
0
0
0
0
1
_1
2
0
X2
3
0
1
1
3
0
0
-3
X1
1
1
0
2
3
0
1
2
Cjzj
0
0
3
0
3
2
0
X4
0
0
0
0
1
J
2
0
X2
5
2
1
2
1
0
0
J
4
1
X3
3
2
3
2
0
1
0
3
4
Cjzj
9
2
0
0
0
3
4
minz2x13x2
1
2x1
1
/
4
s.txi
3x2
36
xi
x2
10
x"
0
得到其最优解Xi,X2,X3
所以目标函数最优值
3f
1max—
2
3.3、例二:
用两阶段法求解以下问题
首先第一阶段是将此问题化为标准形式,在约束条件中加入松弛变量x3,x4,x5,x6后
minz2x13x2
1-X
2
1
x3
4
x1
3x2
x4x
36
x
x2
x6
10
xi,x2,x3,x4,x5,x60
s.t
先用单纯形法解一阶段问题,迭代如下
1r
ZjCjCbBPjCj
CbYj
cj
1r
ZjCjCbBPjCj
CbYj
cj
其中,Cb时目标函数中基变量的系数构成的维行向量,yj是上表中的第j列,b是上表
中的右端列。
求解过程如下单纯形表3-3
表3-3单纯形表
cj
0
0
0
0
1
1
Cb
基
b
xi
X2
x3
x4
x5
x6
0
乂3
4
1
2
1
4
1
0
0
0
1
X5
36
1
3
0
-1
1
0
1
X6
10
1
1
0
0
0
1
cjzj
2
4
0
-1
0
0
0
X3
3
2
1
4
0
1
0
0
1
4
1
X5
6
-2
0
0
-1
1
-3
0
X2
10
1
1
0
0
0
1
cjzj
-2
0
0
1
0
-4
所有判别级数CjZj0,但此时w6,说明至少有一个人工变量不为0,原问题无可行解,不需要进入第二阶段计算。
3.4、引例分析
根据引例一和引例二的求解过程计算可知,第一阶段使用单纯形法可以得到一般的最优解,而使用两阶段法能在第二阶段找到更精确更优化的最优解。
4、算法比较
4.1大M算法
单纯形法从一个初始可行基开始,要求标准型对应的单纯形表满足两个条件,其
是中心部位具有m阶单位子块,其二是右列元素非负。
对丁线性规划问题
n
minzCjXj
(4.1.1)
jin
aijXj
S.tj1
Xj0,j1,2.L,n
若r(A)m,且对应的厨师单纯形表条件二满足条件一不满足,那么应引入人工变量
Xn1,Xn2,LXnm,构造新的线性规划问题
nnm
minzCjXjMxj
j1jn1
n,(4.1.2)
aijXjXn1bi,i1,2.L,m
s.tj1
xj0,j1,2.L,n,n1,L,nm
其中,M。
且为无限大的数,令yXn1,Xn2,LXnmT,E1,1L1?
,贝U相性规划问
题可表小为
(4.1.3)
minzCtxMETy
Axybs.t
x,y0
设(x,y)T是(4.1.3)的最优解,若y0/UX是(4.1.2)的最优解,若y0,则(4.
1.2)无可行解。
反之,若x是(4.1.2)的最优解,贝U(x,0)T是(4.1.3)的最优解。
故其求解方法步骤为
1)、经初等行变换通常使R
(1),使右列元素非负。
2)、在中心部位人工的添加一个m阶单位子块,即引入人工变量y1,y2,L,ym,得到新的约束方程组。
m
3)、讲目标函数修改为zzMyj,其中M0为足够大的正常数,从而得到新的
j1
LP模型。
4)、用单纯形法求解新的LP模型,试图将y〔,y2,L,ym变成自由变量,最终有两种结果如下
a、设球的新的LP模型最优解为(x,y)T,若y(y〔,y?
L,ym)0,则
x(X1,X2,L,Xn)是原lp问题的最优解。
若y(y〔,y2,l,ym)0,则原LP问题无最优解。
b、新LP无界(无最优解),则原LP问题也无最优解。
4.2算法比较
如果线性规划模型中约束条件系数矩阵中不存在单位向量组,解题时应先加入人工变量,人工地构成一个单位向量组。
而两阶段法和大M法都是可以控制人工变量取值
的方法,并且两种方法都是在单纯形法的基础上进一步求解最优解的方法,两种方法的用法相似,各有优缺点。
通过设置新的变量得到初始基本变量,并通过在目标函数中设置新变量的价格系数为M使得在优化过程中,新变量的值优化为0在计算机求解过程中,由丁计算机只能对M设置有限大的数值,所以在计算过程中可能会产生误差,为了解决这个问题,产生了两阶段法。
所以大M法虽然简单直观,在单纯形表上的计算步骤与普通单纯形法相同,但是大M到底取值多大不能确定,M取值过大也将增加数值计算困难。
用大M法处理人工变量,用手工计算求解时不会碰到麻烦。
但用电子计算机求解时,对M就只能在计算机输入一个机器最大字长的数字。
如果线性规划问题中的参数值与这个代表M的数相对比较接近,或远远小丁这个数字,由丁计算机计算时取值上的误差,可能使计算结果发生错误。
而两阶段法通过对添加人工变量后的线性规划问题分两个阶段来计算,从而可以克服这个困难。
4.3特殊情况
1)、无可行解:
线性规划最优解中出现人工变量大丁零的情况,则此线性规划无可行解。
2)、无界解:
在求目标函数最大值等问题中,在某次迭代的单纯形表中,如果存在这一个不满足符号条件的检验数,并且该列的系数向量的每个元素都小丁或等丁令,则此线性规划无界。
3)、无穷多最优解:
对丁某个最优的基本可行解,如果存在某个非基变量的检验数为零,则此线性规划问题有无穷多最优解。
4)、退化:
在单纯形法计算过程中,基变量有事存在两个以上相同的最小比值,这样在下一次迭代中就有一个或几个基变量等丁零,称之为退化。
而退化就容易产生循环迭代,为避免如此,应遵守以下两条原则:
a、在所有不满足符号条件的检验数对应的非基变量中,选一个下标最小的作为调入变量。
b、若存在两个以上的最小比值,选一个下表最小的作为调出变量。
5、总结
5.1总结概括
求解最优问题是一个艰难而具有挑战性的过程,最优化方法是近几十年形成的一门运用数学方法研究各种系统的优化途径及方案,为决策者提供科学决策的依据的学科,它涵盖了无约束最优化问题、凸集与凸函数、等式约束最优化问题和不等式约束最优化问题等知识点。
通过本课程教学,使学生掌握最优化计算方法的基本概念和基本理论,初步学会处理应用最优化方法解决实际中的碰到的各个问题,培养解决实际问题的能力。
而本次课程设计,我选择了两阶段法这一课题对之进行了一定程度上的研究。
两阶段法是当线性规划模型中约束条件系数矩阵不存在单位向量组时,加入人工变量,人工构造一个单位向量组的方法。
在两阶段法中,第一阶段不考虑原问题是否存在基可行解,给原线性规划问题加入人工变量,并构造仅含人工变量目标函数和要现最小化。
然后用单纯形法求解上述模型,若得到w0,说明原问题存在基可行解,可以进行第二阶段的计算,否则原问题无可行解,应停止计算。
在第二阶段中,将第一阶段计算到的最终表,除去人工变量。
讲目标函数行的系数,换元问题的目标函数系数,作为第二阶段计算的初始表,然后计算。
通过比较大M法和两阶段法,大M法来求解此类问题,虽然一次就可通过出等行变换得到最优解,不用求两次,但是M值不确定,数值计算上并不简单方便,我个人更喜欢两阶段法,得到的结果也更为精确。
5.2个人感言’
通过本次课程设计,我学会了应该怎么从一个问题出发,对该问题进行研究:
首先要对问题有一个大概的了解,再通过查阅资料,对问题有一个深入了解,然后确定问题的研究方向,以及要研究方向所需要进行的工作,然后一步步去完成。
在课程设计过程中,虽然也遇到一些困难,比如查找的文献多为全英图书,方法比较时两种概念略微混淆和一些非客观因素等,但是最终还算克服困难基本完成了此次课程设计。
从前在课堂上可能只关注了一些方法体系,而没有关注理论本身,也不知道其根本,这次课设后才明白追根溯源有时候能更完全的收货知识。
6、参考文献:
[1]光澄.非线性最优化计算方法[M].:
高等教育,2005.
[2]席少霖.非线性最优化计算方法[M].:
高等教育,1992.
[3]薛嘉庆.最优化原理与方法[M].:
活华大学,2003.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 阶段 分析 实现