第五章约束优化方法课件.ppt

上传人:石*** 文档编号:49686992 上传时间:2022-10-09 格式:PPT 页数:74 大小:4.77MB
返回 下载 相关 举报
第五章约束优化方法课件.ppt_第1页
第1页 / 共74页
第五章约束优化方法课件.ppt_第2页
第2页 / 共74页
点击查看更多>>
资源描述

《第五章约束优化方法课件.ppt》由会员分享,可在线阅读,更多相关《第五章约束优化方法课件.ppt(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第五章约束优化方法第1页,此课件共74页哦 第五章第五章第五章第五章 约束优化方法约束优化方法约束优化方法约束优化方法根据求解方式的不同,可分为根据求解方式的不同,可分为直接解法和间接解法直接解法和间接解法两类。两类。机械优化设计的问题,大多属于约束优化设计问题,其机械优化设计的问题,大多属于约束优化设计问题,其数学模型为:数学模型为:直接解法直接解法是在满足不等式约束的可行设计区域内直接求是在满足不等式约束的可行设计区域内直接求出问题的约束最优解。出问题的约束最优解。间接解法间接解法是将约束优化问题转化为一系列无约束优化问题来解的一种是将约束优化问题转化为一系列无约束优化问题来解的一种方法。

2、方法。第2页,此课件共74页哦 第五章第五章第五章第五章 约束优化方法约束优化方法约束优化方法约束优化方法直接解法直接解法是在满足不等式约束的可行设计区域内直接求是在满足不等式约束的可行设计区域内直接求出问题的约束最优解。出问题的约束最优解。属于直接解法的有:随机实验法、属于直接解法的有:随机实验法、随机方向搜索法、随机方向搜索法、复合形法复合形法、可行方向法等。、可行方向法等。间接解法间接解法是将约束优化问题转化为一系列无约束优化问题来是将约束优化问题转化为一系列无约束优化问题来解的一种方法。解的一种方法。由于间接解法可以选用已研究比较成熟的无约束优化方法,并由于间接解法可以选用已研究比较成

3、熟的无约束优化方法,并且容易处理同时具有不等式约束和等式约束的问题。因而在机械且容易处理同时具有不等式约束和等式约束的问题。因而在机械优化设计得到广泛的应用。优化设计得到广泛的应用。间接解法中具有代表性的是间接解法中具有代表性的是惩罚函数法惩罚函数法。第3页,此课件共74页哦直接解法的基本思想:直接解法的基本思想:在由在由m个不等式约束条件个不等式约束条件gu(x)0所确定的可行域所确定的可行域内,选择一内,选择一个初始点个初始点x(0),然后确定一个可行搜索方向,然后确定一个可行搜索方向S,且以适当的步长沿,且以适当的步长沿S方向进行搜索,取得一个目标函数有所改善的可行的新点方向进行搜索,取

4、得一个目标函数有所改善的可行的新点x(1),即,即完成了一次迭代。以新点为起始点重复上述搜索过程,每次完成了一次迭代。以新点为起始点重复上述搜索过程,每次均按如下的基本迭代格式进行计算:均按如下的基本迭代格式进行计算:x(k+1)x(k)+(k)S(k)(k=0,1,2,)逐步趋向最优解,逐步趋向最优解,直到满足终止准则才停止迭代。直到满足终止准则才停止迭代。第4页,此课件共74页哦直接解法的原理简单,方法实用,其特点是:直接解法的原理简单,方法实用,其特点是:1 1)由于整个过程在可行域内进行,因此,迭代计算不论)由于整个过程在可行域内进行,因此,迭代计算不论何时终止,都可以获得比初始点好的

5、设计点。何时终止,都可以获得比初始点好的设计点。2 2)若目标函数为凸函数,可行域为凸集,则可获得全域)若目标函数为凸函数,可行域为凸集,则可获得全域最优解,否则,可能存在多个局部最优解,当选择的初始最优解,否则,可能存在多个局部最优解,当选择的初始点不同,而搜索到不同的局部最优解。点不同,而搜索到不同的局部最优解。3 3)要求可行域有界的非空集。)要求可行域有界的非空集。直接解法的特点:直接解法的特点:第5页,此课件共74页哦a)a)可行域是凸集;可行域是凸集;b)b)可行域是非凸集可行域是非凸集第6页,此课件共74页哦间接解法的基本思路:间接解法的基本思路:将约束函数进行特殊的加权处理后,

