
2.3 改进优化算法的原理
2.3.1 FOA
果蝇优化算法(FOA)是一种全局搜索学习算法,相比较目前几种成熟的优化学习算法如遗传算法(GA)和粒子群算法(PSO),其可调参数较少、鲁棒性较好、搜索时间短、学习速度快等,但因该算法发展较晚,目前国内外关于FOA的研究和改进均处于初步发展阶段,还有很大的发展空间。
FOA算法由果蝇觅食行为得以演变出一种全局寻优的算法,其算法寻优过程如图2-4所示。
图2-4 FOA迭代觅食过程
由图2-4可见,首先在二维空间内定义果蝇种群搜寻目标的随机方向:
式中 ∆δ——-1~1之间任意随机数;
(xi,yi)——随机初始果蝇群体的坐标;
N——种群规模。距离为
从而将Disti代入适应度函数得该果蝇个体坐标的味道浓度为
最后求出种群中最大值Smax和该值所对应的个体,
),该个体即为所求最佳路线目标值,将其代入式(2-25)中,确定搜索方向,最终实现了寻优迭代的学习过程。
2.3.2 改进FOA
由2.3.1节所述算法原理可知,因Disti>0,导致算法只能在坐标的1、4象限搜寻最值,若所求问题的适应度函数极值在2、3象限时,会陷入局部极值。故需要对果蝇个体坐标的味道浓度Disti进行调整以提高搜索范围。
1)首先在计算适应度值时,可将式(2-26)改为
sign(∆δ)确保了Disti符号的随机多变性,避免了陷入1、4象限寻优的可能,使得算法在寻优过程中跳出极值。
2)然后在迭代寻优时,将式(2-26)中的Disti更新迭代为
式中 ——每次迭代更新后的浓度值。
这样就保证了更新后浓度值的符号(果蝇搜寻目标的方向)与原浓度值Disti保持一致,使得个体在寻优过程中缩短搜索路径,加快搜索时间,达到全局搜索的目的。
2.3.3 与GA、PSO算法的对比
目前,应用较为成熟的是GA和PSO算法。GA是通过选择、交叉、变异进行参数的优化,在进行最优值搜索前要确定遗传代数、交叉概率和变异概率共3个可调参数。PSO算法的搜索优化需考虑位置、速度和适应度值3项指标,可调参数为惯性权重因子、空间速度、加速因子。本部分所提出的FOA只需考虑0~1范围内的方向随机参数,其算法的鲁棒性更高。