1.初始复合形的形成
复合形法是在可行域内直接搜索最优点,因此,要求初始复合形在可行域内生成,即初始复合形的k个顶点必须都是可行点。
生成初始复合形的方法有以下几种:
1)由设计者决定k个可行点,构成初始复合形。当设计变量较多或约束函数复杂时,由设计者决定k个可行点常常很困难。只有在设计变量少,约束函数简单的情况下,这种方法才被采用。
2)由设计者选定一个可行点,其余的(k-1)个可行点用随机法产生。各顶点按下式计算:
Xj=a+Rj(b-a)(j=1,2,…,k) (5-10)
式中,Xj为复合形中的第j个顶点;a、b分别为设计变量的下限和上限;Rj为在(0,1)区间内的伪随机数。
用式(5-10)计算得到的(k-1)个随机点不一定都在可行域内,因此要设法将非可行点移到可行域内。通常采用的方法是,求出已经在可行域内的L个顶点的中心XC:
然后将非可行点向中心点移动,即
XL+1=XC+0.5(XL+1-XC) (5-12)
若XL+1仍为不可行点,则利用式(5-12),使其继续向中心点移动。显然,只要中心点可行,XL+1点一定可以移到可行域内。随机产生的(k-1)个点经过这样的处理后,全部成为可行点,并构成初始复合形。
事实上,只要可行域为凸集,其中心点必为可行点,用上述方法可以成功地在可行域内构成初始复合形。如果可行域为非凸集,如图5-5所示,中心点不一定在可行域之内,则上述方法可能失败。此时可以通过改变设计变量的下限和上限值,重新产生各顶点。经过多次试算,有可能在可行域内生成初始复合形。
图5-5 中心点XC为非可行点的情况
3)由计算机自动生成初始复合形的全部顶点。其方法是首先随机产生一个可行点,然后按第二种方法产生其余的(k-1)个可行点。这种方法对设计者来说最为简单,但因初始复合形在可行域内的位置不能控制,可能会给以后的计算带来困难。
2.复合形法的搜索方法
在可行域内生成初始复合形后,将采用不同的搜索方法来改变其形状,使复合形逐步向约束最优点趋近。改变复合形形状的搜索方法主要有以下几种:
(1)反射 反射是改变复合形形状的一种主要策略,其计算步骤为:
1)计算复合形各顶点的目标函数值,并比较其大小,求出最好点XL、最坏点XH及次坏点XG,即
2)计算除去最坏点XH外的(k-1)个顶点的中心XC:
3)从统计的观点来看,一般情况下,最坏点XH和中心点XC的连线方向为目标函数下降的方向。为此,以XC点为中心,将最坏点XH按一定比例迸行反射,有希望找到一个比最坏点XH的目标函数值为小的新点XR,XR称为反射点。其计算公式为
XR=XC+α(XC-XH) (5-14)
式中,α为反射系数,一般取α=1.3。
反射点XR与最坏点XH、中心点XC的相对位置如图5-6所示。
4)判别反射点XR的位置,若XR为可行点,则比较XR和XH两点的目标函数值,如果f(XR)<f(XH),则用XR取代XH,构成新的复合形,完成一次迭代;如果f(XR)≥f(XH),则将α缩小为原来的7/10,用式(5-14)重新计算新的反射点,若仍不可行,继续缩小,直至f(XR)<f(XH)为止。(www.xing528.com)
若XR为非可行点,则将α缩小为原来的7/10,仍用式(5-14)计算反射点XR,直至为可行点为止。然后重复以上步骤,即判别f(XR)和f(XH)的大小,一旦f(XR)<f(XH),用XR取代XH完成一次迭代。
综上所述,反射成功的条件是
图5-6 XR、XH与XC的相对位置
(2)扩张 当求得的反射点XR为可行点,且目标函数值下降较多(如f(XR)<f(XC)),则沿反射方向继续移动,即采用扩张的方法,可能找到更好的新点XE,XE称为扩张点。其计算公式为
XE=XR+γ(XR-XC)
式中,γ为扩张系数,一般取γ=1。
扩张点XE与中心点XC、反射点XR的相对位置如图5-7所示。
图5-7 XE与中心点XC、反射点XR的相对位置
若扩张点XE为可行点,且f(XE)<f(XR),则称扩张成功,用XE取代XR,构成新的复合形。否则称扩张失败,放弃扩张,仍用原反射点XR取代XH,构成新的复合形。
(3)收缩 若在中心点XC以外找不到好的反射点,还可以在XC以内,即采用收缩的方法寻找较好的新点Xk,Xk称为收缩点。其计算公式为
Xk=XH+β(XC-XH) (5-16)
式中,β为收缩系数,一般取β=0.7。
收缩点Xk与最坏点XH及中心点XC的相对位置如图5-8所示。
图5-8 Xk与最坏点XH及中心点XC的相对位置
若f(Xk)<f(XH),则称收缩成功,用Xk取代XH,构成新的复合形。
(4)压缩 若采用上述各种方法均无效,还可以采取将复合形各顶点向最好点XL靠拢,即采用压缩的方法来改变复合形的形状。压缩后的各顶点的计算公式为
Xj=XL-0.5(XL-Xj)(j=1,2,…,k;j≠L) (5-17)
压缩后的复合形各顶点的相对位置如图5-9所示。
图5-9 复合形的压缩变形
然后,再对压缩后的复合形采用反射、扩张或收缩等方法,继续改变复合形的形状。
除此之外,还可以采用旋转等方法来改变复合形形状。应当指出的是,采用改变复合形形状的方法越多,程序设计越复杂,有可能降低计算效率及可靠性。因此,程序设计时,应针对具体情况,采用某些有效的方法。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。