6、和目标函数结合起来,将约束函数进行特殊的加权处理后,和目标函数结合起来,构成一个新的目标函数,构成一个新的目标函数,即将原约束优化问题转化为一个即将原约束优化问题转化为一个或一系列的无约束优化问题或一系列的无约束优化问题。新目标函数新目标函数加权因子加权因子然后对新目标函数进行无约束极小化计算。然后对新目标函数进行无约束极小化计算。第7页,此课件共74页哦间接解法的基本思路间接解法的基本思路 第8页,此课件共74页哦2.1 2.1 随机方向法的基本思路随机方向法的基本思路 1 1、在可行域内选择一个初始点;、在可行域内选择一个初始点;2 2、利用随机数的概率特性,产生若干个随机方向;、利用随机

7、数的概率特性,产生若干个随机方向;3 3、从中选一个能使目标函数值下降最快的方向作为搜索方向、从中选一个能使目标函数值下降最快的方向作为搜索方向d d;4 4、从初始点、从初始点x0 x0出发,沿出发,沿d d 方向以一定步长进行搜索,得到新点方向以一定步长进行搜索,得到新点X X,新点,新点X X应满足约束条件且应满足约束条件且f(x)f(x0)f(x)f(x0),至此完成一次迭代。,至此完成一次迭代。基本思路如图所示。基本思路如图所示。随机方向法程序设计简单,搜索速度快,是解决小型机械优随机方向法程序设计简单,搜索速度快,是解决小型机械优化问题的十分有效的算法。化问题的十分有效的算法。第二

8、节第二节 约束随机方向法约束随机方向法第9页,此课件共74页哦随机方向法的基本思路随机方向法的基本思路 第10页,此课件共74页哦2.2 2.2 随机方向的构成随机方向的构成1.用用RND(X)RND(X)产生产生n n个随机数个随机数2.将将(0,1)中的随机数中的随机数变换到变换到(-1,1)中去中去(归一化归一化);3.构成随机方向构成随机方向变换得变换得:于是于是例例:对于三维问题对于三维问题第二节第二节 约束随机方向法约束随机方向法第11页,此课件共74页哦从从k个随机方向中,个随机方向中,选取一个较好的方向。选取一个较好的方向。2.3 2.3 可行搜索方向的产生可行搜索方向的产生第

9、二节第二节 约束随机方向法约束随机方向法1.1.检验检验k k个随机点是否为可行点,除去非可行点,计算余个随机点是否为可行点,除去非可行点,计算余下的可行点的目标函数值,比较其大小,选出目标函数下的可行点的目标函数值,比较其大小,选出目标函数最小的点最小的点X XL 。2.2.比较比较X XL L 和和X X0 0两点的目标函数值,两点的目标函数值,若若f(Xf(XL L)f(X)f(X)f(X0 0),则步长,则步长0 0 缩小,转步骤缩小,转步骤1 1)重新计算,直)重新计算,直至至f(Xf(XL L)f(X)f(X0 0)为止。为止。如果如果0 0 缩小到很小,仍然找不到一个缩小到很小,

10、仍然找不到一个X XL L,使,使f(Xf(XL L)f(X)f(X0 0)则说则说明明X X0 0是一个局部极小点,此时可更换初始点,转步骤是一个局部极小点,此时可更换初始点,转步骤1 1)。)。第12页,此课件共74页哦产生可行搜索方向的条件为:产生可行搜索方向的条件为:则可行搜索方向为:则可行搜索方向为:2.3 2.3 可行搜索方向的产生可行搜索方向的产生第二节第二节 约束随机方向法约束随机方向法第13页,此课件共74页哦2.4 2.4 初始点的选择初始点的选择随机方向法的初始点随机方向法的初始点x0必须是一个可行点,既满足全部不等式约束必须是一个可行点,既满足全部不等式约束条件。条件。

11、初始点可以通过随机选择的方法产生。初始点可以通过随机选择的方法产生。1 1)输入设计变量的下限值和上限值,即)输入设计变量的下限值和上限值,即2 2)在区间()在区间(0 0,1 1)内产生)内产生 n n 个伪随机数个伪随机数3 3)计算随机点)计算随机点x x的各分量的各分量第二节第二节 约束随机方向法约束随机方向法4 4)判别随机点)判别随机点x x是否可行,若随机点可行,用是否可行,若随机点可行,用x x代替代替x0 x0为为初始点;若非可行点,转到步骤初始点;若非可行点,转到步骤 2 2)重新产生随机点,只)重新产生随机点,只到可行为止。到可行为止。第14页,此课件共74页哦2.5.

