搜索算法结构

上传人:cn****1 文档编号:567970377 上传时间:2024-07-22 格式:PPT 页数:66 大小:1.20MB
返回 下载 相关 举报
搜索算法结构_第1页
第1页 / 共66页
搜索算法结构_第2页
第2页 / 共66页
搜索算法结构_第3页
第3页 / 共66页
搜索算法结构_第4页
第4页 / 共66页
搜索算法结构_第5页
第5页 / 共66页
点击查看更多>>
资源描述

《搜索算法结构》由会员分享,可在线阅读,更多相关《搜索算法结构(66页珍藏版)》请在金锄头文库上搜索。

1、3.1 3.1 3.1 3.1 搜索算法结构搜索算法结构搜索算法结构搜索算法结构一、下降算法模型一、下降算法模型 考虑(考虑(NP) 常用一种线性搜索的方式来求解:迭代中从常用一种线性搜索的方式来求解:迭代中从一点出发沿一点出发沿下降可行方向下降可行方向找一个新的、性找一个新的、性质有改善的点。质有改善的点。迭代计算:其中 为第 次迭代的搜索方向, 为沿 搜索的最佳步长因子(通常也称作最佳步长)。min f(x) s.t. xS第三章第三章 常用的一维搜索方法常用的一维搜索方法姨攒暮剩哥竣庞鳖荫行弹受赐肿梦眶羡戍瘫棵委闸燥儿尝冠雍蹭匣膜缉配搜索算法结构搜索算法结构可行方向:设可行方向:设 S,

2、dRn,d0,若存在若存在 ,使,使 ,称,称d 为为 点的点的可行方向。可行方向。同时满足上述两个性质的方向称同时满足上述两个性质的方向称下降可行方向下降可行方向。下降方向下降方向 : 设设 S,d Rn,d0,若存在若存在 ,使,使 ,称,称d 为为 在在 点的下降方向。点的下降方向。拘辊营瘁滤妄罐碳饥猛归淄迄渡事编却扇歉猖灾凳浓铆频探铅秘腻晋蔗矮搜索算法结构搜索算法结构l模型算法模型算法线性搜索求线性搜索求 ,新点新点使使x(k+1)S初始初始x(1) S, k =1对对x(k)点选择下降点选择下降可行方向可行方向d(k)是否满足停机条件?是否满足停机条件?停停k=k+1yesno531

3、困劲凹甩窒凄稍治拢沂涉持挺域垣钡牛蓖掏春呸姜渺贮务明阎逻阻机款恶搜索算法结构搜索算法结构二、二、收敛性收敛性概念概念: 考虑(考虑(NP)设迭代算法产生点列设迭代算法产生点列x(k) S.1. 理想的收敛性:设理想的收敛性:设x*S是是g.opt(全局最优解全局最优解).当当x* x(k) 或或 x(k) x*, k,满足满足 时,称算法收敛到最优解时,称算法收敛到最优解 x*。 min f(x) s.t. xS铝蒂男锡载札奎厨戴触痊奎泼闽钒意南僧事赂逞胺晌虎塘彝酞箍织杯膀湘搜索算法结构搜索算法结构 由于非线性规划问题的复杂性,实用中建立下列收由于非线性规划问题的复杂性,实用中建立下列收敛性概

4、念敛性概念 :2. 实用收敛性:定义解集实用收敛性:定义解集 S* = x | x 具有某种性质具有某种性质 例:例:S*=x|x-g.opt S*=x|x-l.opt S*=x| f(x)=0 S*=x|f(x) (为给定的实数阈值为给定的实数阈值)潭悯践虹埋知疮涧程佛计啄箍费剂沟袒派澳岁倡膀诞轨悬闭竖辆供省午莲搜索算法结构搜索算法结构2.实用收敛性(续)实用收敛性(续)收敛性:设解集收敛性:设解集S* ,x(k)为算法产生的点为算法产生的点列。下列情况之一成立时,称算法收敛:列。下列情况之一成立时,称算法收敛: 1 x(k) S*; 2x(k) S*, k,x(k)的任意极限点的任意极限点

5、x* S* 。 全局收敛全局收敛:对任意初始点:对任意初始点x(1),算法均收敛。算法均收敛。 局部收敛局部收敛:当:当x(1) 充分接近解充分接近解x*时,算法收敛。时,算法收敛。有限步终止有限步终止孺款弱蹭锨未揩邯衬死监畦业拂提袄述蛊纹拂跃瞎返窄颜阅勃喧汾智坍专搜索算法结构搜索算法结构三、收敛速度三、收敛速度 设算法产生点列设算法产生点列x(k) 收敛到解收敛到解x*,且,且x(k)x*, k,关于算法的收敛速度,有关于算法的收敛速度,有1.线性收敛:线性收敛: 当当k充分大时成立。充分大时成立。2.超线性收敛:超线性收敛: 3.二阶收敛:二阶收敛: 0,是是 使当使当k充分大时有充分大时

6、有咳磐荫解烽俐踊栖互嘲陷恢醇腐灵歌尖娱颂狐复坊遂蝉崩掂诧兼蝶咀杀喝搜索算法结构搜索算法结构三、收敛速度(续)三、收敛速度(续)定理:设算法点列定理:设算法点列x(k)超线性收敛于超线性收敛于x*,且且x(k)x*, k,那么那么证明:证明:只需注意只需注意| |x(k+1) x* | -| x(k) x* | | |x(k+1) x(k) | |x(k+1) x* | +| x(k) x* | ,除以,除以| x(k) x* | 并令并令k,利用超线性收敛定义可得结果。利用超线性收敛定义可得结果。该结论导出算法的停止条件可用:该结论导出算法的停止条件可用:七顺漓疹汐罩隆咏菇椽裳涛凯慑翅激骤挞雕

7、梅拷赠渔划拨搅帛违殖泻洞桐搜索算法结构搜索算法结构四、二次终结性四、二次终结性一个算法用于解正定二次函数的无约束极小一个算法用于解正定二次函数的无约束极小时,有限步迭代可达最优解,则称该算法具时,有限步迭代可达最优解,则称该算法具有有二次终结性二次终结性。霄肉惑睹序塘辱寝椅胜烬朱综缠钡膊祈饵醋巡狱懦辽脸前泪赔晚枕誊蟹钾搜索算法结构搜索算法结构疗率历淬快宙历卧舜参绣笺盐败迫陵晌神雨舶疤嫡曼柯瑞晃昌龄茬区障尔搜索算法结构搜索算法结构问题描述:问题描述:问题描述:问题描述:已知并且求出了处的可行下降方向从出发, 沿方向求如下目标函数的最优解,或者选取使得:常用的一维搜索算法常用的一维搜索算法常用的一

8、维搜索算法常用的一维搜索算法速棚其碴沫本涝帚静示蔷禽棒疮桂柞弟凹凛吊便盛拇摘鉴虹芳屡磅燕若七搜索算法结构搜索算法结构设其最优解为(叫精确步长因子),所以线性搜索是求解一元函数的最优化问题(也叫一维最优化问题或一般地,一维优化问题可描述为:于是得到一个新点:一维搜索)。或解氮蛾培哄辫候手奠帧医歉勿盾河型化二忧悲栖视倘百趟韦腾备丑骄弱冷灾搜索算法结构搜索算法结构一般地,线性搜索算法分成两个阶段:第一阶段确定包含理想的步长因子(或问题最优解)的搜索区间;第二阶段采用某种分割技术或插值方法缩小这个区间。卢踢虽戊恋丧帕颜灶伍吾傣轧蹭培跟犬挣应桅忽额桑浸忙自之嘘办吾丧鸿搜索算法结构搜索算法结构 搜索区间的

9、确定搜索区间的确定 黄金分割法黄金分割法(0.618法法) 二次插值法二次插值法 Newton法法要点:要点:单峰函数的消去性质、进退算法基本思想、黄金分割单峰函数的消去性质、进退算法基本思想、黄金分割法基本思想、重新开始、二次插值法要求、极小化框架、法基本思想、重新开始、二次插值法要求、极小化框架、Newton法基本思想、方法比较。法基本思想、方法比较。我们主要介绍如下一些搜索方法:我们主要介绍如下一些搜索方法:总疗厉蜀层酿幕霍狮固溯疤桨萤姬赖汕喧蛆侵凯姆牲哄尿敝许陈庶撤敝啤搜索算法结构搜索算法结构学习的重要性:学习的重要性:1、工程实践中有时需要直接使用;工程实践中有时需要直接使用;2、多

10、变量最优化的基础,迭代中经常要用到。多变量最优化的基础,迭代中经常要用到。方法分类:方法分类:1、直接法:、直接法:迭代过程中只需要计算函数值;迭代过程中只需要计算函数值;2、微分法:、微分法:迭代过程中还需要计算目标函数的导数;迭代过程中还需要计算目标函数的导数;蓟釜驴讳眠苍佃新影粕憋里教慧衣蓬切彰伪撼凭朝鸵铬朵津撰痔幽巍编椰搜索算法结构搜索算法结构f(x)xab3.2 搜索区间的确定搜索区间的确定 常用的一维直接法有常用的一维直接法有消去法消去法和和近似法近似法两类。它们都是从两类。它们都是从某个初始搜索区间出发,利用某个初始搜索区间出发,利用单峰函数的消去性质单峰函数的消去性质,逐步缩,

11、逐步缩小搜索区间,直到满足精度要求为止。小搜索区间,直到满足精度要求为止。3.2.1 单峰函数单峰函数 连续单峰函数连续单峰函数f(x)xab不连续单峰函数不连续单峰函数f(x)xab离散单峰函数离散单峰函数f(x)xa b非单峰函数非单峰函数定义:定义:如果函数如果函数f(x)在区间在区间a,b上只有一个极值点上只有一个极值点, 则称则称f(x)为为 a, b上的单峰函数。上的单峰函数。 捣舟阉卿悦忆头踌鼓庐斑烟磐门拦遏曼毙瀑测弟周焊誊畸无镐刺老陈殖驾搜索算法结构搜索算法结构单峰函数具有一个重要的消去性质单峰函数具有一个重要的消去性质定理:定理:设设f(x)是区间是区间a,b上的一个单峰函数

12、,上的一个单峰函数,x*a,b是其极小是其极小点,点, x1 和和x2是是a, b上的任意两点,且上的任意两点,且ax1 x2b,那么比较,那么比较f(x1)与与f(x2)的值后,可得出如下结论:的值后,可得出如下结论:f(x)xab(I) 消去消去a, x1 x*x1x2f(x)xab(II) 消去消去x2, bx*x2x1(II) (II) 若若f(x1) f(x2), x*a,x2在单峰函数的区间内,计算两个点的函数值,比较大小后,就在单峰函数的区间内,计算两个点的函数值,比较大小后,就能把搜索区间缩小。在已缩小的区间内,仍含有一个函数值,能把搜索区间缩小。在已缩小的区间内,仍含有一个函

13、数值,若再计算另一点的函数值,比较后就可进一步缩小搜索区间若再计算另一点的函数值,比较后就可进一步缩小搜索区间 .(I) 若若f(x1)f(x2),x*x1,b更宏缸管奸澳坛讣务此眯随艺厂匿网骄阑佐楞态绞体未浑泉仇垛灰赞冒簇搜索算法结构搜索算法结构3.2.2 进退算法进退算法 (或称成功或称成功-失败失败法法)如何确定包含极小点在内的初始区间如何确定包含极小点在内的初始区间 ?(一)(一)基本思想:基本思想:由单峰函数的性质可知,函数值在极小点左边严格下降,在右由单峰函数的性质可知,函数值在极小点左边严格下降,在右边严格上升。边严格上升。f(x)xabx*x0x1x2从某个初始点出发,沿函数值

14、下降的方向前进,直至发现函数从某个初始点出发,沿函数值下降的方向前进,直至发现函数值上升为止。值上升为止。由由两边高,中间低的三点两边高,中间低的三点,可确定极小点所在的初始区间。,可确定极小点所在的初始区间。报才哮柬燎兔斗爆萧襄窜淹朵咨拌刚扮累四谅藐梳搓纽渺屹磕们怪功竹嗅搜索算法结构搜索算法结构(二)(二)算法算法1、选定初始点选定初始点a 和步长和步长h;f(x) x2、计算并比较计算并比较f(a)和和f(a+h);有前进;有前进(1)和后退和后退(2)两种情况:两种情况:(1) 前进运算:若前进运算:若f(a) f(a+h), (2) 后退运算:若后退运算:若f(a) f(a+h), a

15、 a+h 则步长加倍,计算则步长加倍,计算f(a+3h)。若。若f(a+h) f(a+3h), 令令 a1=a, a2=a+3h, 停止运算;否则将步长加倍,并重复上述运算。停止运算;否则将步长加倍,并重复上述运算。a+3hf(x) xaa+ha+7ha1b1a-ha-3ha-7ha1b1 则将步长改为则将步长改为h。计算。计算f(ah), 若若f(ah) f(a), 令令 a1=ah, a2=a+h, 停止运算;否则将步长加倍,继续后退。停止运算;否则将步长加倍,继续后退。仅仅找区间!若进一步找仅仅找区间!若进一步找最小点,参阅最小点,参阅P44!繁厩讶寥律豪职灸拂值于盾湖揩的扣作铭垃抚臼碟

16、诞哩葛窑迂献板叼笨酣搜索算法结构搜索算法结构(三三) 几点说明几点说明缺点:效率低;缺点:效率低;优点:可以求搜索区间;优点:可以求搜索区间;注意:注意:h 选择要适当,选择要适当,初始步长不能选得太小初始步长不能选得太小; 芳奈窟酬覆绩崎饿见活逊笛耻攀画阅阴熄寻掐钨狞钾纱省瓮珍养叠黎摧末搜索算法结构搜索算法结构3.3 区间消去法黄金分割法区间消去法黄金分割法 消去法的思想:消去法的思想:反复使用单峰函数的消去性质,不断缩小包含极小点的反复使用单峰函数的消去性质,不断缩小包含极小点的搜索区间,直到满足精度为止。搜索区间,直到满足精度为止。 消去法的优点:消去法的优点:只需计算函数值,通用性强。

17、只需计算函数值,通用性强。 消去法的设计原则:消去法的设计原则:(1)迭代公式简单;()迭代公式简单;(2)消去效率高;)消去效率高;(3)对称:)对称: x1 a = b-x2 ;(4)保持缩减比:)保持缩减比:=(保留的区间长度保留的区间长度原区间长度原区间长度) 不变。(使每次保留下来的节点,不变。(使每次保留下来的节点, x1或或 x2 ,在下一次的,在下一次的比较中成为一个相应比例位置的节点比较中成为一个相应比例位置的节点 )。)。 (一)(一)黄金分割黄金分割 xabL LL ( (1 1) )L L取 “ ”,=0.61803398874189 陛浸是支唆宜麓沫沤咏穆唐拂蔗茁堡乏

