算法参数设置:
群体大小(n)
迭代次数(max_iter)
惯性权重因子(w)
学习因子(c1、c2)
最大速度限制(v_max)
初始化鹈鹕群体位置和速度:
对每个鹈鹕(i = 1 到 n)做以下操作:
随机初始化位置(x_i)
随机初始化速度(v_i)
对于每次迭代(iter = 1 到 max_iter)做以下操作:
对于每个鹈鹕(i = 1 到 n)做以下操作:
计算适应度值(fitness_i)
找到当前最优位置(p_best_i)和全局最优位置(g_best)
更新速度和位置:
对于每个维度(j = 1 到维数)做以下操作:
生成随机数(r1、r2)
更新速度(v_ij):v_ij = w * v_ij + c1 * r1 * (p_best_ij - x_ij) + c2 * r2 * (g_best_j - x_ij)
限制速度在最大速度范围内:v_ij = min(max(v_ij, -v_max), v_max)
更新位置(x_ij):x_ij = x_ij + v_ij
如果新位置超出搜索空间范围,则将其限制在范围内
结束当前迭代
结束算法