ch17-有约束最优化问题.docVIP

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch17-有约束最优化问题

第17章 有约束最优化问题 线性规划 线性规划是处理线性目标函数和线性约束的一种较为成熟的方法,目前已经广泛应用于军事、经济、工业、农业、教育、商业和社会科学等许多方面。 线性规划的求解方法主要是单纯形法(Simple Method)。该法由Dantzig于1947年提出,以后经过多次改进。单纯形法是一种迭代算法,它从所有基本可行解的一个较小部分中通过迭代过程选出最优解。其迭代过程的一般描述如下。 ① 将线性规划化为典范形式,从而可以得到一个初始基本可行解(初始顶点),将它作为迭代过程的出发点,其目标值为 。 ② 寻找一个基本可行解 。方法是通过消去法将产生的典范形式化为产生的典范形式。 ③ 继续寻找较好的基本可行解,使目标函数值不断改进。当某个基本可行解再也不能被其它基本可行解改进时,它就是所求的最优解。 MATLAB 优化工具箱中采用的是投影法,它是单纯形法的一种变种。 17.1.1 基本数学原理 线性规划问题的标准形式是(矩阵形式) 线性规划的标准形式要求使目标函数最小化,约束条件取等式,变量x 非负。不符合这几个条件的线性模型要首先转化成标准形式。 17.1.2 有关函数介绍 在 MATLAB工具箱中,可用 linprog函数求解线性规划问题。 假设线性规划问题的数学模型为: 式中 f,x,b,beq,lb和ub 为向量,A和 Aeq为矩阵。 linprog函数的调用格式如下: x=linprog(f,A,b)——只有约束条件A*x=b。 x=linprog(f,A,b,Aeq,beq)——有等式约束,若没有不等式约束,此时要增加 A=[ ]、b=[ ]。 x=linprog(f,A,b,Aeq,beq,Ib,ub)——定义设计变量x 的下界 Ib和上界ub,使得x始终在该范围内。若没有等式约束,令 Aeq=[ ]、beq=[ ]。 x=linprog(f,A,b,Aeq,beq,Ib,ub,x0)——设置初值为x0。该选项只适用于中型问题,默认时大型算法将忽略初值。 x=linprog(f,A,b,Aeq,beq,Ib,ub,x0,options)——用options 指定的优化参数进行最小化。 [x, fvaI]=linprog(…)返回解x处的目标函数值fvaI。 [x, lambda, exitfIag]=linprog(…)返回exitfIag值,描述函数计算的退出条件。 [x, lambda, exitfIag, output]=linprog(…)返回包含优化信息的输出变量output。 [x, fval, exitfIag, output, lambda]=linprog(…)将解x 处的拉格朗日乘子返回到 lambda参数中。 调用格式中,lambda参数是解x 处的拉格朗日乘子。它有以下一些属性: lambda.lower——lambda的下界。 lambda.upper——lambda的上界。 lambda.ineqlin——lambda的线性不等式。 lambda.eqIin——lambda的线性等式。 其他参数意义可参见表15-7和表15-8。 根据问题规模的不同,linprog函数使用不同的算法: 大型优化算法——大型优化算法采用的是 LIPSOL法。该法在进行迭代计算之前首先要进行一系列的预处理。 中型优化算法——linprog函数使用的是投影法,就象quadprog 函数的算法一样。linprog 函数使用的是一种活动集方法,是线性规划中单纯形法的变种。它通过求解另一个线性规划问题来找到初始可行解。 对于大型算法,算法的第1步涉及到一些约束条件的预处理问题。有些问题可能导致linprog函数退出,并显示不可行的消息。在本例中,exitfIag 参数将被设为负值以表示优化失败。 若 Aeq参数中某行的所有元素都为零,但Beq 参数中对应的元素不为零,则显示以下退出消息: Exiting due to infeasibiIity: amn aII zero row in row in the constraint matrix does not have a zero in corresponding right hand side entry. 若x的某一个元素没在界内,则给出以下消息: Exiting due to infeasibiIity:objectivef*x is unbounded beIow. 若Aeq参数的某一行中只有一个非零值,则 x中的相关值称为奇异变量。这里,x中该成分的值可以用Aeq 和 Beq算得。若算得的值与另一个约束条件相矛盾,则给出以下退出消息: Exiting due to infeasibiIity:singIe

文档评论(0)

tiangou + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档