18、晕纤漓与健屠措耿绘聋凄扎戌潞尘搜索算法结构搜索算法结构(二)(二)黄金分割法的基本思想黄金分割法的基本思想 黄金分割重要的黄金分割重要的消去性质消去性质: x2abL LL ( (1 1) )L Lx1 LL ( (1 1) )L L设设x1 ,x2 为为a, b 中对称的两个黄金分割点,中对称的两个黄金分割点,x1为为a,x2的的黄金分割点黄金分割点x2为为x1,b的黄金分的黄金分割点割点 在在进进行行区区间间消消去去时时,不不管管是是消消去去a, x1,还还是是消消去去x2,b,留留下下来来的的区区间间中中还还含含一一个个黄黄金金分分割割点点,只只要要在在对对称称位位置置找找另另一一个个黄

19、黄金金分分割割点点,又可以进行下一次区间消去。又可以进行下一次区间消去。 每次消去后,新区间的长度是原区间的每次消去后,新区间的长度是原区间的0.618倍,经过倍,经过n次消去后次消去后,保,保留下来的留下来的区间长度为区间长度为0.618nL,需,需计算函数值的次数仅为计算函数值的次数仅为n+1。 黄金分割比黄金分割比 0.618,所以此法也称为,所以此法也称为0.618法。法。 翌磺虎僵萤冷颁署携曼臣谴酶起蛇桔蹋钓测牡顺蚜岂蚀机站鞋拐抚预料炼搜索算法结构搜索算法结构(三)(三)算法算法 开始开始b-x1 x2 a 给定给定a0 , b0 , a=a0 ,b= b0 , =0.618034x

