蛙跳算法数学模型
在SFLA算法中,一系列关键的计算参数是必不可少的。这些参数包括:
- F:指蛙群的数量,代表算法中个体的集合。
- m:表示族群的数量,每群青蛙有其特定的动态行为。
- n:每个族群中青蛙的数量,构成了群体的基本组成单元。
- Smax:为最大允许跳动步长,限制了青蛙在搜索过程中的移动范围。
- Px:全局最优解,代表算法目标的最高标准。
- Pb:局部最优解,是每个子群体内的最优解。
- Pw:局部最差解,反映群体中的最低适应度。
- q:子族群中青蛙的数量,用于细化搜索。
- LS:局部元进化次数,控制了局部改进的迭代次数。
- SF:全局思想交流次数,体现了群体间的信息共享。
更新策略是SFLA的核心部分。对于每一群体,最好的适应度解(U g)和子群体内的最优解(UB)和最差解(UW)是关键参考。首先,对每个子族群进行局部搜索,针对最差适应度的个体(Uw)进行更新。具体步骤如下:
- 计算青蛙个体的调整矢量Ds,范围在(Pb-Pw)之间,通过随机数rand()确定:Ds=rand()*(Pb-Pw)
- 根据允许的最大步长Dmax(例如,Uw=[1, 3, 5, 4, 2],UB=[2, 1, 5, 3, 4],Dmax=3),更新新的位置:newDw=oldPw+Ds(-Dmax≦Ds≦Dmax)
例如,若rand=0.5,U q(1) 将被更新为1+min{int[0.5 × (2−1)],3}=1;U q(2) 为3+max{int[0.5×(1−3)], −3}=2。通过这样的过程,可以得到更新后的新解U q=[1, 2, 5, 4, 3]。