首页 理论教育多目标群体智能算法的烟花爆炸实现

多目标群体智能算法的烟花爆炸实现

【摘要】:在上述烟花算法的实现步骤中,有关爆炸算子、变异算子、映射规则和选择策略等涉及的若干重要部件需进一步描述如下。算法4.1是烟花算法产生火花的伪码。算法4.3是烟花爆炸算法的伪码,从中可以看出,烟花算法的执行过程与其他群体智能算法相似,需要通过循环迭代产生下一代个体。

多目标群体智能算法的烟花爆炸实现

烟花算法开始迭代时,依次利用爆炸算子、变异算子、映射规则和选择策略,直至达到终止条件,即满足问题的精度要求或者达到最大的函数评估次数或者达到预设的最大迭代次数。

烟花算法的实现包括如下几个步骤[2]:

在特定的解空间中随机产生一些烟花,每一个烟花代表解空间中的一个解。

根据适应度函数计算每一个烟花的适应度值,并根据适应度值产生火花。适应度值越好的烟花产生火花的数目越多。

根据待解问题的特点,在烟花的爆炸空间内产生火花(某个烟花的爆炸幅度的大小由该烟花在函数上的适应度值决定,适应度值越大,爆炸幅度越小,反之亦反)。每一个火花代表解空间中的一个解,为了保证种群的多样性,需要对烟花进行适当变异,例如高斯变异等。

计算种群的最优解,判定是否满足要求。如果满足,则停止搜索;否则继续迭代。下一次迭代的初始值是上一代获得的N个解。

在上述烟花算法的实现步骤中,有关爆炸算子、变异算子、映射规则和选择策略等涉及的若干重要部件需进一步描述如下。

(1)爆炸算子

1)爆炸强度

在烟花算法中,产生火花个数的公式如下:

其中,Si为第i个烟花产生的火花个数,m是常数,用来限制产生的火花总数;Ymax是当前种群中适应度值最差的个体的适应度值;f(xi)为个体xi的适应度值;ε为一个极小的常数,以避免出现分母为零的情况。

为了限制烟花爆炸产生火花的数量过多或过少,通常为每个烟花设定了如下产生火花数量的限制公式,即

其中, 为第i个烟花产生的火花的数量;round(·)为四舍五入取整函数;a和b为给定的常数。

2)爆炸幅度

烟花爆炸幅度范围的计算公式为:(www.chuimin.cn)

其中,Ai为第i个烟花的爆炸幅度范围,即爆炸的火花将在这个范围内随机产生位移,但不能超出这个范围;A ∧为一个常数,表示最大的爆炸幅度;Ymin为当前种群中适应度值最好的个体的适应度值;f(xi)和参数ε的意义同式(4.2)一致。

3)位移操作

位移操作是对烟花的每一维进行位移,即:

其中,rand(0,Ai)表示在幅度范围Ai内生成的均匀随机数

算法4.1是烟花算法产生火花的伪码。

(3)映射规则

采用模运算的映射规则,其公式为:

其中,表示越过边界的第i个个体在第k维上的位置;分别表示第k维上的上、下边界;%代表模运算。

(4)选择策略

在烟花算法中,采用欧氏距离来度量任意两个个体之间的距离,即:

其中,d(xi-xj)表示任意两个个体xi和xj之间的欧氏距离;R(xi)表示个体xi与其他个体的距离之和;集合K是爆炸算子和高斯变异产生的火花的位置集合。

个体选择采用轮盘赌的方式,每个个体被选择的概率用p(xi)表示,即:

由式(4.10)可以看出,离其他个体距离更远的个体具有更多的机会成为下一代个体,这种选择方式保证了烟花算法中种群的多样性。

算法4.3是烟花爆炸算法的伪码,从中可以看出,烟花算法的执行过程与其他群体智能算法相似,需要通过循环迭代产生下一代个体。