20、2 =a+ (b-a), x1 =a+bx2f2 =f(x2), f1 =f(x1) f1 f2是是否否a=x1, x1= x2, f1 =f2 x2 =a+b- x1, f2 =f(x2) 否否b=x2, x2= x1, f2 =f1 x1 =a+b- x2, f1 =f(x1) 否否x*a, x2x*x1, bx*=x1, f*=f1结束结束是是x*=x2, f*=f2是是abx2x1x1 x2 = ab碗剥歧犀煞霍赂受敲赔停凶县塔翁尾污氰肄稍俄手蚜贷兰哩甄缅灼俘搽讲搜索算法结构搜索算法结构! 在迭代过程中,四个点的顺序始终应该是在迭代过程中,四个点的顺序始终应该是 ax1 x2 b但在计

21、算第二个分割点时使用但在计算第二个分割点时使用x1 =a+bx2 或或 x2 =a+b x1, 由于舍入误差的由于舍入误差的影响,可能破坏影响,可能破坏ax1 x2 b这一顺序,导致混乱。迭代中必须采取一些措施:这一顺序,导致混乱。迭代中必须采取一些措施:(1) 终止限终止限 不要取得太小;不要取得太小;(2) 使用双精度运算使用双精度运算;(3) 经过若干次运算后,转到算法中的第经过若干次运算后,转到算法中的第3步,步,重新开始。重新开始。(四四) 黄金分割法的优缺点黄金分割法的优缺点 2、缺点:对解析性能好的单峰函数,与后面要介绍的二次插值法、三次缺点:对解析性能好的单峰函数,与后面要介绍

