- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
信赖域的相关知识
最优化方法结课论文
——信赖域的相关知识
姓名: 历红影
学号:2010052210
学院:理学院
班级:信息102班
教师:葛仁东
信赖域方法是非线性优化的一类重要的数值计算方法。它在近二十年来受到了非线性优化研究界非常的重视,特别是最近几年,一直是非线性优化的研究热点。目前,信赖域方法已经和传统的线收索方法并列为非线性规划的两类主要数值方法。信赖域方法的研究起始于Powell 1970。但是,人们发现信赖域方法的基本技巧在一定意义下等价于十分著名的求解非线性最小二乘的Levenberg-Marquadt方法。
一.信赖域理论
信赖域方法与线搜索技术一样, 也是优化算法中的一种保证全局收敛的重要技术。 它们的功能都是在优化算法中求出每次迭代的位移, 从而确定新的迭代点。所不同的是: 线搜索技术是先产生位移方向(亦称为搜索方向), 然后确定位移的长度(亦称为搜索步长)。而信赖域技术则是直接确定位移, 产生新的迭代点。
信赖域方法的基本思想是:首先给定一个所谓的“信赖域半径”作为位移长度的上界,并以当前迭代点为中心以此“上界”为半径确定一个称之为“信赖域”的闭球区域。然后,通过求解这个区域内的“信赖域子问题”(目标函数的二次近似模型) 的最优点来确定“候选位移”。若候选位移能使目标函数值有充分的下降量, 则接受该候选位移作为新的位移,并保持或扩大信赖域半径, 继续新的迭代。否则, 说明二次模型与目标函数的近似度不够理想,需要缩小信赖域半径,再通过求解新的信赖域内的子问题得到新的候选位移。如此重复下去,直到满足迭代终止条件。
信赖域方法解决无约束线性规划的基本算法结构。设是第次迭代点,记,,是Hesse阵的第次近似,则第次迭代步的信赖域子问题具有如下形式:
,
其中是信赖域半径,是任一种向量范数,通常取-范数或-范数。
定义为在第步的实际下降量:,
定义对应的预测下降量:。
定义他们的比值为:
一般的,我们有。因此,若,则,不能作为下一个迭代点,需要缩小信赖半径重新求解问题。若比较接近于,说明二次模型与目标函数在信赖与范围内有很好的相似,此时可以作为新的迭代点,同时下一次迭代时可以增大信赖半径,对于其他情况,信赖半径可以保持不变。
二. 信赖域算法步骤
Step1. 给出初始点,信赖域半径的上界,,
Step2. 计算,如果,停止;否则,计算。
Step3. (近似)求解子问题(2),得到。
Step4. 计算和,令
Step5. 校正信赖域半径,令
,转步骤3;
,转步骤6;
,转步骤6;
Step6. 令k=k+1,转Step2.
很成功迭代:,信赖域扩大;
成功迭代:,信赖域维持不变;
不成功迭代:,信赖域缩小。
算法参数选择:,或者。
三. 信赖域算法图框
四.算法实现
例1.用信赖域法求解,该问题的精确解为。
解:
(1) 文件
(2) 文件
(3) 文件
例2.用信赖域法求解,该问题的精确解为。
解:
(1) 函数修改
(2) 函数修改
(3) 函数修改
五.心得体会
最优化问题和解方程问题在很多时候是等效的。比如一阶最性条件就是个方程,而一些解方程的方法,就是将方程反构成最优化问题来解。Matlab的非线性方程求解函数fsolve,其实就是把求函数值零点转化为求函数值范数的最小值,用最优化问题来求解。这样的例子数不胜数,体现了数学中问题转化的基本思想,在论文中也有具体体现。
在最优化理论系统中,除了可以感受到一般数学理论的那种纯粹、抽象、透彻、简洁,也能感受一种无处不在的实用主义价值观,“实用”、“好用”、“凑效”这些看起来不那么“数学”的评价标准在这个领域中也有着相当的地位。而在各种“数学”、“非数学”的标准之间的权衡取舍,本身就是一个多目标优化问题而体现出某种对系统性思维的诉求。思考、研究这样的问题,即有用,又有趣,令人快乐无穷。
附录:
function?[x,k]=quctr(n,err)%本程序实现用信赖域方法求解无约束最优化问题,n是变量个数,err为精度%?min?f(x)%f是函数,g是梯度,需事先写成m文件%以下是初始步%x=ones(n,1);x=rand(n,1);???%n是变量个数B=eye(n);???%初始化对称矩阵,用以利用BFGS校正得到Hesse矩阵的近似dbar=0.1*norm(g(x
文档评论(0)