主页 > 互联网  > 

最新智能优化算法:中华穿山甲优化(ChinesePangolinOptimizer,CPO)算法求解23个经典函

最新智能优化算法:中华穿山甲优化(ChinesePangolinOptimizer,CPO)算法求解23个经典函

中华穿山甲优化( Chinese Pangolin Optimizer ,CPO)算法由GUO Zhiqing 等人提出,该算法的灵感来自中华穿山甲独特的狩猎行为,包括引诱和捕食行为。

算法流程如下:

1. 开始 设置算法参数和最大迭代次数:初始化算法所需的参数和最大迭代次数。 计算适应度值并更新初始化:计算初始种群的适应度值,并更新穿山甲的位置 λM​ 和蚂蚁的位置 XA​。 更新当前种群位置和最优个体位置:更新当前种群的位置和最优个体的位置。 2. 迭代过程 2.1 判断是否达到最大迭代次数 如果当前迭代次数 t 小于最大迭代次数 tmax​,则继续迭代;否则,输出穿山甲的新位置 λMnew​​ 及其适应度值,并结束算法。 2.2 计算香气浓度 CM​ 使用公式 (9) 到 (14) 计算香气浓度 CM​。 2.3 计算快速下降因子 C1​ 使用公式 (28) 计算快速下降因子 C1​。 2.4 计算能量消耗因子 E 使用公式 (24) 计算能量消耗因子 E。 2.5 计算能量波动因子 A1​ 使用公式 (23) 计算能量波动因子 A1​。 2.6 计算疲劳指数因子 Fatigue 使用公式 (25) 计算疲劳指数因子 Fatigue。 2.7 计算 Levy 飞行函数步长 Llevy​ 使用公式 (29) 和 (30) 计算 Levy 飞行函数的步长 Llevy​。 2.8 计算香气轨迹因子 a 使用公式 (21) 和 (22) 计算香气轨迹因子 a。 2.9 根据香气浓度 CM​ 的不同范围进行不同的操作 2.9.1 如果 CM​≥0.2 计算位置 XA​:使用公式 (19) 和 (20) 计算蚂蚁的位置 XA​。 计算穿山甲的位置 λM​:使用公式 (26) 和 (27) 计算穿山甲的位置 λM​。 更新最优位置 X∗:使用公式 (31) 更新最优位置 X∗。 计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。 判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。 2.9.2 如果 0≤CM​<0.3 搜索和定位阶段:使用公式 (32) 和 (33) 计算穿山甲的位置 λM​。 更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。 计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。 判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。 2.9.3 如果 0.3≤CM​<0.6 快速接近阶段:使用公式 (34) 和 (35) 计算穿山甲的位置 λM​。 更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。 计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。 判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。 2.9.4 如果 CM​≥0.6 挖掘和进食阶段:使用公式 (36) 和 (37) 计算穿山甲的位置 λM​。 更新最优位置 X∗:使用公式 (38) 更新最优位置 X∗。 计算适应度值并检查边界:计算新的适应度值并检查是否超出边界。 判断是否是最优的穿山甲位置:如果是,则更新迭代次数 t=t+1,继续迭代;否则,直接更新迭代次数 t=t+1。 3. 结束 输出穿山甲的新位置 λMnew​​ 及其适应度值:当达到最大迭代次数时,输出最终的穿山甲位置及其适应度值,算法结束。

参考文献: [1]Zhiqing GUO, Guangwei LIU, and Feng JIANG, Chinese Pangolin Optimizer: A novel bio-inspired metaheuristic for solving optimization problems

二、23个函数介绍

参考文献:

[1] Yao X, Liu Y, Lin G M. Evolutionary programming made faster[J]. IEEE transactions on evolutionary computation, 1999, 3(2):82-102.

三、部分代码及结果 SearchAgents_no = 100; Max_iter = 1000; fn=12; Function_name=strcat('F',num2str(fn)); [lb,ub,dim,fobj]=Get_Functions_details(Function_name); [Best_score,Best_pos,PO_cg_curve]=(SearchAgents_no,Max_iter,lb,ub,dim,fobj); semilogy(PO_cg_curve,'LineWidth',2) title(Function_name) xlabel('迭代次数'); ylabel('适应度值');

四、完整MATLAB代码见下方名片
标签:

最新智能优化算法:中华穿山甲优化(ChinesePangolinOptimizer,CPO)算法求解23个经典函由讯客互联互联网栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“最新智能优化算法:中华穿山甲优化(ChinesePangolinOptimizer,CPO)算法求解23个经典函