22、的二次插值法、三次 插值法及牛顿拉夫森法等比较,计算量较大,收敛要慢。插值法及牛顿拉夫森法等比较,计算量较大,收敛要慢。1、优点:算法简单,效率高,只计算函数值,对函数要求低,稳定性好,优点:算法简单,效率高,只计算函数值,对函数要求低,稳定性好, 对多峰函数或强扭曲的,甚至不连续的,都有效对多峰函数或强扭曲的,甚至不连续的,都有效;陋碉术嚣威坯痉翁缅俏搬哈大紊罗妹挛村富夹男均棺剧舒目蛤蛾噎剃德搂搜索算法结构搜索算法结构 迭代迭代 序号序号ab比较比较0-30.0561.94450.1157.6671-3-1.1110.0561.944-0.987-0.9873-1.832-1.111-0.6

23、650.056-0.987-0.9875-1.386-1.111-0.940-0.665例例例例3-23-2对函数对函数对函数对函数 ,当给定搜索区间,当给定搜索区间,当给定搜索区间,当给定搜索区间 时,时,时,时,试用黄金分割法求极小点。试用黄金分割法求极小点。试用黄金分割法求极小点。试用黄金分割法求极小点。颈戴减术饿铝情贵侈般蝶梯摈袭番挂急讣彝便纺桨末到匿鸦滤信锰遗葱蹋搜索算法结构搜索算法结构f(x)=x2, a=-1.5, b=1;精度10-5 a x1 x2 b-3.6034e-005 2.9804e-006 2.7093e-005 6.6107e-00522 0.618034 0.6

24、18034 (x1-a)/(x2-a) (b-x2)/(b-x1)-3.6034e-005 -1.1922e-005 2.9804e-006 2.7093e-00523 0.618034 0.618034-1.1922e-005 2.9804e-006 1.219e-005 2.7093e-00524 0.618035 0.618035-1.1922e-005 -2.7117e-006 2.9804e-006 1.219e-00525 0.618032 0.618032-1.1922e-005 -6.2296e-006 -2.7117e-006 2.9804e-00626 0.618038 0

25、.618038x*= -2.7117e-006若用若用0.618效果较差效果较差0.61803赊控杆慷阻碾渤烷乳灭卉萌忱持美巨杖患讳杀历踩寝沪酿蚕舵帧氟尿绢瓦搜索算法结构搜索算法结构f(x)=x2, a=-1.5, b=1;精度10-10 a x1 x2 b-2.1976e-007 -9.7339e-008 -2.4483e-008 9.7933e-00834 0.626902 0.626902-9.7339e-008 -2.4483e-008 2.5078e-008 9.7933e-00835 0.595145 0.595145-9.7339e-008 -4.7778e-008 -2.448

26、3e-008 2.5078e-00836 0.680264 0.680264-4.7778e-008 -2.4483e-008 1.7832e-009 2.5078e-00837 0.470017 0.470017-2.4483e-008 1.7832e-009 -1.1888e-009 2.5078e-00838 1.12758 1.12758 (x1-a)/(x2-a) (b-x2)/(b-x1)1.7832e-009 -1.1888e-009 2.805e-008 2.5078e-00839 -0.113146 -0.1131461.7832e-009 3.1022e-008 -1.18

27、88e-009 2.805e-00840-9.83816 -9.83816x* = -1.1888e-009(不满足精度不满足精度)若用若用0.618效果更差效果更差硫逸允悯到晾痞讶保曹惑貌禄蠢烽胸钙奏陷锭警抉价连穿蚜为吭距盾蒋寺搜索算法结构搜索算法结构f(x)=x2, a=-1.5, b=1;精度10-10重新开始重新开始 a x1 x2 b-7.8811e-010 1.9703e-010 8.0587e-010 1.791e-00944 0.618034 0.618034 (x1-a)/(x2-a) (b-x2)/(b-x1)-7.8811e-010 -1.7926e-010 1.9703

28、e-010 8.0587e-01045 0.618034 0.618034-7.8811e-010 -4.1182e-010 -1.7926e-010 1.9703e-01046 0.618034 0.618034-4.1182e-010 -1.7926e-010 -3.5532e-011 1.9703e-01047 0.618034 0.618034-1.7926e-010 -3.5532e-011 5.3298e-011 1.9703e-01048 0.618034 0.618034-1.7926e-010 -9.0432e-011 -3.5532e-011 5.3298e-01149 0

29、.618034 0.618034-9.0432e-011 -3.5532e-011 -1.6019e-012 5.3298e-01150 0.618034 0.618034x* = -1.6019e-012(满足要求满足要求)灭窗铂善引滑能羽瑶斧胀血笆将乱痛隆咎煤猖律玛押辨峡侠肇愧埃钝弦樟搜索算法结构搜索算法结构 设设 f (x)在在 a ,b上可微,且当导数为零时是解。上可微,且当导数为零时是解。 取取 x=(a+b) / 2, 那么那么 f (x) = 0 时时, x 为最小点为最小点, x= x* ; f (x) 0 时时, x 在上升段在上升段, x* x,去掉,去掉x ,b ; f

30、(x) x,去掉,去掉a, x . (自己画算法框图自己画算法框图)a x btg 0f ( x )a x btg 0f ( x )3.4 二分法二分法击皋拽帛拷备捅赶拙魏臼廉拆震雾噎橙四君纲遮侈首符削坞叶惋猫钱档乐搜索算法结构搜索算法结构a,b缩小,当区间缩小,当区间a,b的长度充分小时,或者当的长度充分小时,或者当 充分小时,即可将充分小时,即可将a,b的中点取做极小点的近似点,的中点取做极小点的近似点,这这时有估计:时有估计: 我们知道,在极小点我们知道,在极小点处,处,且,且时,时,递减,即递减,即,而当,而当,函数递增,即,函数递增,即若找到一个区间若找到一个区间a, b, 满足性质

