请参考这里。
MVO算法中,算法寻优主要依靠黑洞基于虫洞进行穿越,在最优宇宙周围进行旅行,其旅行距离率 TDR \text{TDR} TDR是协调算法探索能力和开发能力的重要变量,是影响基本MVO算法寻优的主要参数,但MVO算法中的 TDR \text{TDR} TDR值由0.6凹型递减到0,其变化幅度过窄。较大的 TDR \text{TDR} TDR值有利于全局探索能力,较小的 TDR \text{TDR} TDR值有利于局部深度开发,在此,应该在迭代前期保持较快的迭代趋势进行全局探索,迭代后期保持较慢的迭代趋势,进行局部开发。因此,使用如下非线性收敛因子 TDR = 2 exp ( − ( 4 l L ) 2 ) (1) \text{TDR}=2\exp\left(-\left(\frac{4l}{L}\right)^2\right)\tag{1} TDR=2exp(−(L4l)2)(1)
基本MVO算法中,轮盘赌机制下的白洞多数是最优宇宙,从而没有很好地利用其它宇宙的信息,且虫洞存在概率由小到大,实验数据表明其概率大小对全局极值的获得并没有多大影响。因此,本文提出虫洞的固定存在机制为0.5,即每一轮迭代中,有一半宇宙都会利用虫洞进行穿越,在最优宇宙周围进行正负向随机搜索,定义穿越后的这些宇宙为白洞,剩余的宇宙为黑洞。
星团是宇宙中最大的引力结构,包含数百甚至数千个星系,它们被暗物质的大量晕圈所束缚,多元宇宙其实就是大量的星团结构。目前天文学家发现至少14个星系结构,而人类所处的是银河星系。银河星系中,包括大量的恒星、星团和星云,还有各种类型的星际气体和星际尘埃,银河系本身是一个旋转恒星,各种恒星围绕星系中心旋转,譬如地球围绕太阳公转,地球自身产生自转等。针对剩余的宇宙黑洞,定义它随机选定白洞星系进行螺旋式公转,从而解决种群间的代间信息沟通问题,黑洞的公转使用式(2)数学模型 X H ( l + 1 ) = ∣ X H ( l ) − X B ( l ) ∣ ⋅ e k ⋅ cos ( 2 π k ) (2) X^{\text H}(l+1)=\left|X^{\text H}(l)-X^{\text B}(l)\right|\cdot e^k\cdot\cos(2\pi k)\tag{2} XH(l+1)=∣ ∣XH(l)−XB(l)∣ ∣⋅ek⋅cos(2πk)(2)其中, H \text H H为宇宙黑洞, B \text B B为选定的宇宙白洞, k k k为 [ − 1 , 1 ] [-1,1] [−1,1]之间的随机数。
基于上述策略,本文提出如下改进思想:宇宙膨胀时期,黑洞和白洞存在的机会均等,如果存在虫洞则黑洞穿越虫洞在最优宇宙周围进行以 TDR \text{TDR} TDR旅行距离率进行探索成为白洞;如果不存在虫洞,则黑洞基于已经穿越的白洞进行螺旋式星系公转。
改进算法的实现流程描述如下:
步骤1 定义各参数:定义问题维度 D D D、宇宙个数 N N N、旅行距离率 TDR \text{TDR} TDR,最大迭代步数 L L L;
步骤2 初始化宇宙位置;
步骤3 迭代开始,计算各宇宙的膨胀化率(适应度);
步骤4 白洞选择虫洞穿越:虫洞存在概率 WEP \text{WEP} WEP为0.5,若 WEP > Rand2 \text{WEP}>\text{Rand2} WEP>Rand2,则存在虫洞,黑洞利用虫洞进行穿越,在最优宇宙周围旅行,按照式(3)更新位置 X j H ( l + 1 ) = { F j ( l ) − TDR ( ( ub j − lb j ) rand + lb j ) , Rand2 ≥ 0.5 F j ( l ) + TDR ( ( ub j − lb j ) rand + lb j ) , Rand2 < 0.5 (3) X_j^{\text H}(l+1)=\begin{dcases}F_j(l)-\text{TDR}((\text{ub}_j-\text{lb}_j)\text{rand}+\text{lb}_j),\quad \text{Rand2}\geq0.5\\[2ex]F_j(l)+\text{TDR}((\text{ub}_j-\text{lb}_j)\text{rand}+\text{lb}_j),\quad \text{Rand2}<0.5\end{dcases}\tag{3} XjH(l+1)=⎩ ⎨ ⎧Fj(l)−TDR((ubj−lbj)rand+lbj),Rand2≥0.5Fj(l)+TDR((ubj−lbj)rand+lbj),Rand2<0.5(3)其中, F F F为最优宇宙;
步骤5 黑洞围绕对应白洞公转:若 WEP < Rand2 \text{WEP}<\text{Rand2} WEP<Rand2,则不存在虫洞,剩余黑洞基于已穿越白洞宇宙进行公转,按照式(4)更新位置; X j H ( l + 1 ) = ∣ X j H ( l ) − X j B ( l + 1 ) ∣ ⋅ e k ⋅ cos ( 2 π k ) + X j B ( l + 1 ) (4) X_j^{\text H}(l+1)=\left|X_j^{\text H}(l)-X_j^{\text B}(l+1)\right|\cdot e^k\cdot\cos(2\pi k)+X_j^{\text B}(l+1)\tag{4} XjH(l+1)=∣ ∣XjH(l)−XjB(l+1)∣ ∣⋅ek⋅cos(2πk)+XjB(l+1)(4)
步骤6 更新当前宇宙旅行距离率 TDR \text{TDR} TDR。宇宙重新组合;
步骤7 循环结束条件判断,满足则结束,输出结果。不满足则跳转到步骤3。
将IMVO与基本MVO进行对比,以常用23个测试函数中的F3、F4(单峰函数/10维)、F9、F10(多峰函数/10维)、F16、F17(固定维度多峰函数/2维、2维)为例,实验设置种群规模为30,最大迭代次数为500,每种算法独立运算30次,结果显示如下:
函数:F3
MVO:最差值: 0.20594, 最优值: 0.018511, 平均值: 0.079661, 标准差: 0.055409, 秩和检验: 3.0199e-11
IMVO:最差值: 1.2798e-10, 最优值: 5.0349e-22, 平均值: 7.205e-12, 标准差: 2.4187e-11, 秩和检验: 1
函数:F4
MVO:最差值: 0.14415, 最优值: 0.031376, 平均值: 0.088212, 标准差: 0.028312, 秩和检验: 3.0199e-11
IMVO:最差值: 4.003e-06, 最优值: 1.3425e-14, 平均值: 3.2996e-07, 标准差: 8.6881e-07, 秩和检验: 1
函数:F9
MVO:最差值: 32.8456, 最优值: 4.9834, 平均值: 17.3203, 标准差: 6.1205, 秩和检验: 4.111e-12
IMVO:最差值: 2.7697e-11, 最优值: 0, 平均值: 9.7108e-13, 标准差: 5.0512e-12, 秩和检验: 1
函数:F10
MVO:最差值: 2.0168, 最优值: 0.030909, 平均值: 0.21199, 标准差: 0.48702, 秩和检验: 3.0199e-11
IMVO:最差值: 1.0677e-06, 最优值: 2.4301e-11, 平均值: 7.1238e-08, 标准差: 2.3126e-07, 秩和检验: 1
函数:F16
MVO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 3.7125e-07, 秩和检验: 3.0199e-11
IMVO:最差值: -1.0316, 最优值: -1.0316, 平均值: -1.0316, 标准差: 1.741e-13, 秩和检验: 1
函数:F17
MVO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 7.4878e-07, 秩和检验: 3.018e-11
IMVO:最差值: 0.39789, 最优值: 0.39789, 平均值: 0.39789, 标准差: 2.9306e-13, 秩和检验: 1
实验结果表明:IMVO算法可以求解大规模实值优化问题,具有较强的鲁棒性和适用性。
[1] 刘小龙. 改进多元宇宙算法求解大规模实值优化问题[J]. 电子与信息学报, 2019, 41(7): 1666-1673.