罚函数罚与乘子法 () 2.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
罚函数法 罚函数法是能够处理一般的约束优化问题:的一类方法。其基本思想是将约束优化问题卑微无约束问题来求解。罚函数是由目标函数和约束函数的某种组合得到的函数,对于等式约束的优化问题,可以定义如下的罚函数: 将约束优化问题转化为无约束优化问题;对于不等式约束的优化问题 可以定义如下的罚函数: 对于同时存在等式约束和不等式约束的优化问题,可以去上面两个罚函数的组合。当然罚函数还有其他的取法,但是构造罚函数的思想都是一样的,即使得在可行点罚函数等于原来的目标函数值,在不可行点罚函数等于一个很大的数。 外点罚函数法 1.算法原理 外点罚函数法是通过一系列罚因子,求罚函数的极小值来逼近原约束问题的最有点。之所以称为外点罚函数法,是因为它是从可行域外部向约束边界逐步靠拢的。 2,。算法步骤 用外点罚函数法求解线性约束问题的算法过程如下: 1,给定初始点,罚参数列及精度,置; 2,构造罚函数; 3,用某种无约束非线性规划,以为初始点求解; 4,设最优解为,若满足某种终止条件,则停止迭代输出,否则令,转2; 罚参数列的选法:通常先选定一个初始常数和一个比例系数,则其余的可表示为。终止条件可采用,其中。 3 算法的MATLAB实现 function [x,minf] = minPF(f,x0,A,b,c1,p,var,eps) % 目标函数:f; % 初始点: x0; % 约束矩阵: A; % 约束右端向量:b; % 罚参数的初始常数: c1; % 罚参数的比例系数: p; % 自变量向量 Var; % 精度: eps; % 目标函数取最小值时自变量值: x; % 目标函数的最小值:minf; format long; if nargin == 7 eps = 1.0e-4; end k = 0; FE = 0; for i=1:length(b) FE = FE + (var*transpose(A(1,:)) - b(i))^2; end x1 = transpose(x0); x2 = inf; while 1 M = c1*p; FF = M*FE; SumF = f + FF; [x2,minf] = minNT(SumF,transpose(x1),var); if norm(x2 - x1)=eps x = x2; break; else c1 = M; x1 = x2; end end minf = Funval(f,var,x); format short; 4.算法举例 用外点罚函数法求下面的优化问题:其中取,初始点取。 解:由题已知,则每一步迭代需求解的罚函数为: 在MATLAB命令窗口中输入: f = 0.5*t^2+s^2/4; A=[1 1];b=1; c1=0.05;p=2; [x,minf]=minPF(f,[0 0],A,b,c1,p,[t s]) 所得结果为: x=0.3333 0.6666 minf = 0.1666 对于一般的等式约束问题也可以用外点罚函数法解决: function [x,minf] = minGeneralPF(f,x0,h,c1,p,var,eps) format long; if nargin == 6 eps = 1.0e-4; end k = 0; FE = 0; for i=1:length(h) FE = FE + (h(i))^2; end x1 = transpose(x0); x2 = inf; while 1 M = c1*p; FF = M*FE; SumF = f + FF; [x2,minf] = minNT(SumF,transpose(x1),var); if norm(x2 - x1)=eps x = x2; break; else c1 = M; x1 = x2; end end minf = Funval(f,var,x); format short; 例 用通用罚函数法求下面的优化问题: 其中取,初始点取为。 外点罚函数法除了可以求含等式约束的优化问题外,还可以求混合约束的优化问题,不过其罚函数形式要修正。 通过引入罚函数 可以转化为无约束优化问题。 function [x,minf] = minConPF(f,x0,g,h,c1,p,var,eps) format long; if nargin == 7 eps = 1.0e-4; en

文档评论(0)

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

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

版权声明书
用户编号:6153235235000003

1亿VIP精品文档

相关文档