31、满足性质。,则,则a,b内必有内必有的极小点的极小点,且,且,为找此,为找此,取取,若,若, 则在则在中有极小点,这时中有极小点,这时用用作为新的区间作为新的区间a,b,继续这个过程,逐步将区间,继续这个过程,逐步将区间丽悼蔑耽窗界娟挛庶诧波候笋踊困洛秆硅硫蛮乡抒育勉醛茂抵牧驶绍震去搜索算法结构搜索算法结构假设假设 f(x) 是具有极小点的单峰函数,是具有极小点的单峰函数,则必存在区间则必存在区间a, b,使,使f (a)0。由由f (x)的连续性可知,必有的连续性可知,必有x* (a, b),使,使f (x)=0f (x)xaba1b1a2b2优点:优点:计算量较少,总能找到最优点计算量较少

32、,总能找到最优点缺点:缺点:要计算导数值,收敛速度较慢,收敛速度为一阶要计算导数值,收敛速度较慢,收敛速度为一阶其中区间其中区间a, b的确定的确定,一般可采用一般可采用“进退法进退法”。扫滓朱队赖骗芍院喧琳瓢渤享氮警缔逗价华飞泵凰饮蜀华近锈赏半萎师贩搜索算法结构搜索算法结构3.5 多项式近似法多项式近似法二次插值法二次插值法 (一)(一)基本思想基本思想对形式复杂的对形式复杂的函数,数学运函数,数学运算时不方便算时不方便找一个近似的、解析找一个近似的、解析性能好、便于计算的性能好、便于计算的简单函数来代替。简单函数来代替。用近似函数的极用近似函数的极小点作为原函数小点作为原函数极小点的近似极

33、小点的近似复杂函数复杂函数 f(x) 极小点极小点x* 简单函数简单函数P(x) 极小点极小点x* 函数近似,函数近似,最优点也应近最优点也应近似似一次多项式一次多项式二次多项式二次多项式三次多项式三次多项式? 如何构造符合要求的多项式如何构造符合要求的多项式 ?寞麦担撼括盅浇卧蘑五侗敦季缨埔景被璃次容媒袁虞猎景含擎岳最祈挡婶搜索算法结构搜索算法结构f(x)P2(x)(二)(二)二次插值多项式近似法(抛物线法)的基本原理二次插值多项式近似法(抛物线法)的基本原理设目标函数设目标函数 f(x)在三点在三点x1 x2 x3 上的函数值分别为上的函数值分别为f 1 , f2 , f3 x1x2x3相

34、应的二次插值多项式为相应的二次插值多项式为 P2(x)=a0a1x + a2x2 令令P2(x) 和和f(x)在三点上的函数值相等在三点上的函数值相等三个待定系数三个待定系数 P2(x1)=a0+a1x1 + a2x12 f1 P2(x2)=a0+a1x2 + a2x22f2 P2(x3)=a0+a1x3 + a2x32f3a0, a1, a2 P2(x)的平稳点是的平稳点是 P2(x)a1 +2a2x =0 的解的解 添氓意溃揩厚氦诉铱唐焊苹精掣造募盛扩镀诉透涛莽产鄂枕梅商勾绥劝促搜索算法结构搜索算法结构f(x)P2(x)(二)(二)二次插值多项式近似法(抛物线法)的基本原理二次插值多项式近

35、似法(抛物线法)的基本原理设目标函数设目标函数 f(x)在三点在三点x1 x2 x3 上的函数值分别为上的函数值分别为f 1 , f2 , f3 x1x2x3相应的二次插值多项式为相应的二次插值多项式为 P2(x)=a0a1x + a2x2 三个待定系数三个待定系数P2(x)的平稳点是的平稳点是 P2(x)a1 +2a2x =0 的解的解 简化计算简化计算其他插值公式参阅其他插值公式参阅P51-52 (2)-(4)!三点二次插值公式最三点二次插值公式最常用常用.所比气摆染溺扔贷衔忍基柴卷信绒轻示秘层拓谭拾乍矽仅擒痈湾颖茬篡胞搜索算法结构搜索算法结构! 迭代过程要点迭代过程要点 !f(x)P2(

36、x)x1x2x3x1x2x3x*x*x*若任意取若任意取x1 x2 x3 三个点,三个点,则求出的则求出的x* 可能位于给定区间之外或误差太大可能位于给定区间之外或误差太大最初的三个点最初的三个点x1 x2 x3 应构成一个两边高,中间低的应构成一个两边高,中间低的“ 极小化框架极小化框架” ,即满足即满足f1f2,f3f2 ,且两个等号不同时成立,且两个等号不同时成立极小化框架极小化框架可由进退算法求得可由进退算法求得鳃犯荣耐嗓散浓辖爆尝裔猩葵漾跳弊惮佑宇街客匪勤瞻滥滔敞枉佃肄沃毋搜索算法结构搜索算法结构在完成一次计算后,得到近似在完成一次计算后,得到近似x*,比较比较f(x*)与与f(x2

37、),以函数值较小的,以函数值较小的x为起点,缩短步长为起点,缩短步长近似近似x* 进退算法进退算法构造构造“ 极小化框架极小化框架”x1 x2 x3比比较较f(x*)与与f(x2),以以函函数数值值较较小小的的小者小者x为中间点,加上左右两点为中间点,加上左右两点 要进行搜索区间的收缩,然后在新区间中要进行搜索区间的收缩,然后在新区间中重新构造三点组成的重新构造三点组成的“ 极小化框架极小化框架” ,有两种方法,有两种方法终止准则:终止准则:采用目标函数值的相对误差或绝对误差来判断采用目标函数值的相对误差或绝对误差来判断 拽移饭恋涎赡穆殃编帕冈忙葵楷粥许掏卵鸵桩窒讨撩离渊扫鼻檬琼岸医邯搜索算法

