- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
修正单纯形法求解约束优化问题
修正单纯形法求解约束优化问题
姓名 王铎
学号 2007021271
班级 机械078
日期 2010/6/23
一.问题分析
求解约束优化问题中,假如目标函数和约束条件都是线性的,像这类约束函数和目标函数都是线性函数的优化问题称作线性规划问题。从实际问题中建立数学模型一般有以下三个步骤根据影响所要达到目的的因素找到决策变量;求解线性规划问题的基本方法是单纯形法,1、线性规划问题的formalization
问题(1.1)称为线性规划问题:
x= arg min_x c^T x
s.t. Ax=b
其中x为n维列向量,A为m*n的矩阵,b和c分别为m,n维的常数向量。
任意一个线性不等式组约束下求解线性函数的最大最小值问题都可以归结到问题(1.1)来。
比如
A(i,:) x = b(i) =A(i,:) x + y(i) = b(i)y(i)=0
A(i,:) x = b(i)=A(i,:) x - y(i) = b(i)y(i)=0 (1.3)
x=x=x-xx=0x=0 (1.4)
2、单纯形法
设mn,即变量个数大于约束的个数。(否则若m=n,则(1.1)的约束可能唯一确定x,最优问题就没有意义,若mn,则可能符合约束的x不存在,
最优问题同样没有意义。)
此时记A=[B,N],B为m*m的方阵,N为m*(n-m)的矩阵,假设B非奇异,(奇异的情况后面会讨论)
则x=[x_B,x_N]^T=[B^-b,0]^T满足(1.1)的约束。所有这样的x(因为对A进行列重排可得到不同的B,也就有不同的N)组成的集合称为问题(1.1)的
基解。
理论基础:
线性规划问题(1.1)的满足约束Ax=b , x=0的所有x的集合F称为(1.1)的可行解,则有
F是凸多边形,
且
问题(1.1)的最优解如果存在必定可以在F的顶点处找到,且F的顶点是基解的子集,也就是说,穷举基解,则必定可以找到(1.1)的最有解
单纯形法在已知一个基解的情况下,通过一个规则来搜索其他基解得到最优解,步骤如下:
1、用非基元素x_N通过约束表出x_B
2、将x代入目标函数c^T x 得到关于x_N的线形函数z_0 + z^T x_N
3、任取x_N中系数z_i0的项 z_i x_i ,增加x_i(因为此时x_N=0 = c^Tx=z_0,增加x_i可以使c^Tx=z_0+x_i z_i减小),若z=0则该解为最
优解,结束。(此时算法得到最优解,有关证明见《线性规划》P36定理3.1)
4、x_i增加的步长必须满足x=0的约束。此时x_N不必考虑,因为x_N=0,而x_B用x_N表出,所以选择的步长必须保证x_B=0,若x_B=0对任意
的l成立,那么,该问题无最优解,因为l可以任意大,意味着z_0可以任意小)否则选取的最大步长将使得x_B中的一个元素x_r变为0(详细过
程如下),此时得到了另一个基解:以x_B\x_r 并上 x_i 为基的基解。这个基解得到的函数值_0=z_0-z_i*lz_0为x_i增加的步长。这样
目标函数就减小了单纯形法每次搜索都保证目标函数的非增性。(也有可能不变,这时采用最小下标法避免循环)。
详细过程:
[B,N][x_B =b x_N]
假设一个基解已知:
B x_B + N x_N= b
代入c^T x: z=c^Tx =c_B^T B^- b - c_B^T B^- N x_N + c_N^T x_N
选择z_i0的x_i增加其值,所增加的步长l满足x_B=0,(若不存在这样的z_i,则得到最优解,算法结束)
则有
x_B= B^- b - B^- N x_N - (B^-N)(i,:)*l = B^- b - B^ - (B^-N)(i,:)*l =0 (若B^ - (B^-N)(i,:)=0则对任意的l有x_B=0,此时该问
题无最优解)
=
l=min{ (B^- b)(j)/(B^-N)(i,j)
若l=(B^- b)(r)/(B^-N)(i,r),则x_r=0,x_i=l
把x_i添入x_B,把x_r添入x_N,再用上述过程进行计算
3、有效单纯形法
每次将x_i入基x_r出基时,B要变动,此时导致无论用x_N表示x_B(1.5)还是c^Tx(1.6)都要重新计算一遍B^-,如何利用B变动前后的关系有效计
算(1.5,
文档评论(0)