1、第六章 约束最优化方法,6-1 概 述,约束最优化问题是:求n维设计变量X=x1, x2, xnT,受约束于gu(X)0(u=1,2,m),hv(X)=0(v=1,2,pn),使目标函数为min f(X)= f(X*),则称X*为最优点,f(X*)为最优值。机械优化设计问题和一般工程实际优化问题绝大多数属于约束非线性规划问题。 约束最优化问题的解法很多,归纳起来可分为两大类。 一类是直接方法,即直接用原来的目标函数限定在可行域内进行搜索,且在搜索过程中一步一步地降低目标函数值,直到求出在可行域内的一个最优解,属于直接方法的有约束变量轮换法、随机试验法、随机方向搜索法、复合形法、可行方向法等。
2、另一类是间接方法,即将约束最优化问题,通过变换转成为无约束最优化问题然后采用无约束最优化方法得出最优解属于间接方法的有消元法、拉格朗日乘子法、惩罚函数法等。 约束最优化问题算法收效速率的判断比无约束最优化问题困难,约束最优化问题的研究和进展情况远不如无约束优化问题。,6-2 约束随机方向搜索法,一、基本原理 基本原理可用图6-1所示二维最优化问题进行说明。,在约束可行区域D内,任意选择一个初始点X(0),以给定的初始步长=0沿着随机方向S(1)取得探索点X=X(0)+S(1) 若该点同时符合下降性(即f(X) f(X(0)和可行性(即XD)要求,则表示X点探索成功。 并以它作为新的起始点,即X
3、X(0),继续按上面的迭代公式在S(1)方向上获取新的探索成功点。 重复上述步骤,迭代点可沿S(1)方向前进,直至到达某搜索点不能同时符合下降性和可行性要求时停止。 此时废弃该搜索点并退回到前一个搜索成功点作为S(1)方向搜索中的最终成功点,记作X(1)。 此后,将X(1)点置为新的始点X(1)X(0),再产生另一随机方向S(2),以步长重复以上过程,得到沿S(2)方向的最终成功点X(2)。 经若干循环,点列 X(k)( k=1,2,) 必最后逼近约束最优点X*。,若在初始点X(0)或某个换向转折点处(如图中的X(1)点),沿某随机方向的探索点目标函数值增大(如图中的A点、C点)或者越出可行域
4、(如图中的B点、D点),则应相应弃去该随机方向,重新产生另一随机方向进行探索。探索成功继续前进,探索失败再重新产生随机方向。当在某个转折点处(如图中的X(2)点),沿Nmax (预先限定在某个转折点处产生随机方向所允许的最大数目)个随机方向以步长进行探索均失败,可以反映以此点为中心、为半径的圆周上各点均难同时符合下降性和可行性条件。 此时可将步长缩半后继续试探,直到已缩减到预定精度以下(即),且沿Nmax个随机方向都探索失败时,则以最后一个成功点(如图中的X(3)点)作为达到预定精度要求的约束最优点,结束迭代。Nmax一般可在50500范围内选取,对目标函数性态不好的应取较大的值,以提高解题成
5、功率。,二、初始点的选择,随机方向搜索法的初始点X(0)必须是一个可行点,即必须满足全部约束条件gu(X)0(u=1,2,m) 通常有两种方法: (一) 人为给定:即在设计的可行区域D内人为地确定一个可行的初始点。 (二) 随机选定:即利用电子计算机产生的伪随机数来选择一个可行的初始点X(0)。 此时需要送入设计变量估计的上限和下限,以图6-2所示二维情况为例,X=x1,x2T,a1x1b1,a2x2b2。 在0,1区间内产生两个随机数r1和r2,0 r11,0 r21, 以x1(0)= a1+ r1(b1a1), x2(0)= a2+ r2(b2a2)作分量获得随机初始点X=x1(0), x
6、2(0)T。,同理,若对n维变量估计其上限和下限:aixibi (i=1,2,n) (6-1) 在0,1区间内产生n个随机数ri,0ri1(i=1,2,n)这样随机产生的初始点X(0)的各分量为xi(0)= ai+ ri(biai) (i=1,2,n) (6-2)ri0,1区间内服从均匀分布的伪随机数列。许多计算机本身就有发生随机数的功能,可直接调用。需要指出,这样产生的初始点X(0)=x1(0), x2(0), xn(0)T虽能满足设计变量的边界条件,但不一定能满足所有约束条件(如点)。 因此这样产生的初始点还须经过可行性条件的检验,如能满足,才可作为一个可行的初始点。否则,应重新随机选初始
7、点,直到满足所有的约束条件。,三、随机搜索方向的产生,以图6-3所示二维情况说明随机向量的产生。 设y1,y2是在区间(-1,+1)上的两个随机数。将它们分别作为x1,x2坐标轴上的分量所构成的向量即为相应的二维随机向量。 其单位向量如y1,y2区间(-1,+1)上的另外两个随机数,同样相应构成另一个二维随机向量,其单位向量为S。这些二维随机单位向量的端点分布于半径为单位长的圆周上。,同理类推,对于一个n维优化问题,随机方向单位向量可按下式计算:yi(i=1,2,n)是在n个坐标轴上随机向量的分量,它由规定在(-1,+1)区间的随机数取得。 有些计算机具有直接调用的功能,但有些计算机则无此功能
8、,需要另编程序。如可获得(0,1)区间内服从均匀分布的随机数数列ri(i=1,2,n),则可通过下式yi= ai+ ri(bi- ai) (i=1,2,n)转化成在(ai,bi)区间内服从均匀分布的随机数数列。以ai-1,bi1代入上式,可得(-1,+1)区间内服从均匀分布的随机数数列yi= 2 ri-1 由于yi在区间(-1,+1)内产生,因此所构成的随机方向单位向量端点一定位于n维的超球面上。,四、迭代过程及算法框图,(1)给定设计变量数目n,初始变量估计的上下限ai,bi (i=1,2,n),初始步长0,步长收敛精度,产生随机方向最大次数Nmax。 (2)随机产生初始点。 (3) X(0
9、)X,f(X)f0,0。 (4)置1k,0jj。 (5)在(-1,+1)区间产生随机数yi (i=1,2,n),获得单位随机向量,沿S方向迭代得迭代新点X= X(0)+S。 (6)检验新点X的可行性。若满足gu(X)0 (u=1,2,m),则进行第(7)步;否则转向第(9)步。 (7)检验新点X的下降性。计算f(X)f,若f Nmax,则进行第(11)步;否则返回第(5)步。 (11)若,则输出最优解:XX*,f(X)f(X*),可终止迭代;否则,将步长减半,即0.5,返回第(4)步,继续迭代。,随机方向搜索法的算法框图如图6-4所示。,6-3 复合形法,一、基本原理复合形法的基本思路 在n维
10、空间的可行域中选取K个设计点(通常取n+1K2n)作为初始复合形(多面体)的顶点。 然后比较复合形各顶点目标函数值的大小,其中目标函数值最大的点为坏点 以坏点之外其余各点的中心为映射中心,寻找坏点的映射点,一般说来此映射点的目标函数值总是小于坏点的,也就是说映射点优于坏点。 这时,以映射点替换坏点与原复合形除坏点之外其余各点构成K个顶点的新的复合形。 如此反复迭代计算,在可行域中不断以目标函数值低的新点代替目标函数值最大的坏点从而构成新复合形,使复合形个断向最优点移动和收缩,直至收缩到复合形的各顶点与其形心非常接近、满足迭代精度要求时为止。 输出复合形各顶点中的目标函数值最小的顶点作为近似最优
11、点。,现以图6-5所示二维不等式约束优化问题来作进步说明。 其数学模型为,D:g1(X)0g2(X)0 a1x1b1 a2x2b2 其中,g1(X)0,g2(X)0可称为隐式约束条件,而边界约束a1x1b1,a2x2b2可称为显式约束条件。,在可行域内先选定X(1)、X(2)、X(3)、X(4)四个点(这里取K=2n=22=4)作为初始复合形的顶点,计算这四个点的目标函数值,并作比较,得出坏点X(H)和好点X(L):X(H):f(X(H)=max f(X(j) j=1,2,K (6-7)X(L):f(X(L)=min f(X(j) j=1,2,K (6-8) 由图6-5,可以看出点X(4)为好
12、点,点X(1)为坏点,即X(4)X(L),X(1)X(H)。以X(2)、X(3)、X(4)三点的中心X(C)为映射中心,寻找坏点X(H)的映射点X(R): X(R) X(C)+(X(C)- X(H) (6-9)为映射系数,通常取1.3。 计算映射点X(R)处目标函数f(X(R)与坏点目标函数值f(X(H) 相比是否下降。并同时检查X(R)是否在可行域内。 如果下降性、可行性这两方面都得到满足,则以X(R)点替换X(H)点,由X(R)与X(2)、X(3)、X(4) 共四个点构成一个新复合形如图6-5出虚线所示),这个新复合形肯定优于原复合形;,如果上述两个条件不能同时满足,则可将映射系数缩半,即
13、0.5,仍按式(6-9)迭代。重新取得新的映射点X(R),使其同时满足下降性、可行性条件。有时甚至要经过多次缩减映射系数才能使回缩的映射点X(R)最后满足这两个条件。这时以回缩成功的映射点X(R)和X(2)、X(3)、X(4) 构成新复合形。构成新复合形就完成了一轮迭代。 再按上述方法进行迭代搜索,不断地使复合形向着目标函数减小的方向移动和收缩,直到逼近最优解。通过以上说明,复合形寻优可以归为两大步骤:第一步是在可行域内构成初始复合形,第二步是通过复合形的收缩和移动不断调优,逐步逼近最优点。,二、初始复合形的产生,初始复合形的全部K个顶点都必须在可行域内。对于维数较低、不很复杂的优化问题,可以
14、人为地预先按实际情况决定K个可行设计点作为初始复合形的顶点; 对于维数较高的优化问题则多采用随机方法产生初始复合形。 现将随机方法产生初始复合形的过程阐述如下:(一)确定一个可行点X(1)作为初始复合形的第一个顶点 在(ai,bi)区间给定一点X(1)=x1(1), x2(1), xn(1) T或调用(0,1)区间内服从均匀分布的随机数列ri(j)在(ai,bi)区间产生第一个随机点X(1),的分量:xi(j)ai + ri(j) (bi-ai) (j=1;i=1,2,n) (6-10) 检验X(1)是否可行。若非可行点,则调用随机数,重新产生随机点X(1),直到X(1)为可行点。(二)产生其
15、他(K-1)个随机点继续调用随机数ri(j),在(ai,bi)区间产生其他(K-1)个随机点: X(2)=x1(2), x2(2), xn(2) T,X(3)=x1(3), x2(3), xn(3)T, X(K)=x1(K), x2(K), xn(K)T 其分量为 xi(j)ai+ri(j)(bi-ai) (j=2,3,K;i=1,2,n) (6-11),(三)将非可行点调入可行域构成初始复合形用上述方法产生的K个点,除第一点X(1)已在可行域内,其他(K-1)个随机点未必都在可行域内。因此应设法将不在可行域的所有随机点逐一调入可行域。这就需要依次检查X(2),X(3),X(K)是否在可行域内
16、。检查过程中如X(2) ,X(3),X(q)依次都在可行域内,它们均作为初始复合形的顶点;至第X(q+1)点不在可行域内,则应首先将X(q+1)点调入可行域。其步骤为:1求出已在可行域的q个点的点集的中心X(D),2将点X(q+1)向X(D)点的方向推进,移至X(q+1)与X(D)的中点,即按下式产生新的X(q+1)点X(q+1) X(D)+0.5(X(q+1)- X(D) (6-13) 如果推移后的X(q+1)点已进入可行域,如图(a)所示,即 点,则此点可作为初始复合形的第q+1个顶点; 如果仍不满足可行性条件,如图(b)所示,则仍按上式再次推移产生新的X(q+1)点,即 点,使之更向X(
17、D)推移。如此重复迭代推移,直到新点X(q+1)成为可行点为止。3继续依次检查X(q+2),X(K),一旦遇到可行点,即作为初始复合形的顶点;一遇到不可行点则按上述方法处理,使之调入可行域。直到全部成为可行点,从而构成了可行域内的初始复合形。,三、迭代过程及算法框图,对于n个设计变量、仅有不等式约束的非线性最优化问题,采用复合形法的具体迭代步骤如下: (1)给定设计变量数目n,变量界限范围ai,bi (i=1,2,n)复合形顶点数目K,精度要求、。 (2)产生初始复合形。如前所述得初始复合形K个顶点 X(j)(j=1,2, K )。 (3)计算复合形各顶点的目标函数值f(X(j),j=1,2,
18、 K。 在各顶点中找出最坏点X(H)和最好点X(L) X(H):f(X(H)=max f(X(j) j=1,2,KX(L):f(X(L)=min f(X(j) j=1,2,K转入第(8)步。 (4)计算除坏点X(H)外其余各顶点的中心X(C),(5)检查X(C)点的可行性。若X(C)不在可行域D内,则D域可能是一个非凸集,如图6-7所示。 这时可在以X(L)点为起点、 X(C)点为端点的超立方体中(二维则为长方形)利用随机数产生新复合形的各个顶点,即以xi(L)ai,xi(C) bi,i=1,2, n, 然后转回第(2)步;若X(C)在可行域,则进行下一步。,(6)寻求映射点X(R) X(R)
19、X(C)+(X(C)- X(H)映射系数通常取1.3。亦须检查X(R)点是否在可行域内。若在可行域内,则进行第(7)步;否则将映射系数减半,即0.5,再按上式计算新的映射点使其向可行域方向靠拢; 若新的映射点仍在可行域外,则将再次减半继续重复迭代直到映射点X(R)进入可行域为止。而后进行下一步。 (7)比较映射点X(R)与最坏点的目标函数值,构成新复合形。计算映射点的目标函数值f(X(R)并与最坏点的目标函数值f(X(H)相比较。若f(X(R) f(X(H),则用X(R)替换X(H)点,即X(R)X(H),构成一个新复合形,返回第(3)步;否则将步长减半,即0.5,返回第(6)步,重新计算新的
20、回缩的映射点X(R),循环迭代,直至f(X(R) f(X(H),则以新的X(R)替换X(H)构成新复合形,返回第(3)步。如果经过若干次的减半映射系数,直到值小于一个预先给定的很小正数,仍不能使映射点优于最坏点,这说明该映射方向不利。改变映射方向,找出复合形各顶点中的次坏点X(SH),即X(SH): X(SH)max f(X(j) (j=1,2,K;jH) (6-15) 次坏点X(SH)替换最坏点X(H),即X(SH) X(H),返回第(4)步。,(8)检验是否满足迭代终止条件 反复执行上述过程,复合形随之收缩。 在每一个新复合形构成之时,均应检验终止条件以判别是否结束迭代。 当复合形缩得很小
21、时,各顶点的目标函数值必然近于相等。 常用各顶点与好点的目标函数值之差的均方根值小于误差限作为终止迭代条件。即满足迭代终止条件,可将最后复合形的好点X(L) X*,f(X(L)f(X*),输出最优解,结束迭代;否则返回步骤(3),继续进行下一次选代。,复合形法的算法框图,6-4惩罚函数法,一、基本原理 将约束问题转化成无约束问题,用无约束方法进行求优的途径就是约束问题求优的间接方法。 惩罚函数法是将约束最优化问题通过变换,转换成为系列无约束最优化问题来处理的一种间接解法。 它是在原无约束最优化问题的目标函数中,引进约束影响的附加项,从而构成一个新的无约束最优化问题的目标函数。 通过合理选择这些
22、附加项,可以使这个新目标函数的无约束最优点的序列收敛到原问题的最优点。现将惩罚函数法的基本原理阐述如下: 将一个约束最优化问题D:gu(X)0 (u=1,2,m) hv(X) =0 (v=1,2,pn)转化成形如的无约束最优化问题。,(X,r1(k),r2(k)是一个人为构造的参数型的新目标函数,称为增广目标函数或惩罚函数(简称罚函数); f(X)为原目标函数,Ggu(X)、Hhv(X)分别为不等式约束函数gu(X)和等式约束函数hv(X)以某种方式构成的复合函数,或称为关于gu(X)、hv(X)的泛函,Ggu(X)、Hhv(X)在全域内定义为非负; r1(k)、r2(k)为在优化过程中随迭代
23、次数k的增大不断进行调整的参数,称为罚因子或罚参数,定义为一个正实数。根据不同情况,它可以是一个递降或递增的数列。 这样就在新目标函数(X,r1(k),r2(k)中即包含了原目标函数又引入了约束条件的影响。 和 称为惩罚项,惩罚项的值恒为非负。 由此可见,惩罚函数(X,r1(k),r2(k)的值在一般情况下总是大于原目标函数f(X)的值,亦即(X,r1(k),r2(k) f(X) (6-18) 这就是所谓惩罚项对新目标函数的“惩罚作用”。显然要求随着迭代次数k的增大,惩罚项的影响越来越小和趋于消失。 随着k的增大,(X,r1(k),r2(k)和f(X)的差值越来越小最后趋于相等。此时所得的X*
24、既是无约束目标函数(X,r1(k),r2(k)的最优点,又是约束目标函数f(X)的最优点。,为了使新目标函数最后总能收敛到原目标函数的同一最优解上去,惩罚项必须具有以下的极限性质:从而有(6-21) 这样就保证了罚函数收敛到原函数的同一最优解上去。由此表明罚函数法是用罚函数(X,r1(k),r2(k)去逼近原目标函数f(X)的一种函数逼近过程。 其总体求解过程为:确定Ggu(X)和Hhv(X)的形式选择不同的罚因子r1(k)和r2(k)的值,每调整一次罚因子值,即对式(6-17)作一次无约束优化,可得一个无约束最优点X*(k),随着罚因子不断调整,无约束最优点序列 X*(k) (k1,2,)不
25、断逼近有约束的原目标函数f(X)最优点X*。 惩罚函数法又称序列无约束最小化方法(sequential Unconstrained Minimization Technique),简称为SUMT法。 根据惩罚项的函数形式不同,惩罚函数法又分为外点惩罚函数法、内点惩罚函数法和混合型惩罚函数法三种。,二、外点惩罚函数法,(一)基本原理 设原目标函数为f(X),在不等式约束gu(X)0(u=1,2,m)条件下用外点惩罚函数法求极小。外点法常采用如下形式的泛函:Ggu(X)=min0, gu(X)2 (6-22) 由此,外点法所构造的相应的惩罚函数形式为(6-23) 式中,惩罚因子r(k)是一个递增的
26、正值数列,即0r(1)r(2)r(k) , 惩罚项中:当迭代点X位于可行域内满足约束条件时,惩罚项为零,这时不管r(k)取多大,新目标函数就是原目标函数,亦即满足约束条件时不受“惩罚”,此时求式(6-23)的无约束极小,等价于求原目标函数f(X)在已满足全部约束条件下的极小;而当点X位于可行域外不满足约束条件时,惩罚项为正值,惩罚函数的值较原目标函数的值增大了,这就构成对不满足约束条件时的一种“惩罚”。,由式(6-23)可知,每一次对罚函数(X,r(k)求无约束的极值,其结果将随该次所给定的罚因子r(k)值而异。 在可行域外,离约束边界越近的地方,约束函数gu(X)的值越大,Ggu(X)的值也
27、就越小,惩罚项的作用也就越弱,随着罚因子r(k)逐次调整增大,有增大惩罚项的趋势,但一般说来泛函值下降得更快一些。 此时尽管r(k) r(k)值增大,但泛函值亦趋于零,满足式(6-19)。最后当k, r(k),泛函值惩罚项值均趋近于零。 外点法在寻优过程中,随着罚因子的逐次调整增大,即取 0r(1)r(2) r(k),所得的最优点序列X*(1),X*(2),X*(k)可以看作是以r(k)为参数的一条轨迹,当时,最优点点列X*(k) (k1,2,)从可行域的外部一步一步地沿着这条轨迹接近可行域,所得的最优点列X*(k)逼近原问题的约束最优点X*。 这样,将原约束最优化问题转换成为序列无约束最优化
28、问题。外点法就是因从可行域的外部逼近最优解而得名。,例题6-2 用外点法求解 ,D:g(X)=x-10的约束最优化问题。 解:如图6-9所示,约束最优解不难看出是X*1,f(X*)1。 若用外点法求解此约束最优化问题,由式(6-23)知惩罚函数为(X,r(k)x+r(k)min0,(x-1)2 式中,r(k)为递增正值数列的外点法罚因子。这样把原约束最优化问题变为min(X,r(k)的序列无约束极小化问题。,将写(X,r(k)成如下形式,用一阶导数为零的必要条件来代替计算机无约束搜索求优。 将函数(X,r(k)对x求导,得,令 ,解得(X,r(k)无约束极小值的点列为(X,r(k)无约束极小值
29、点列相应的惩罚函数值为在表6-1中列出了本例当惩罚因子赋予不同值时迭代的点X*(k)、泛函Gg(X*(k)、惩罚项r(k)Gg(X*(k)和函数值(X*(k)、f(X*(k)。f(X)和(X,r(k)的图形绘于图6-9。,由于外点惩罚函数法具有这种搜索特点,所以也很适用于求解如下等式约束条件下的最优化问题。D:hv(X)=0 (v=1,2,pn) 因为在这种情况下,对于任意不满足等式约束条件的设计点,均是外点。根据外点罚函数的基本思想,常用如下形式的泛函:Hhv(X)= hv(X)2 (6-25) 其相应的惩罚函数为(6-26) 式中,罚因子r(k)与式(6-23)中一样,为递增的正值数列。,
30、(6-23),(二)迭代过程及算法框图,外点惩罚函数法的具体迭代步骤如下; (1)结定初始点X(0)Rn,初始惩罚因子r(0)0,迭代精度,递增系数c1,维数n。置1k。 (2)以X(k1)为初始点,用无约束最优化方法求解惩罚函数(X,r(k)的极小点X(k),即(X(k),r(k)min(X,r(k) (6-27) (3)检验是否满足迭代终止条件:X(k)- X(k1) 或 | f(X(k)- f(X(k1) )| (若| f(X(k)|1)或 (若| f(X(k)|1) 若不满足,则进行第(4)步;否则转第(5)步。 (4)令cr(k)r(k+1),置k+1k,返回进行第(2)步。 (5)
31、输出最优解:X(k)X*,f(X(k)f(X*),停止迭代。,外点惩罚函数法的算法框图,(三)几点说明,(1)外点惩罚函数法的初始点X(0)Rn,可以在可行域内也可以在可行域外任意选取,对实际计算是很方便的。(2)初始罚因子r(1)和递增系数c的选择是否恰当,对方法的有效性与收敛速度都有影响。 若r(1)与c取值过小,则序列求解函数(X,r(k)的无约束最优化次数增多,计算时间增加。 若r(k)与c取值过大,惩罚函数(X,r(k)的性态变环,导致求解无约束优化问题的困难。 JWeisman建议按下公式求每个约束的初始罚因子r(1)罚因子递增系数c一般取510。,图6-11反映引例1-2人架杆优
32、化当r10-10,10-9,10-8,10-7时罚函数(X,r(k)的等值线。,(3)外点惩罚函数法通常求到的最优点X*是无限接近约束边界的一个位于非可行域的外点,这就不能严格满足约束条件。 为了解决这个问题,可对那些必须严格满足的曲约束(如强度、刚度等性能约束)引入约束裕量,如图所示,即将这些约束边界向可行城内紧缩移动一个微量,也就是新定义的约束条件为gu(X)= gu(X)-u0 (u=1,2,m) (6-29) 这样可以用新定义的约束函数构成的惩罚函数来求它的极小化,取得最优设计方案X*。 它虽在紧缩后的约束边界之外,但已在原来的约束边界之内,这就可以使原不等式约束条件能够严格的满足gu
33、(X)0。当然,u值不宜选取过大,以避免所得结果与最优点相差过远,一般取u10-310-4。,三、内点惩罚函数法,(一)基本原理 内点法是从可行域内某一初始内点出发,在可行域内进行迭代的序列极小化方法。它仅用于求解不等式约束优化问题。 设原目标函数为f(X),在不等式约束gu(X)0(u=1,2,m)条件下用内点惩罚函数法求极小。 内点法常采用如下形式的泛函:(6-30) 内点法所构造的相应的惩罚函数形式为(6-31) 惩罚因子r(k)是一个递减的正值数列,即r(1)r(2)r(k)0,,式(6-30)所示的泛函具有如下的性质: 当迭代点X在可行域内离约束边界较远的地方,泛函是不大的正值; X
34、可行域内靠近任一约束边界时,泛函具有很大的正值; 越靠近边界,其值趋向于正无穷大。 它像围墙一样阻止迭代点越出约束边界,所以又称围墙函数。围场函数不一定只限于上述形式,下式所示的函数亦具围墙函数的性质。计算不复杂,亦可用作内点罚函数法的泛函。Ggu(X)=-ln gu(X) 罚因子的作用则为:由于内点法只能在可行域内迭代,而最优点很可能在可行域内靠近边界之处或就在边界上,此时尽管泛函的值很大,但罚因子是不断递减的正值,经多次迭代,X*(k)向X*靠近时,惩罚项 已是很小的正值,因而仍能满足式(6-19)的要求。,(6-19),由式(6-31)可知,每一次对罚函数(X,r(k)求无约束的极值,其
35、结果将随该次所给定的罚因子r(k)值而异。 内点法在寻优过程中,随着罚因子的逐次调整减小,即取r(1)r(2)r(k)0,所得的最优点序列X*(1),X*(2),X*(k)可以看作是以r(k)为参数的一条轨迹,在可行域内部一步一步地沿着这条轨迹向原问题约束最优点X*逼近; 当 时,所得的最优点X*(k)逼近原问题的约束最优点X*。 这样,将原约束最优化问题转换成为序列无约束最优化问题。 内点法就是因从可行域的内部逼近最优解而得名。,(6-31),例题6-3 用内点法求解 D:g(X)=x-10的约束最优化问题。 惩罚函数为,解得(X,r(k)无约束极小值的点列为:,(X,r(k)无约束极小值点
36、列相应的惩罚函数值为:,例题6-2内点法迭代的点及其相应的泛函、惩罚项、函数值,当惩罚因子为一递减正值数列时,其极值点X*(k)离约束最优点X*愈来愈近,(X*(k),r(k)与f(X*(k)的差值愈来愈小,当r(k)0时, X*(k)X*=1,(X*(k),r(k)f(X*(k)=1,亦即逼近于真正的约束最优解。 本例(X,r(k)无约束极值点列X*(k)随r(k)值递减而沿直线(X*(k) ,r(k)2 X*(k)-1从可行域内部向最优点X*收敛。,(二)迭代过程及算法框图,内点惩罚函数法具体迭代步骤如下: (1)给定初始罚因子r(1)0,迭代精度,递减系数e,0e1,维数n。 (2)求约
37、束集D的一个内点X(0)D(0),D(0)=Xgu0 (u=1,2,m ,置1k。 (3)以X(k-1)D(0)为初始点,对于惩罚函数(X, r(k)在保证可行性的情况下,使用无约束最优化方法求解惩罚函数(X,r(k)的极小点X(k),即(X(k), r(k)min(X, r(k) (4)检验是否满足迭代终止条件。终止条件与外点法相同。若不满足,则进行第(5)步;否则转第(6)步。 (5)令er(k)r(k+1),置k+1k,返回进行第(3)步。 (6)输出最优解:X(k) X*, f(X(k)f(X*),停止迭代。,(三)初始内点的求法,内点惩罚函数法的初始内点X(0)必须是约束可行域D中的
38、内点,即X(0)D0。 在机械设计中,只要以增加目标函数f(X)的值为代价就不难找到可行城内的设计点。 例,在齿轮传动啮合参数的优化设计中,若以中心距最小作为追求的目标,那么为了满足强度条件,设计人员在选择初始点时,只要有意识地选取较大的模数、齿宽和较多的齿数等等,强度约束肯定就能得到满足。 又如对某机械产品进行改进设计,那么原设计虽然不是最优方案,但极大多数是可行的。总之,比较有经验的机械设计人员在进行一项优化设计时,直接地找到一个可行内点,并不会存在过大的困难。 有些设计问题由于相互制约关系很复杂,难以直接观察可行设计内点,此时可按随机选一初始点X(0),检验严格满足gu(X)0来获得初始
39、内点 还可用下述对约束不满足程度逐次调整的搜索方法求初始内点:,任选一个设计点X(0)Rn,计算该点的诸约束函数值gu(X(0) (u=1,2,m)。 若在m个约束条件中有q个约束条件得到严格满足,余下(m-q)个约束条件未得严格满足,即gu(X(0)0 (u=1,2,q) gu(X(0)0 (u= q+1, q+2,m) 以X(0)为初始点,暂时将没有被严格满足的那些约束条件的负值作为目标函数,将它在已被严格满足的那些约束条件所构成的可行域中极小化,这时仍可采用内点惩罚函数法进行迭代,最终就可求得一个满足所有约束条件的可行点。 这种用搜索方法求初始内点的迭代步骤如下:,(1)任取X(0)Rn
40、及初始惩罚因子r(1)0(例如r(1)1),递减系数e,0e1,置0k。 (2)定出内点与非内点(包括边界点)的下标集合T(k)和S(k) (3)检验集合S(k)是否为空集,若S(k),则X(k)D0取作初始内点,停止迭代;否则进行第(4)步。 (4)以X(k)为初始点,求的极小点X(k+1),其中 ,r(k+1) 0。 (5)令er(k+1)r(k+2),置k+1k,返回第(2)步按上述步骤继续搜索迭代,经有限步迭代后,必可求得在可行域内的点X(k)D0。,(四)惩罚因子初值和递减系数的选择,惩罚因子初值r(1)选择得是否合适,对内点法的收敛速度有显著影响。 一般说来,若初始值r(1)选择得
41、过小,则惩罚函数(X, r(k)的性态就会变坏,如在约束边界附近出现深沟谷地,使迭代发生困难甚至得不到正确的最优解。 若r(1)择过大,虽然函数(X, r(1)容易极小化,但函数(X, r(1)的最优点离函数f(X)的约束最优点很远,甚至有可能使取得的一些无约束最优点,比初始点X(0)更远离约束最优点,这将使计算效率降低。 因此r(1)的取值应按函数(X, r(1)最小化不发生困难的前提下尽可能取得小一些。 在实际计算中, r(1)值范围大约为150。不少情况是取r(1)1。如果初始点X(0)是一个远离边界的内点,推荐r(1)值按下式近似求出,当初始点X(0)与任何一个或几个约束边界接近时,按
42、上式求出的r(1)值一般总是太小,此时必须另选一个适当大的r(1)值。考虑到r(1) 取值过大时,会发生函数(X, r(1)的最优点比初始点X(0)离约束最优点更远的弊病,在选择相当大的r(1)值时,可在所求的约束最优化问题中,附加一个新的约束条件为gm+1(X)=f(X(0)+- f(X )0 (6-37) 式中,是第一次极小化时为保持初始点在可行域内允许f(X)和f(X(0)稍有增加的某个微小增量。此时,内点惩罚函数为关于递减系数e的取值,一般认为不是一个决定性的因素。如果选的值小,罚因子递减快,可减少无约束优化次数,但前后两次无约束最优解之间距离较远,故在后一次求无约束最优化的迭代次数可
43、能要多一些;如e选的值大,情况恰好相反。故e值对总的迭代次数相差不多。一般可取e0.10.02。 以上推荐的r(1)值与e值,也不能认为对一切问题都是有效的。在有些情况下,需要针对目标函数f(X)与约束函数gu(X)的性态通过几次试算才能解决。,(五)一维搜索问题,内点惩罚函数法在求无约束最优点时,原则上对各种无约束极值的迭代方法都可以使用,应注意在迭代过程中始终都要满足gu(X)0的条件下求极小。当无约束极小点还没有接近约束边界时,一般是不会出现迭代点越出可行域边界。但当无约束极小点越来越接近约束边界时,如果此时搜索步长大了一些,则就可能使迭代点越出可行域之外。 图表示在一维搜索中,从点X(
44、k)出发,沿 S(k)方向搜索,求搜索区间a,b的情况。 若所取的初始步长h太大,则搜索区间 就会越出约束边界,破坏了整个算法。 为解决这个问题,可在程序中设置一个检 查环节,如果搜索步长太 大越出约束边界 时,程序作出反映,将步长缩短,如缩短 一半后重新搜索。此时若仍越出约束边 界,则步长再缩小一半,如此继续下去,最后在可行域内可获得新试点,找出函数两头大中间小的区间a,b,或者当步长不断缩小到足够小,就可以近似地把X(k)作为在S(k)方向上的极小点。,(六)内点法与外点法的比较,内点法要在约束集合D内进行,所以必须事先求出初始内点,而外点法则无此要求,可以在整个Rn中选初始点。 内点法对
45、具有等式约束的最优化问题不适用,外点法则可以应用。 外点法只适用最优点在约束边界上,亦不适用于目标函数在可行域外没有定义或性质很复杂的情况。特别是外点法无法观察优化过程中在可行域内的设计点所对应的目标函数值的变化情况,而这往往却是工程设计人员所关心的。 内点法在给定一个可行的初始方案以后,它将产生一系列根据追求的目标而逐步得到改进的可接受的设计方案。因为任何一个惩罚函数的极值点都在可行域内,所以只要设计要求允许,可以选用次优设计方案或再次优设计方案,而不用处于约束边界的最优设计方案。这样一种设计方案,若是受强度、刚度等约束所限制的,则它具有超载及应付不合理操作的储备能力。 因此内点惩罚函数法是
46、设计人员常常愿意使用的一种机械优化设计方法。,四、混合型惩罚函数法,惩罚函数法基本原理,对一般的同时具有不等式约束和等式约束的最优化问题D:gu(X)0 (u=1,2,m)hv(X)=0 (v=1,2,pn)用惩罚函数法将式其转化为序列无约束最优化问题。这就构成混合型惩罚函数法的基本形式。 惩罚项也应由与之对应的两部分所组成。 等式约束部分的 只有外点法一种处理形式不等式约束部分的 则有内点法和外点法两种不同的处理形式。按照对不等式约束处理的方式不同,混合型罚函数法可有两种形式。,(一)内点形式的混合型惩罚函数法,不等式约束部分按内点惩罚函数法形式处理,其惩罚函数形式为(6-39) 惩罚因子r
47、1(k),r2(k)应分别为递减和递增的正值数列,为了统一用一个内点法惩罚因子r(k),可将式(6-39)写成如下形式(6-40) 式中和内点法一样,为一个递减的正值数列,即r(1)r(2)r(k)0,内点形式的混合型惩罚函数法的选代过程及算法框图均与内点惩罚函数法相同。初始点X(0)必须是严格满足诸不等式约束条件的内点,初始惩罚因子r(1)、递减系数e均应参照内点惩罚函数法进行选取。,(二)外点形式的混合型惩罚函数法,不等式约束部分按外点惩罚函数法形式处理式为:惩罚因子和外点法一样,为一个递增的正值数列,即0r(1)r(2)r(k) , 外点形式的混合型惩罚函数法的迭代过程及算法框图均与外点
48、惩罚函数法相同。 初始点X(0)可在Rn空间任选,初始惩罚因子r(1)、递增系数c均应参照外点惩罚函数法进行选取。,综上所述,惩罚函数法具有许多优点: 对函数f(X),gu(X),hv(X)不要求具有特别的性质,对于非线性不等式与等式约束都能较好处理。 罚函数法的使用方便,因为它把约束问题转化为无约束问题,只要有求解无约束最优化的有效方法(如鲍威尔法,DFP变尺度法等)与程序,就能很方便地采用。 在机械优化设计中惩罚函数法日益受到重视和广泛应用。 但由于是通过求一系列无约束极值点来收敛到约束最优点,工作量很大,而且罚因子的选取对方法的收敛速度有较大影响,特别当惩罚函数病态将使求无约束极小变得很困难。 人们构想:能否通过一次无约束极小化就能找到约束最优点?这就是近期发展起来的“恰当惩罚函数法”。恰当惩罚函数法是具有一个恰当的罚因子,用其去对恰当罚函数求一个无约束问题,便可求出原约束问题的最优解。,