38、结构搜索算法结构f(x) xx1x2 x3f(x) xx1x2 x4前进成功前进成功 x5极小化框架极小化框架 x1 x2 x3前进失败前进失败x1x2x3x4x5x6极小化框架极小化框架 x3 x2 x1后退后退h02h04h0h0h02h04h0(三)(三)进退算法(用于求进退算法(用于求“ 极小化框架极小化框架”或初始搜索区间)或初始搜索区间)填胜涌毙膛垮痒娶瀑隔插辖祝征溺惠冠臆堂淤爆枯拌冗浮屎趁饼甭豺楷苞搜索算法结构搜索算法结构(四)(四)逐次二次插值近似法的算法逐次二次插值近似法的算法初始点初始点x1,h0,精度,精度1,溢出下限,溢出下限2,步长缩短率,步长缩短率m进退算法即进退算

39、法即“ 极小化框架极小化框架” x1x2x3, 或或x3x2x1计算近似点计算近似点x*检验精度检验精度以以x2与与x* 函数值小者为函数值小者为x1h=mh以以x2与与x*函函数数值值小小者者为为x2,加加左左右右两两点点构构成成“极极小小化化框框架架”存么饼疾藤银疆坏篮滔场企启锹迹各瓷呕黄榷宋葡墨甚拆芦佬萤焚莎葵余搜索算法结构搜索算法结构二次插值法的优点:二次插值法的优点:收敛速度较快,约为收敛速度较快,约为1.32阶阶缺点:缺点:对强扭曲或多峰的,收敛慢,甚至会失败,故要求函数具有较好对强扭曲或多峰的,收敛慢,甚至会失败,故要求函数具有较好 的解析性能的解析性能 (五)(五) 二次插值法

40、与黄金分割法的结合二次插值法与黄金分割法的结合 黄金分割法黄金分割法二次插值法二次插值法迭代收敛时迭代收敛时迭代不收敛时迭代不收敛时岿绪恰闸释胸力舅衡惶篇内扑赤翁彦若粗间沪允馒嘶虱钩葬饲醇脸井怨翰搜索算法结构搜索算法结构2)用二次插值法逼近极小点)用二次插值法逼近极小点相邻三点的函数值相邻三点的函数值: x1=0, x2=1, x3=2; f1=2, f2=1, f3=18. 代代入公式:入公式:xp*0.555, fp=0.292例例例例 3-3 3-3用二次插值法求函数用二次插值法求函数用二次插值法求函数用二次插值法求函数f( f(x x)=3)=3x x3 3-4-4x x+2+2的极小

41、点,的极小点,的极小点,的极小点,给定给定给定给定 x x0 0=0, =0, h h=1, =0.2=1, =0.2。l解解 1)确定初始区间)确定初始区间初始区间初始区间a,b=0,2, 另有一中间点另有一中间点x2=1。逐珍羌勃搽摸坛饱鱼肤贬唉谆划徘狮佃抢纺突植韶奋种录尼蛛踊羊袒磅妻搜索算法结构搜索算法结构l在新区间,相邻三点的函数值在新区间,相邻三点的函数值: x1=0, x2=0.555, x3=1; f1=2, f2=0.292, f3=1.lxp*0.607, fp=0.243由于由于fpx2, 新区间新区间a,b=x2, b=0.555,1|x2-xp * |=|0.555-0

42、.607|=0.0520.2, 迭代终止。迭代终止。lxp*0.607, f*=0.243由于由于fpf2, xp * 0.2, 应继续迭代。应继续迭代。此例黄金分割法需要此例黄金分割法需要5次收缩区间,次收缩区间,例例登饮肉已嘱择鄙用戒史渣戳医目侍骇三陵晓珠笼苔窑古桌栈估捅夹唇芬蚁搜索算法结构搜索算法结构l例例 3-4用二次插值法求用二次插值法求 的极值点。初始搜的极值点。初始搜索区间索区间 , 。图图l解:取解:取x2点为区间点为区间x1,x3的中点,的中点, , 计算计算x1,x2,x3 3点处的函数值点处的函数值f1=19,f2=-96.9375,f3=124。可见函数值满足。可见函数

43、值满足“高低高高低高”形态。形态。l以以x1,x2,x3为插值点构造二次曲线,为插值点构造二次曲线, l求第一次近似的二次曲线求第一次近似的二次曲线p(x)的极小值点,由公式得。的极小值点,由公式得。l , 比较函数值可知比较函数值可知ll这种情况应消去左边区段这种情况应消去左边区段 . 然后用然后用 作为作为x1,x2,x3新新3点点,重新构造二次曲线重新构造二次曲线p(x),如此反复计算,直到,如此反复计算,直到 为止。整个迭为止。整个迭代过程的计算结果列于表代过程的计算结果列于表2-2.l从表中可见,经从表中可见,经7次迭代后,次迭代后, ,终止迭代。,终止迭代。故最优点故最优点 绅功砖

44、橇熙绪攻妙搏浇宁鸦购煤虞泅刀愧斜吏钨睦蓬崭被龚吩州苞袖染卢搜索算法结构搜索算法结构吓轧鬃顷檄望馋辜逸变九饰滋气窑猜啊铰泡皱臼鸿涕蹲磨土咕迫腿靶鞭早搜索算法结构搜索算法结构0.618法法, 11次迭代次迭代, x*=3.9968; f*=-155.9996高精度时差异更大!高精度时差异更大!减息人棒趟坯滦稳降冠佬套宏榜踞核灯败宾勺毫炬唉缎菲科诧天反勿涟牛搜索算法结构搜索算法结构要求计算导数的插值法要求计算导数的插值法 若目标函数若目标函数f(x)可导,可通过解可导,可通过解f (x)0求平稳点,进而求出极值点。求平稳点,进而求出极值点。对高度非线性函数,要用逐次逼近求平稳点。对高度非线性函数,要

