文章目录
- 【`获取资源`请见文章第5节:资源获取】
- 1. 原始鹦鹉优化算法PO
- 2. 改进后的IPO算法
- 2.1 自适应切换因子
- 2.2 混合柯西和高斯变异
- 3. 部分代码展示
- 4. 仿真结果展示
- 5. 资源获取
【获取资源
请见文章第5节:资源获取】
1. 原始鹦鹉优化算法PO
鹦鹉优化算法(Parrot optimizer,PO)是2024提出来的新算法。作者根据鹦鹉的四种不同的行为特征:觅食、停留、交流和对陌生人的恐惧,提出了这个算法。觅食行为描述鹦鹉在食物丰富的小群体中觅食,可以利用主人的位置和群体的存在,向食物靠近;停留行为描述鹦鹉在主人身体的不同部位随机栖息;交流行为描述鹦鹉在群体中进行交流,既用于社会互动,也用于信息传播;对陌生人的恐惧行为描述鹦鹉离开不熟悉的个体,向它们的主人寻求保护。
2. 改进后的IPO算法
2.1 自适应切换因子
在鹦鹉优化算法的交流行为阶段,有两个公式来更新鹦鹉的位置,其中一个公式描述的是鹦鹉在种群进行交流的行为,另外一个公式描述的是鹦鹉进行信息传播的行为,通过H因子来控制这两种行为的概率。其中,描述信息传播行为的公式,其变异力度较小,当种群陷入局部最优时,并不能有效地跳出局部最优。因此,提出自适应切换因子策略,让鹦鹉在迭代后期更多的进行种群间交流行为,减少低效的信息传播行为。
2.2 混合柯西和高斯变异
在传统鹦鹉优化算法迭代过程中,鹦鹉个体的快速同化可能会导致种群聚集在当前最优位置附近,从而陷入局部最优解而无法发现全局最优解。为了解决这个问题,引入变异算子对个体进行干扰,以增加种群的多样性,跳出局部最优解。柯西和高斯变异是两种常用的变异算子,但各自存在一些缺点。因此,提出一种融合了柯西变异和高斯变异各自的优点的自适应高斯-柯西混合变异策略。
3. 部分代码展示
close all
clear
clc
N = 30; % Number of search agents
Function_name='F1'; % Name of the test function that can be from F1 to F23
Max_iteration = 500; % Maximum numbef of iterations
% Load details of the selected benchmark function
[lb,ub,dim,fobj] = Get_Functions_details(Function_name);
[Best_pos_PO, Best_score_PO, Convergence_PO] = PO(N,Max_iteration,lb,ub,dim,fobj);
[Best_pos_IPO, Best_score_IPO, Convergence_IPO] = IPO(N,Max_iteration,lb,ub,dim,fobj);
% Draw search space
figure('Position',[454 445 694 297]);
subplot(1,2,1);
func_plot(Function_name);
title('Parameter space')
xlabel('x_1');
ylabel('x_2');
zlabel([Function_name,'( x_1 , x_2 )'])
% Draw objective space
subplot(1,2,2);
semilogy(Convergence_PO,'Color','k','Linewidth', 1.5)
hold on
semilogy(Convergence_IPO,'Color','r','Linewidth', 1.5)
title('Objective space')
xlabel('Iteration');
ylabel('Best score obtained so far');
axis tight
grid on
box on
legend('PO','IPO')
4. 仿真结果展示
5. 资源获取
可更换其他群智能算法,获取完整代码资源。👇👇👇👀名片