12、2.5.迭代过程迭代过程在初始点处产生一随机方向,在初始点处产生一随机方向,若该方向适用、可行,则以定步若该方向适用、可行,则以定步长前进;长前进;若该方向不适用、可行,则产若该方向不适用、可行,则产生另一方向;生另一方向;若在某处产生的方向足够多若在某处产生的方向足够多(50-100)(50-100),仍无一适用、可行,仍无一适用、可行,则采用收缩步长;则采用收缩步长;若步长小于预先给定的误差限若步长小于预先给定的误差限则终止迭代。则终止迭代。第二节第二节 约束随机方向法约束随机方向法第15页,此课件共74页哦2.6.2.6.流程图流程图X0=X,F0=F给定内点给定内点X0,0 0,m,m

13、,=0,F0=F(X0)F=F(X)j=1K=K+1是是K=0,j=0产生随机方向产生随机方向=0.5否否FF0j=0K=0 while max(gx)=0 dir0=rand(N,1);dir0=rand(N,1);x0=xl+dir0.*xu;x0=xl+dir0.*xu;gx=feval(g_cons,x0);gx=feval(g_cons,x0);%feval()%feval()执行由串指定的函数执行由串指定的函数endend%=%=fx0=feval(f,x0);fx0=feval(f,x0);xk=x0+1;xk=x0+1;fxk=feval(f,xk);fxk=feval(f,x

14、k);xmin=x0;xmin=x0;alpha=1.3;alpha=1.3;k1=0;k1=0;flag1=1;flag1=1;while norm(xk-x0)TolX|abs(fxk-fx0)TolFunwhile norm(xk-x0)TolX|abs(fxk-fx0)TolFunk1=k1+1;k1=k1+1;x0=xmin;x0=xmin;fx0=feval(f,x0);fx0=feval(f,x0);2.7 2.7 随机方向法的随机方向法的MatlabMatlab程序程序第17页,此课件共74页哦dir0=rand(N,1)*2-1;dir0=rand(N,1)*2-1;dir0

15、=dir0/norm(dir0);dir0=dir0/norm(dir0);xk=x0+alpha*dir0;xk=x0+alpha*dir0;gx=feval(g_cons,xk);gx=feval(g_cons,xk);if max(gx)0 if max(gx)0 alpha=alpha*0.7;alpha=alpha*0.7;elseelsefxk=feval(f,xk);fxk=feval(f,xk);if fxkfx0if fxkfx0if norm(xk-x0)TolX&abs(fxk-fx0)TolFunif norm(xk-x0)TolX&abs(fxk-fx0)TolFun

16、breakbreakelseelsexmin=xk;xmin=xk;alpha=1.3;alpha=1.3;endendx0,xk,fx0,fxkx0,xk,fx0,fxkelseelsealpha=-alpha;alpha=-alpha;end end endendendendx1=x0;x1=x0;fx1=feval(f,x1);fx1=feval(f,x1);gx=feval(g_cons,x1);gx=feval(g_cons,x1);k1k1endend第18页,此课件共74页哦例例:求求2.7 2.7 随机方向法的随机方向法的MatlabMatlab程序程序function opt

17、_random1_test1%opt_random1_test1.mclc;clear all;f=inline(x(1)2+x(2),x);xl=-3-3;xu=3 3;TolX=1e-8;TolFun=1e-8;x1,fx1,g=opt_random1(f,fun_cons,xl,xu,TolX,TolFun)function g=fun_cons(x)g=x(1)2+x(2)2-9 x(1)+x(2)-1;计算结果:计算结果:x1=-0.0076-3.0000,f=-2.9999,g=-0.0000-4.0076第19页,此课件共74页哦第三节第三节 复合形法复合形法复合形法是求解约束优

18、化问题的一种重要的直接解法。复合形法是求解约束优化问题的一种重要的直接解法。基本思路:基本思路:1、在可行域内构造一个具有、在可行域内构造一个具有k个顶点的初始复合形;个顶点的初始复合形;2、对该复合形各顶点的目标函数值进行比较,找到目标函数最大的、对该复合形各顶点的目标函数值进行比较,找到目标函数最大的顶点(最坏点);顶点(最坏点);3、然后按一定的法则求出目标函数值有所下降的可行的新点,并、然后按一定的法则求出目标函数值有所下降的可行的新点,并用此点代替最坏点,构成新的复合形,复合形的形状每改变一次,就用此点代替最坏点,构成新的复合形,复合形的形状每改变一次,就向最优点移动一步,直至逼近最