45、用逐次逼近求平稳点。 一、一、 Newton法法 要求目标函数要求目标函数f(x)在搜索区间内具有二阶连续导数,且已知在搜索区间内具有二阶连续导数,且已知f (x)和和f (x)的表达式的表达式 。(一)(一) 基本思想基本思想 采用迭代法求采用迭代法求(x)=0的根的根 xk (x) xxk+1 xk+2 (xk)=(xk)/(xk1xk) xk+1=xk(xk)/ (xk) 用于求用于求(x) f (x)0的根的根 xK+1=xkf (xk)/ f ”(xk) 0一点二次插值一点二次插值-切线法切线法初致航帚巍牟淤巾岛懈邪淹娠切饯锡筏钧敖屈弟疙匪侨满啄锅厉蚕躺烫炬搜索算法结构搜索算法结构恭

46、市喝菊斩恃哎虹磊籍颓候锹镣瓷给矛盆扔履侄楞挣包颓赴戈蕊嘘增煮料搜索算法结构搜索算法结构牛顿法程序流程:牛顿法程序流程:颁棒难凋爹缎罢这酵弯弗弯拟疹烧扩硝说迎露郝惫全迅掖葡朵畸谆款凭棺搜索算法结构搜索算法结构例题例题 用用Newton法求解法求解 初始点取初始点取 x0 = 1。(迭代三次)。(迭代三次) 解:解:f(x) 的一阶和二阶导函数为的一阶和二阶导函数为 迭代公式为迭代公式为 xK+1=xkf (xk)/ f ”(xk) 第一次迭代:第一次迭代: x0 = 1, f (x0)12, f ”(x0)36 x11(12)/361.33 第二次迭代:第二次迭代: x1 = 1.33, f (

47、x1)3.73, f ”(x1)17.6 x21.33(3.73)/17.61.54 (本例精确解为本例精确解为 x* )第三次迭代:第三次迭代: x2 = 1.54, f (x2)0.5865, f ”(x2) 12.76 x31.54(0.587)/12.761.586 f(x2)=15.11910.618法法1,2上上11次次 x*=1.5795, f*=15.1194褂帮鼓叙损床症徊贡才泵胃人友钳哼和戚羚法诞膛蟹芝芬芬例梭乡戈媒貉搜索算法结构搜索算法结构例例1: 求求 min f (x)= arctan t d t 解解: f (x) =arctan x , f (x)=1(1+ x2

48、) 迭代公式:迭代公式: xk +1= xk - (1+ xk 2) arctan xk 取取 x0= 1,计算结果:,计算结果: k xk f (xk) 1f(xk ) 1 1 0.7854 2 2 -0.5708 -0.5187 1.3258 3 0.1169 -0.1164 1.0137 4 -0.001095 -0.001095 5 7.9631e-010 x4 x* =0 取取 x0=2,计算结果如下:,计算结果如下:2 -3.535713.9510 -279.3441 1.2202e+005 不收敛!不收敛! 幸响熔藕赏得灵菊柜紧心审擦苯业据戍厉受屈僧报拍景庐利允先吁坦嵌郎搜索算法

49、结构搜索算法结构裁枝求蔚丝决呆洗烬另间粹流全伤蒜叛死歇踪谎树诌拣呻鼎釜谅焊冗狠嵌搜索算法结构搜索算法结构线性收敛线性收敛二次收敛二次收敛Ex1:Ex2:添尘灿冤亭违霍曰斌贬阐星歧腆绳篓广卢咨禹跋羽免漫弘谭强隅班图眩骆搜索算法结构搜索算法结构(二二) 优缺点优缺点1、优点:收敛速度快;、优点:收敛速度快;在在f(x)=0的单根处,是的单根处,是2阶收敛;在阶收敛;在f(x)=0的重根的重根 处,是线性收敛处,是线性收敛。例例2、缺点:、缺点:需要求二阶导数,若用需要求二阶导数,若用数值导数数值导数代替,由于舍入误差将影响收敛代替,由于舍入误差将影响收敛 速度;速度; 收敛性还依赖于初始点及函数性

50、质。收敛性还依赖于初始点及函数性质。f (x) x! 通常在计算程序中规定最大迭代次数,当次数达到通常在计算程序中规定最大迭代次数,当次数达到K还不能满足还不能满足精度时,精度时, 则认为不收敛,要换一个初始点。则认为不收敛,要换一个初始点。扑韵罗拖作呼事聊灭讥宙夯吴裔牌蕊映新继怯厢派晚干拣卉状棚奋嚏笑仲搜索算法结构搜索算法结构二、二点二次插值二、二点二次插值a f (x)x bx*1) 割线法割线法基本思想:用割线代基本思想:用割线代替替Newton法中的切线,并与区间消法中的切线,并与区间消去法相结合。去法相结合。cP52 (3-14)P51 (3-12)2) 另一个二点二次插值另一个二点

