首页 理论教育 复合形法在数值计算中的应用

复合形法在数值计算中的应用

时间:2023-06-24 理论教育 版权反馈
【摘要】:图3-23所示为二维问题的复合形。否则称扩张失败,放弃扩张,仍用原反射点XR取代XH,构成新的复合形。压缩 若采用上述各种方法均无效,还可以采取将复合形各顶点向最好点XL靠拢,即采用压缩的方法来改变复合形的形状。应当指出的是,采用改变复合形形状的方法越多,程序设计越复杂,有可能降低计算效率及可靠性。

复合形法在数值计算中的应用

在可行域中选取两个设计点(n+1≤k≤2n)作为初始复合形的顶点,比较两顶点目标函数值的大小,去掉目标函数值最大的顶点(称最坏点)。以坏点以外其余各点的中心为映射中心,用坏点的映射点替换该点,构成新的复合形顶点。反复迭代计算,使复合形不断向最优点移动和收缩,直至收缩到复合形的顶点与形心非常接近,且满足迭代精度要求为止。另外,初始复合形产生的全部k个顶点必须都在可行域内。

由于复合形的形状不必保持规则的图形,对目标函数及约束函数的性状又无特殊要求,因此该法的适应性较强,在优化设计中得到广泛应用。

1.初始复合形的构成

复合形法是在可行域内直接搜索最优点,所以要求第一个复合形的k个顶点必须都是可行点。图3-23所示为二维问题的复合形。对复合形的顶点数一般取k≈2n,当计算问题的维数n较多(如n>5)时,可取k=n+1。

978-7-111-49719-6-Chapter04-154.jpg

图3-23 二维问题的复合形

初始复合形的构造方法有如下几种:

1)给定k个初始顶点。由设计者预先选择k个设计点,即人工构造一个初始复合形。当设计变量较多或者约束函数复杂时,由设计者决定k个可行点是非常困难的。只有在设计变量少、约束函数简单的情况下,这种方法才被采用。

2)设计者给定一个初始点,其他k-1个顶点可用随机法产生。各顶点按下式计算

xij=ai+rijbi-ai) (i=1,2,…,nj=2,3,…,k

式中,aibi为各设计变量的上、下限,一般可取边界约束值;rij为[0,1]区间内服从均匀分布随机数

这样随机产生的k-1个顶点,虽然可以满足边界约束条件,但不一定能满足性能约束条件,还必须逐个进行检查,把不满足约束条件的顶点移到可行域内。设已有q个顶点满足全部约束条件,先求出q个顶点的中心点

978-7-111-49719-6-Chapter04-155.jpg

然后将不满足约束条件的点Xq+1)向中心点Xt靠拢,即

Xq+1)=Xt+0.5(Xq+1)-Xt

若还不满足约束条件,则可以重复用上式计算。只要中心点Xt是可行点,Xq+1)点经逐步向Xt靠拢,最终总能成为一个可行顶点,从而构成初始复合形。

事实上,只要可行域是凸集,其中心点必为可行点,因而用上述方法可以成功地在可行域内构成初始复合形。如果可行域为非凸集那就有失败的可能,当中心点处于可行域之外时,就应该缩小随机选点的边界域,重新产生各顶点。

3)随机产生全部顶点。先随机产生一个可行点,然后按第二种方法产生其余的k-1个可行点。这样的设计方法比较简单,但因初始复合形在可行域内的位置不能控制,可能会给以后的计算带来困难。

2.复合形法的搜索方法

改变复合形形状的搜索方法主要有以下几种:

(1)反射 反射是改变复合形形状的一种主要方法,其计算步骤为:

1)计算复合形各顶点的目标函数值,并比较其大小,求出最好点XL、最坏点XH及次坏点XG,即

XLfXL)=min{fXj),j=1,2,…,k}

XHfXH)=max{fXj),j=1,2,…,k}

XCfXG)=max{fXj),j=1,2,…,kjH}

2)计算除去最坏点XH外的k-1个顶点的中心XC

978-7-111-49719-6-Chapter04-156.jpg

3)从统计的观点来看,一般情况下,最坏点XH和中心点XC的连线方向为目标函数下降的方向。为此,以XC点为中心,将最坏点XH按一定比例进行反射,有希望找到一个比最坏点XH的目标函数值小的新点XRXR称为反射点。其计算公式为

XR=XC+αXC-XH) (3-19)

式中,α反射系数,一般取α=1.2~1.4。

4)判别反射点XR的位置。(www.xing528.com)

①若XR为可行点,则比较XRXH两点的目标函数值,如果fXR)<fXH),则用XR取代XH构成新的复合形,完成一次迭代;如果,fXR)≥fXH),则将α缩小7/10,用式(3-19)重新计算新的反射点,若仍不可行,继续缩小α,直至fXR)<fXH)为止。

②若XR为非可行点,则将α缩小7/10,再用XR=XC+αXC-XH)计算反射点XR,直至可行为止。然后重复以上步骤,即比较XRXH的大小,一旦fXR)<fXH),就用XR取代XH完成一次迭代。

综上所述,反射成功的条件是

978-7-111-49719-6-Chapter04-157.jpg

(2)扩张 当求得的反射点XR为可行点,且目标函数值下降较多,则沿反射方向继续移动,即采用扩张的方法,可能找到更好的新点XEXE称为扩张点。其计算公式为

XE=XR+γXR-XC

式中,γ为扩张系数,一般取γ=1。

若扩张点XE为可行点,且fXE)<fXR),则称扩张成功,用XE取代XR,构成新的复合形。否则称扩张失败,放弃扩张,仍用原反射点XR取代XH,构成新的复合形。

(3)收缩 若在中心点XC以外找不到好的反射点,还可以在XC以内,即采用收缩的方法寻找较好的新点XKXK称为收缩点。其计算公式为

XK=XH+βXC-XH

式中,β为收缩系数,一般取β=0.7。

fXK)<fXH),则称收缩成功,用XK取代XH构成新的复合形。

(4)压缩 若采用上述各种方法均无效,还可以采取将复合形各顶点向最好点XL靠拢,即采用压缩的方法来改变复合形的形状。压缩后的各顶点的计算公式为

Xj=XL-0.5(XL-Xj) (j=1,2,…,kjL

然后,再对压缩后的复合形采用反射、扩张或收缩等方法,继续改变复合形的形状。

应当指出的是,采用改变复合形形状的方法越多,程序设计越复杂,有可能降低计算效率可靠性。因此,程序设计时,应针对具体情况,采用某些有效的方法。

3.复合形法的搜索步骤

基本的复合形法(只含反射)的搜索步骤为:

1)选择复合形的顶点数k,一般取n+1≤k≤2n,在可行域内构成具有k个顶点的初始复合形。

2)计算复合形各顶点的目标函数值,比较其大小,找出最好点XL、最坏点XH及次坏点XG

3)计算除去最坏点XH以外的k-1个顶点的中心XC。判别XC是否可行,若XC为可行点,则转步骤4);若XC为非可行点,则重新确定设计变量的下限和上限值,即令

a=XLb=XC

然后转到步骤1),重新构造初始复合形。

4)按式(3-19)计算反射点XR,必要时,改变反射系数α的值,直至反射成功。然后以XR取代XH,构成新的复合形。

5)若收敛条件

978-7-111-49719-6-Chapter04-158.jpg

得到满足,计算终止。约束最优解为:X=XLfX)=fXL)。否则转到步骤2)。

复合形法的计算框图如图3-24所示。

978-7-111-49719-6-Chapter04-159.jpg

图3-24 复合形法的计算框图

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