19、优点。向最优点移动一步,直至逼近最优点。由于复合形的形状不必保持规则的图形,对目标函数和约束函数无特由于复合形的形状不必保持规则的图形,对目标函数和约束函数无特殊要求,因此这种方法适应性强,在机械优化设计中应用广泛。殊要求,因此这种方法适应性强,在机械优化设计中应用广泛。第20页,此课件共74页哦3.1基本思路基本思路在可行域内选取若干初始点并以之为顶点构成一个在可行域内选取若干初始点并以之为顶点构成一个多面体多面体(复合形复合形),),然后比较各顶点的函数值然后比较各顶点的函数值,去掉最坏点去掉最坏点,代之以好的新点代之以好的新点,并构成新的复合形并构成新的复合形,以逼近最优点以逼近最优点.

20、第三节第三节 复合形法复合形法第21页,此课件共74页哦3.2 3.2 初始复合形生成的方法:初始复合形生成的方法:(1)由设计者决定)由设计者决定k个可行点,构成初始复合形。设计变量少时适个可行点,构成初始复合形。设计变量少时适用。用。(2)由设计者选定一个可行点,其余的)由设计者选定一个可行点,其余的k-1个可形点用随机法个可形点用随机法产生。产生。(3)由计算机自动生成初始复合形的所有顶点。)由计算机自动生成初始复合形的所有顶点。第三节第三节 复合形法复合形法*初始复合形的构成初始复合形的构成*复合形的移动和收缩复合形的移动和收缩第22页,此课件共74页哦第23页,此课件共74页哦3.2

21、.1 3.2.1 初始复合形的构成初始复合形的构成(1)(1)复合形顶点数复合形顶点数K K的选择的选择建议建议:小取大值小取大值,大取小值大取小值(2)(2)初始复合形顶点的确定初始复合形顶点的确定用试凑方法产生用试凑方法产生-适于低维情况适于低维情况;用随机方法产生用随机方法产生3.2 3.2 初始复合形生成的方法:初始复合形生成的方法:第三节第三节 复合形法复合形法第24页,此课件共74页哦 将非可行点调入可行域内将非可行点调入可行域内 K K个顶点中要求无一在可行域内。重新产生。个顶点中要求无一在可行域内。重新产生。K K个顶点中有可行点个顶点中有可行点,重新排列,将可行点依次排在前面

22、,重新排列,将可行点依次排在前面,如有如有q q个顶点个顶点X(1)、X(2)、X(q)是可行点,其它是可行点,其它K-qK-q个为非可行个为非可行点。对点。对X(q+1),将其调入可行域的步骤是:,将其调入可行域的步骤是:先用随机函数产生先用随机函数产生个随机数个随机数 ,然后变换到预定的区间然后变换到预定的区间中去中去.用随机方法产生用随机方法产生K K个顶点个顶点第25页,此课件共74页哦(1)(1)计算计算q q个点集的中心个点集的中心X(s);(2)(2)将第将第q+1q+1点朝着点点朝着点X(s)的方的方向移动,按下式产生新的向移动,按下式产生新的X(q+1),即,即 若仍不可行,

23、则重复此步骤,直至进入若仍不可行,则重复此步骤,直至进入可行域为止。可行域为止。按按照照这这个个方方法法,同同样样使使X(q+2)、X(q+3)、X(K)都都变变为为可可行点,这行点,这K K个点就构成了初始复合形。个点就构成了初始复合形。第26页,此课件共74页哦有两种基本运算有两种基本运算:1)映射映射-在坏点的对侧试探新在坏点的对侧试探新点点:先计算除最坏点外各顶点先计算除最坏点外各顶点的几何中心的几何中心,然后再作映射计然后再作映射计算算.2)收缩收缩-保证映射点的保证映射点的“可行可行”与与“下降下降”X1为最坏点为最坏点-映射系数映射系数常取常取若发现映射点不适用、可行若发现映射点