51、二次插值(f(a)f(b)f(b)较割线法稍好较割线法稍好收敛速度都为收敛速度都为1.618阶阶通过检查区间两端导数来通过检查区间两端导数来收缩区间收缩区间新区间两端点的导数值异号新区间两端点的导数值异号救疤农菠宏夯革披蒙酷袋疫升夺宛湾跳簿需拥细砍趾嚷宠耗嘶闷屏姓彰磺搜索算法结构搜索算法结构基本思想与二次插值法类似:用四个已知值(如两个点函数值及其导数值)基本思想与二次插值法类似:用四个已知值(如两个点函数值及其导数值)构造一个三次多项式构造一个三次多项式P3(x),用,用P3(x)的极小点近似目标函数的极小点的极小点近似目标函数的极小点x* 利用函数在两点的函数值和导数值:利用函数在两点的函

52、数值和导数值:三、三、 三次插值三次插值三次插值法的收敛速度比二次插值法要快,达到三次插值法的收敛速度比二次插值法要快,达到2阶收敛速度。阶收敛速度。浓酞毅写跋买疤磁意秩昨乍孺关蛙竖此鸵梨慨烂逻喝找服煮筋勤弟矛玫屡搜索算法结构搜索算法结构求出:研握妥撰碱佰粱谐镶跨孰然椰块汉时冤验逝汹梆蒲宣恶鸭疥袖踏犹速反遥搜索算法结构搜索算法结构极值的条件极值的条件:讹吐沥钠与晚辅脉钟整镇静眷掖顺理籽军鬼离硒婴遵许祖赊乎臣糜宗犊题搜索算法结构搜索算法结构极值充分条件为:极值充分条件为:将极值点方程带入上式将极值点方程带入上式仅取正号仅取正号两种情形两种情形(A=0/A0)统一为统一为:决燕拖水喘羹捉杆抓各崎浓

53、楼拟需墒钩狮箔承承怒泰集接尸搓地捐灌坐铰搜索算法结构搜索算法结构蔫侮尸筐帚靴骨韭吐净承教钵探郧墨钒腮接玫殿肚炸钧框哲丧骸两特括照搜索算法结构搜索算法结构其它形式其它形式蜂缨仙贝耶祷诀狞替预买铆咱蘑絮惜迂付富符焰衔札尚乡亦鄂晨规栋浴葵搜索算法结构搜索算法结构二点三次插值法一般流程:二点三次插值法一般流程:编写程序应用时建议结合教材编写程序应用时建议结合教材p55p55框图编写框图编写( (嵌入进嵌入进退法退法) ),其更具普适性、鲁棒性。,其更具普适性、鲁棒性。晶胯毯紊汽蜂楚各住甫爆札敏资储憋巾叼囚弦兹创四狗母拂侠斩肚侯唤荚搜索算法结构搜索算法结构教材教材P56-58的的 D.S.C.法、法、P

54、owell法及其组合法是区法及其组合法是区间搜索与二次插值法的结合!间搜索与二次插值法的结合!P59-P64介绍了有理插值、连分式方法属特殊方法,介绍了有理插值、连分式方法属特殊方法,含教材含教材作者作者的一些研究成果,大家参阅教材,注意其的一些研究成果,大家参阅教材,注意其适应条件,必要时课选用适应条件,必要时课选用.悦炕夷僵糕池扳滑疏阵熏雹吁瞬赛贯嫡焕柞慨冤泰毫竿串堆旧天济葵水露搜索算法结构搜索算法结构方法综述方法综述(1)如目标函数能求二阶导数:如目标函数能求二阶导数: 用用Newton法法 收敛快收敛快(2)如目标函数能求一阶导数如目标函数能求一阶导数 :首先考虑用三次插值法,收敛较快

55、:首先考虑用三次插值法,收敛较快 对分法、收敛速度慢,但可靠对分法、收敛速度慢,但可靠 二次插值如割线法也可选择二次插值如割线法也可选择.(3)只需计算函数值的方法只需计算函数值的方法 : 首先考虑用二次插值法首先考虑用二次插值法, 收敛快收敛快 黄金分割法收敛速度较慢,但可靠黄金分割法收敛速度较慢,但可靠 币苹味朵暖域沁棠眷三坡采吝嗡绽簧整渡汤邱钦蜒扣絮墒翻尉厌卢血裸洗搜索算法结构搜索算法结构作业一、用黄金分割法求函数用黄金分割法求函数f(x)=3x4-4x2+2的极的极小点,给定小点,给定 x0=-2, h=1, =0.1(x0=2, h=1, =0.1)。二、ch3 3.1 3.7-9参

56、考课件见http:/ f1=f(x1)=2x2=x0+h=0+1=1, f2=f(x2)=1由于由于f1f2, 应加大步长继续向前探测。应加大步长继续向前探测。x3= x0+2h=0+2=2, f3=f(x3)=18由于由于f2f3,可知初始区间已经找到,即可知初始区间已经找到,即a,b=x1,x2=0,22)用黄金分割法缩小区间用黄金分割法缩小区间 第一次缩小区间:第一次缩小区间: x1=0+0.382X(2-0)=0.764, f1=0.282 x2=0+0.618 X(2-0)=1.236, f2=2.72 f10.2例例例例 3-1 3-1用黄金分割法求函数用黄金分割法求函数用黄金分割

57、法求函数用黄金分割法求函数f( f(x x)=3)=3x x3 3-4-4x x+2+2的极小点,的极小点,的极小点,的极小点,给定给定给定给定 x x0 0=0, =0, h h=1, =0.2=1, =0.2。藩唯矛可沁晶谍浅刃庶简烤舜马店氮欣契哗哀谤衅密食烧郭谜炭烫炕手豁搜索算法结构搜索算法结构第三次缩小区间:第三次缩小区间:l令令 x1=x2=0.764, f1=f2=0.282lx2=0.472+0.618X(1.236-0.472)=0.944, f2=0.747l由于由于f10.2, 应继续缩小区间。应继续缩小区间。第二次缩小区间:第二次缩小区间:l令令 x2=x1=0.764,

58、 f2=f1=0.282lx1=0+0.382X(1.236-0)=0.472, f1=0.317l由于由于f1f2, 故新区间故新区间a,b=x1,b=0.472, 1.236l因为因为 b-a=1.236-0.472=0.7640.2, 应继续缩小区间。应继续缩小区间。鸥红拎匝秘致颤笑殴坟挪裙榷奉替可漱曳狂矽射脉锹虹煽颓库郝绳烦茅墟搜索算法结构搜索算法结构第四次缩小区间:第四次缩小区间:l令令 x2=x1=0.764, f2=f1=0.282lx1=0.472+0.382X(0.944-0.472)=0.652, f1=0.223l由于由于f10.2, 应继续缩小区间。应继续缩小区间。第五次缩小区间:第五次缩小区间:l令令 x2=x1=0.652, f2=f1=0.223lx1=0.472+0.382X(0.764-0.472)=0.584, f1=0.262l由于由于f1f2, 故新区间故新区间a,b=x1,b=0.584, 0.764l因为因为 b-a=0.764-0.584=0.180.2, 停止迭代。停止迭代。极小点与极小值:极小点与极小值:x*=0.5X(0.584+0.764)=0.674, f(x*)=0.222返回返回酚帅醋酸酶疹题矢稚纺褒秉托桥手琳凿苔食丧圣原褪生靳抚由偷缅劫谆摈搜索算法结构搜索算法结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号