2)评价每个微粒的适应度,将当前各微粒的位置和适应值储存在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
3)如果当前进化代数小于最大进化代数的1/2,根据下面的方程式对微粒的速度和位置进行进化;
其中
如果当前进化代数大于最大进化代数的1/2,根据下面的方程式对微粒的速度和位置进行进化:
其中 ;
4)对每个微粒,将其适应值与其经历过的最好位置作比较,如果较好,则将其作为当前的最好位置;
5)比较当前所有的pbest和gbest的值,更新gbest;
6)满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则返回3)继续搜索。
在matlab中编程实现的二阶振荡粒子群优化函数为SecVibratPSO
功能:用二阶振荡粒子群优化算法求解无约束优化问题。
调用格式:[xm,fv]= SecVibratPSO (fitness,N,c1,c2,w,M,D)
其中,fitness:待优化的目标函数:
N:粒子数目;
c1:学习因子1;
c2:学习因子2;
w:惯性权重;
M:最大迭代次数;
D:自变量的个数;
xm:目标函数取最小值时的自变量值;
fv:目标函数的最小值。
3.2.5混沌粒子群算法
混沌粒子群算法是混沌优化和粒子群优化两者的组合。对于给定的优化函数,通过将搜索过程对应为混沌轨道的遍历过程,可使搜索过程具有比便陷入局部极小的能力。
混沌粒子群算法中涉及到混沌局部算法(CLS),CLS的算法步骤如下:
1)令k=0,将自变量 按下式映射为0到1之间的混沌变量 其中 和 分别为第j文变量的搜索上下界;
2)计算下步迭代的混沌变量 ;
3)将混沌变量 转换为决策变量 , ;
根据决策变量 对新解进行评估,若新解优于初始解 或者混度搜索已达到最大迭代步数,将新解作为CLS的搜索结果,否则置k=k+1,转2)。
混沌搜索算法通常需要大量的迭代步数才可获得较好的解,且对初始解十分敏感,为了克服混沌搜索的缺点,将PSO算法与混沌搜索相结合,的到混沌粒子群算法。
将PSO算法主要用于全局的搜索,而CLS则根据PSO的结果进行局部搜索。
混沌粒子群算法步骤如下。
1)随机初始化群中各微粒的位置和速度;
2)评价每个微粒的适应度,将当前各微粒的位置和适应值储存在各微粒的pbest中,将所有pbest中适应值最优个体的位置和适应值存储于gbest中;
3)跟新每个微粒的速度和位置;
4)计算每个微粒的目标函数,然后保留群体中适应函数值最好的20%的微粒;
5) 对群体中的最佳微粒执行混沌局部搜索,并更新其pbest以及群体的gbest;
6)若满足停止条件(通常为预设的运算精度或迭代次数),搜索停止,输出结果,否则转7);
按下面的式子收缩搜索区域;
其中 表示pbest的第j文变量的值;
8)在收缩后的空间内随机产生群体中剩余80%的微粒,转2)。
在上面的混沌搜索的算法过程中,为了保持种群的多样性,加强搜索的分散性,在保留一定数量优秀微粒的同时,算法根据群体的最佳位置动态收缩收缩区域,并在收缩区域内随机产生微粒来代替性能较差的微粒。
在matlab中编程实现的混沌粒子群群优化函数为CLSPSO
功能:用二阶振荡粒子群优化算法求解无约束优化问题。
调用格式:[xm,fv]=CLSPSO (fitness,N,c1,c2,xmax,xmin,w,M,MaxC,D)
其中,fitness:待优化的目标函数:
N:粒子数目;
- 上一篇:无线自组网络下隐蔽信道的研究与实现
- 下一篇:PLC电动液压人防区间隔断门原地系统设计
-
-
-
-
-
-
-
河岸冲刷和泥沙淤积的监测国内外研究现状
中考体育项目与体育教学合理结合的研究
java+mysql车辆管理系统的设计+源代码
当代大学生慈善意识研究+文献综述
杂拟谷盗体内共生菌沃尔...
大众媒体对公共政策制定的影响
电站锅炉暖风器设计任务书
酸性水汽提装置总汽提塔设计+CAD图纸
乳业同业并购式全产业链...
十二层带中心支撑钢结构...