24、不适用、可行,则将则将 减半后重新映射减半后重新映射.3.3 3.3 复合形法的搜索方法复合形法的搜索方法第27页,此课件共74页哦3.4 3.4 复合形法的迭代步骤复合形法的迭代步骤(1)(1)构造初始复合形;构造初始复合形;(2)(2)计算各顶点的函数值计算各顶点的函数值F(X(j),j=1,2,j=1,2,.,K.,K。选出好点选出好点X(L)和坏点和坏点X(H);(3)(3)计算坏点外的其余各顶点的中心点计算坏点外的其余各顶点的中心点X(0)。第28页,此课件共74页哦(4)(4)计算映射点计算映射点X(R)检查检查X(R)是否在可行域内。若是否在可行域内。若X(R)为非可行点,将映射

25、系为非可行点,将映射系数减半后再按上式改变映射点,直到数减半后再按上式改变映射点,直到X(R)进入可行域内为止。进入可行域内为止。(5)(5)构造新的复合形构造新的复合形 计算映射点的函数值计算映射点的函数值F(X(R),并与坏点的函数值,并与坏点的函数值F(X(H)比比较,可能存在两种情况:较,可能存在两种情况:1 1)映射点优于坏点)映射点优于坏点 F(X(R)F(X(H)这这种种情情况况由由于于映映射射点点过过远远引引起起的的,减减半半映映射射系系数数,若若有有F(X(R)F(X(H),这又转化为第一种情况。,这又转化为第一种情况。第30页,此课件共74页哦3.5 3.5 判断终止条件判

26、断终止条件1)1)各顶点与好点函数值之差的均方根各顶点与好点函数值之差的均方根值小于误差限,即值小于误差限,即2 2)各顶点与好点的函数值之差的平方和各顶点与好点的函数值之差的平方和小于误差限,即小于误差限,即 3 3)各)各顶点与好点函数值差的绝对值之和顶点与好点函数值差的绝对值之和小于误差限,即小于误差限,即 如果不满足终止迭代条件,则返回步骤如果不满足终止迭代条件,则返回步骤2 2继续进行下一次迭继续进行下一次迭代;否则,可将最后复合形的好点代;否则,可将最后复合形的好点X X(L)(L)及其函数值及其函数值F(XF(X(L)(L)作为最作为最优解输出。优解输出。第31页,此课件共74页

27、哦比比较较复复合合形形各各顶顶点点的的函函数数值值,找出好点找出好点XL,坏点,坏点XHXH=XR=0.5找出次坏点找出次坏点XSH,XH=XSH满足终止条件?满足终止条件?X*=XL,F*=F(XL)结结束束3.6 3.6 流程图流程图是是否否给定给定K,ai,bii=1,2,n产生初始复合形顶点产生初始复合形顶点Xj,j=1,2,K计算复合形各顶点的函数值计算复合形各顶点的函数值F(Xj),j=1,2,K是是是是是是否否否否否否XRDFR0 while max(gx)0 x0=xl+rand(N,1).*xu;x0=xl+rand(N,1).*xu;gx=feval(g_cons,x0);

28、gx=feval(g_cons,x0);endend第33页,此课件共74页哦x1,fx=gen_complex(x0,k,f,g_cons);x1,fx=gen_complex(x0,k,f,g_cons);flag1=1;flag2=1;flag3=1;flag1=1;flag2=1;flag3=1;k1=0k1=0fxfxx1x1fprintf(fprintf(此此处暂处暂停,停,请请按下任意按下任意键继续键继续n)n)pausepausewhile k1MaxIterwhile k1MaxIterflag1=1;flag2=1;flag3=1;flag1=1;flag2=1;flag3

29、=1;k1=k1+1k1=k1+1fx,I=sort(fx);fx,I=sort(fx);for i=1:kfor i=1:kx2(:,i)=x1(:,I(i);x2(:,i)=x1(:,I(i);endendx1=x2;x1=x2;fmax1=fx(k);fmax1=fx(k);imax1=I(k);imax1=I(k);fmin=fx(1);fmin=fx(1);imin=I(1);imin=I(1);fmax2=fx(k-1);fmax2=fx(k-1);imax2=I(k-1);imax2=I(k-1);%计算形心计算形心xc=zeros(N,1);xc=zeros(N,1);for

30、i=1:kfor i=1:kxc=xc+x1(:,i);xc=xc+x1(:,i);endendxc=xc-x1(:,imax1);xc=xc-x1(:,imax1);xc=xc/(k-1);xc=xc/(k-1);gxc=feval(g_cons,xc);gxc=feval(g_cons,xc);alpha=1.31;alpha=1.31;%反射反射xr=xc+alpha*(xc-x1(:,imax1);xr=xc+alpha*(xc-x1(:,imax1);gxr=feval(g_cons,xr)gxr=feval(g_cons,xr)if max(gxr)0if max(gxr)0fxr

31、=feval(f,xr);fxr=feval(f,xr);if fxrfmax1if fxrfmax1fprintf(fprintf(反射成功反射成功n)n)fmax1,fxrfmax1,fxrfmax1=fxr;fmax1=fxr;fx(imax1)=fxr;fx(imax1)=fxr;x1(:,imax1)=xr;x1(:,imax1)=xr;flag1=-1;flag1=-1;elseelse%反射失败反射失败flgg1=1;flgg1=1;endend第34页,此课件共74页哦elseelse%反射失反射失败败flag1=1;flag1=1;end end gama=0.7;gama=

32、0.7;if flag1=-1 if flag1=-1 fprintf(fprintf(延伸延伸n)n)xe=xr+gama*(xr-xc);xe=xr+gama*(xr-xc);gxe=feval(g_cons,xe)gxe=feval(g_cons,xe)if max(gxe)0if max(gxe)0fxe=feval(f,xe);fxe=feval(f,xe);if fxefmax1if fxefmax1fprintf(fprintf(延伸成功延伸成功n)n)fxe,fmax1fxe,fmax1fx(imax1)=fxe;fx(imax1)=fxe;fmax1=fxe;fmax1=fx

33、e;x1(:,imax1)=xe;x1(:,imax1)=xe;flag2=-1;flag2=-1;elseelse%延伸失败延伸失败flag2=1;flag2=1;endendelseelse%延伸失延伸失败败flag2=1;flag2=1;endendendendbeta=0.7;beta=0.7;if flag1=-1&flag2=-1if flag1=-1&flag2=-1fprintf(fprintf(收缩收缩n)n)xk=x1(:,imax1)+beta*(xc-x1(:,imax1);xk=x1(:,imax1)+beta*(xc-x1(:,imax1);gxk=feval(g_

34、cons,xk)gxk=feval(g_cons,xk)if max(gxk)0if max(gxk)0fxk=feval(f,xk);fxk=feval(f,xk);if fxkfmax1if fxkfmax1fprintf(fprintf(收缩成功收缩成功n)n)fxk,fmax1fxk,fmax1fmax1=fxk;fmax1=fxk;fx(imax1)=fxk;fx(imax1)=fxk;x1(:,imax1)=xk;x1(:,imax1)=xk;flag3=-1;flag3=-1;elseelse%收缩失败收缩失败flag3=1;flag3=1;endendelseelse第35页,

35、此课件共74页哦%收缩失败收缩失败flag3=1;flag3=1;endendend end if flag1if flag1=-1&flag2=-1&flag2=-1&flag3=-1&flag3=-1=-1fprintf(flag1,flag2,flag3n%d%d%dn,flag1,flag2,flag3)fprintf(flag1,flag2,flag3n%d%d%dn,flag1,flag2,flag3)fprintf(fprintf(重新生成单纯形重新生成单纯形n)n)fx,I=sort(fx);fx,I=sort(fx);imin=I(1);imin=I(1);x0=x1(:,i

36、min);x0=x1(:,imin);x1,fx=gen_complex(x0,k,f,g_cons)x1,fx=gen_complex(x0,k,f,g_cons)endendendendxo=x1(:,imin);xo=x1(:,imin);fo=feval(f,xo);fo=feval(f,xo);go=feval(g_cons,xo);go=feval(g_cons,xo);k1k1第36页,此课件共74页哦functionfunction x1,fx=gen_complex(x0,k,f,g_cons)x1,fx=gen_complex(x0,k,f,g_cons)N=length(

37、x0);N=length(x0);M=size(g_cons);M=size(g_cons);M=length(M(:,1);M=length(M(:,1);x1(:,1)=x0;x1(:,1)=x0;fx(1)=feval(f,x0);fx(1)=feval(f,x0);a=1.3;a=1.3;s=rand(N,k)*2-ones(N,k);s=rand(N,k)*2-ones(N,k);s=s/norm(s);s=s/norm(s);k2=1;k2=1;whilewhile k2k k2kx0=x1(:,1)+a*s(:,k2);x0=x1(:,1)+a*s(:,k2);gx=feval(

38、g_cons,x0);gx=feval(g_cons,x0);ifif max(gx)0 max(gx)0k2=k2+1;k2=k2+1;x1(:,k2)=x0;x1(:,k2)=x0;fx(k2)=feval(f,x0);fx(k2)=feval(f,x0);elseelsea=0.7*a;a=0.7*a;endendendend 第37页,此课件共74页哦3.7 3.7 应用复合形法应用复合形法MatlabMatlab程序求约束优化问题的最优解程序求约束优化问题的最优解function opt_complex_test1%opt_complex_test1.mclc;clear all;f

39、=inline(x(1)-5)2+4*(x(2)-6)2,x);TolX=1e-6;TolFun=1e-6;x0=8,14;xl=2 2;xu=7 9;MaxIter=65;options=optimset(LargeScale,off);xo,fxo,g=opt_complex(f,fun_cons,x0,xl,xu,TolX,TolFun,MaxIter)%用用复合形法复合形法求目标函数最优解和最优值求目标函数最优解和最优值xo,fo=fmincon(f,x0,xl,xu,fun_cons,options)%通过使用通过使用函数函数fmincon解决有约束的非线性优解决有约束的非线性优化问

40、题化问题function c ceq=fun_cons(x)c=64-x(1)2-x(2)2 -x(1)+x(2)-10 x(1)-10;ceq=;应用应用opt_complex函数计算结果函数计算结果:xo=5.2186 6.0635,fo=0.0639,g=-0.0000,-9.1551,-4.7814应用应用fmincon函数计算结果:函数计算结果:xo=5.2186 6.0635,fo=0.0639。第38页,此课件共74页哦约束优化问题的间接解法约束优化问题的间接解法约束优化问题的间接解法约束优化问题的间接解法 约束优化问题的间接解法是将约束优化问题转化为一系约束优化问题的间接解法是

41、将约束优化问题转化为一系列无约束优化问题来进行求解的方法。列无约束优化问题来进行求解的方法。约束优化问题的间接解约束优化问题的间接解法除拉格朗日乘子法外,常用的方法还有法除拉格朗日乘子法外,常用的方法还有罚函数法及增广乘子法罚函数法及增广乘子法。虽然约束优化问题的间接解法可利用无约束优化问题的求虽然约束优化问题的间接解法可利用无约束优化问题的求解方法进行求解,但由于增加了拉格朗日乘子或罚因子,其求解方法进行求解,但由于增加了拉格朗日乘子或罚因子,其求解过程与常规无约束优化问题有所不同。解过程与常规无约束优化问题有所不同。第39页,此课件共74页哦4.1概述概述1.基本思想基本思想将约束问题将约

42、束问题转化成转化成无约束问题无约束问题求解求解惩罚函数惩罚函数可调参数可调参数*构造惩罚函数构造惩罚函数的基本要求的基本要求:惩罚项用约束条件构造惩罚项用约束条件构造;到达最优点时到达最优点时,惩罚项的值为惩罚项的值为0 0;当约束不满足或未到达最优点时当约束不满足或未到达最优点时,惩罚项惩罚项的值的值大于大于0 0.第四节第四节 惩罚函数法惩罚函数法第40页,此课件共74页哦惩罚函数法是一种很广泛、很有效的间接解法。它的基本原惩罚函数法是一种很广泛、很有效的间接解法。它的基本原理是将约束优化问题中的不等式和不等式约束函数经加权后,理是将约束优化问题中的不等式和不等式约束函数经加权后,和原目标

43、函数结合为新的目标函数和原目标函数结合为新的目标函数惩罚函数。惩罚函数。将约束优化问题转换为无约束优化问题。求解无约束优将约束优化问题转换为无约束优化问题。求解无约束优化问题的极小值,从而得到原约束优化问题的最优解。化问题的极小值,从而得到原约束优化问题的最优解。加权转化项加权转化项第四节第四节 惩罚函数法惩罚函数法第41页,此课件共74页哦惩罚函数法惩罚函数法是按一定的法则改变加权因子的值,构成一系是按一定的法则改变加权因子的值,构成一系列的无约束优化问题,求一系列无约束最优解,并不断地逼列的无约束优化问题,求一系列无约束最优解,并不断地逼近原约束优化问题的最优解。因此近原约束优化问题的最优

44、解。因此又称序列无约束极小化又称序列无约束极小化方法。常称方法。常称SUMT方法。方法。根据它们在惩罚函数中的作用,分别称障碍项和惩罚根据它们在惩罚函数中的作用,分别称障碍项和惩罚项。项。障碍项的作用是当迭代点在可行域内时,在迭代过程中障碍项的作用是当迭代点在可行域内时,在迭代过程中将阻止迭代点越出可形域。将阻止迭代点越出可形域。惩罚项的作用是当迭代点在非可行域或不满足等式约束条惩罚项的作用是当迭代点在非可行域或不满足等式约束条件时,在迭代过程中将迫使迭代点逼近约束边界或等式约件时,在迭代过程中将迫使迭代点逼近约束边界或等式约束曲面。束曲面。第42页,此课件共74页哦4.2分类分类内点法内点法

45、-将迭代点限制在可行域内将迭代点限制在可行域内;外点法外点法-迭代点一般在可行域外迭代点一般在可行域外;混合法混合法-将外点法和内点法结合起来解将外点法和内点法结合起来解GPGP型问题型问题.按照惩罚函数在优化过程中迭代点是否可行,分为:按照惩罚函数在优化过程中迭代点是否可行,分为:内点法、外点法内点法、外点法及及混合法。混合法。第四节第四节 惩罚函数法惩罚函数法第43页,此课件共74页哦4.3 SUMT4.3 SUMT内点法内点法(内点惩罚函数法、障碍函数法内点惩罚函数法、障碍函数法)1.1.惩罚函数的构造惩罚函数的构造原问题原问题:s.t.可取可取式中式中,1)当当X X趋于趋于D D的边

46、界时的边界时,中间函数中间函数B(X)趋于无穷大趋于无穷大,故又故又称为称为障碍障碍(围墙围墙)函数函数;r称为罚因子称为罚因子,在逐次迭代中越来越小,在逐次迭代中越来越小第44页,此课件共74页哦4.3.1 4.3.1 基本思想:基本思想:内点法将新目标函数内点法将新目标函数(x,r)构筑在构筑在可行域可行域 D D 内内,随着惩罚因子,随着惩罚因子 r r(k)(k)的不断的不断递减递减,生成一系列新目标函数,生成一系列新目标函数 (x(xk k ,r,r(k)(k),在可行域,在可行域内内逐步迭代,产生的极逐步迭代,产生的极值点值点 x xk k*(r*(r(k)(k)序列从可行域序列从

47、可行域内内部趋向部趋向原目标函数的约束最优点原目标函数的约束最优点 x*x*。例例:求下述约束优化问题的最优点。:求下述约束优化问题的最优点。min.f(x)=xxR1s.tg(x)=1-x0X1*X2*X*4.3 SUMT4.3 SUMT内点法内点法(内点惩罚函数法、障碍函数法内点惩罚函数法、障碍函数法)第45页,此课件共74页哦4.3.2 4.3.2 惩罚函数的形式惩罚函数的形式:其中:惩罚(加权)因子其中:惩罚(加权)因子罚因子降低系数罚因子降低系数(罚因子递减速率)(罚因子递减速率)c:0c14.3 SUMT4.3 SUMT内点法内点法(内点惩罚函数法、障碍函数法内点惩罚函数法、障碍函

48、数法)第46页,此课件共74页哦4.3.3 4.3.3 迭代步骤:迭代步骤:1.选取合适的初始点选取合适的初始点x(0),以及,以及r(0)、c、计算精度计算精度1、2,令,令k=0;2.构造惩罚(新目标)函数;构造惩罚(新目标)函数;3.调用无约束优化方法,求新目标函数的最优解调用无约束优化方法,求新目标函数的最优解xk*和和(xk,r(k);4.判断是否收敛:运用终止准则判断是否收敛:运用终止准则前后两次无约束极小点之间的距离前后两次无约束极小点之间的距离相邻两点罚函数的相对误差相邻两点罚函数的相对误差若均满足,停止迭代,有约束优化问题的最优点为若均满足,停止迭代,有约束优化问题的最优点为

49、x*=xk*;若有一个准则不满足,则令若有一个准则不满足,则令并转入第并转入第3步,继续计算。步,继续计算。4.3 SUMT4.3 SUMT内点法内点法(内点惩罚函数法、障碍函数法内点惩罚函数法、障碍函数法)第47页,此课件共74页哦下面介绍内点法中的初始点、惩罚因子初值及其缩减系下面介绍内点法中的初始点、惩罚因子初值及其缩减系数的选取和收敛条件的确定。数的选取和收敛条件的确定。1.初始点的选取初始点的选取初始点应选离约束边界较远的可行点。初始点应选离约束边界较远的可行点。程序设计时,一程序设计时,一般,考虑具有人工输入和计算机自动生成可行初始点的两般,考虑具有人工输入和计算机自动生成可行初始

50、点的两种功能。种功能。4.3 SUMT4.3 SUMT内点法内点法第48页,此课件共74页哦1.初始点初始点x(0)的选择方法的选择方法人工估算,需要校核可行性;人工估算,需要校核可行性;计算机随机产生,也需校核可行性;计算机随机产生,也需校核可行性;搜索方法:搜索方法:任意给出一个初始点;任意给出一个初始点;判断其可行性,若违反了判断其可行性,若违反了S个约束,求出不满足约束中的最大值:个约束,求出不满足约束中的最大值:应用优化方法减少违反约束:应用优化方法减少违反约束:以求得的设计点作为新初始点,继续其判断可行性,若仍有不满足的以求得的设计点作为新初始点,继续其判断可行性,若仍有不满足的约

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