1.搜索过程
如图7-5所示,在约束可行域内选取一个初始点X(0)。为了确定本次迭代的搜索方向,以计算机产生的随机方向按式(7-15)构成试验点X,若该试验点可行且F(X)<F(X(0)),则以该随机方向为搜索方向,继续向前搜索,直至取得一个最好的可行点,完成一次迭代。如此周而复始,直到满足收敛精度,结束迭代过程,取得约束最优解。
显然,随机搜索法的关键是如何确定随机方向和初始点。
2.随机方向的产生
产生随机方向需要用到大量[0,1]区间内均匀分布的随机数,产生随机数的方法很多,一般计算机及常用算法语言都有随机数产生函数或子程序。设在[0,1]区间内产生了n个随机数i(i=1,2,…,n),为了构成随机方向矢量S,首先将[0,1]区间内的n个随机数
i按下式转换成另一个在[-1,1]区间内的随机数yi。
yi=2i-1 (7-16)然后由随机数yi构成下式所示的n维的一个随机方向
图7-5 随机搜索法的搜索过程
3.初始点的选择
随机搜索法的初始点X(0)必须是一个可行点,即必须满足全部约束条件。通常可以用两种方法来选择初始点:(www.xing528.com)
1)人为预定的方法。在可行域内人为确定一个可行的初始点。当约束条件比较简单时,这种方法是可用的。但当约束条件比较复杂时,人为选择一个可行点就比较困难。
2)随机选择的方法。利用计算机产生的随机数来选择一个可行的初始点X(0)。此时需要输入对设计变量估计的上限值和下限值,即
ai≤xi≤bii=1,2,…,n (7-18)
这样,所产生的随机点的各分量为
xi(0)=ai+i(bi-ai) i=1,2,…,n (7-19)
式中,i为[0,1]内的随机数。
这样产生的随机点不一定满足所有的约束条件,因此必须经过可行性条件的检验。若是可行点,即可作为初始点。若为非可行点,则另取随机数再产生一个随机点。直到产生出一个可行的随机点为止。
4.搜索步长的确定
按式(7-15)迭代时,必须确定搜索步长α(k)。通常,步长α(k)的确定有两种方法:一种是定步长法,即步长按规定长度等差递增,只要所得新点的目标函数值是下降的且可行,就在原基础上增加一个规定的步长向前移动,直至违背了约束条件或目标函数的下降性条件为止,于是迭代点由起点移到新点。另一种是变步长法,即步长按一定的倍增系数等比递增。例如以1.3倍递增,那么每次向前的移动步长为前一次的1.3倍。这样可以减少计算工作量,提高计算效率。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。