👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆下载资源链接👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆
《《《《《《《《更多资源还请持续关注本专栏》》》》》》》
论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html
传统优化算法相较于智能优化算法在求解微电网群优化调度问题中较难寻出可行解或最优解,对此提出一种基于融合反向学习和柯西变异改进的秃鹰算法(IBES),在秃鹰搜索空间猎物阶段采用融合反向学习和柯西变异策略,使得秃鹰算法有效跳出局部最优,解决算法求解精度低等问题。通过与粒子群算法(PSO)、麻雀算法(SSA)、鲸鱼算法(WOA)进行对比,仿真结果表明IBES寻优精度更高,可有效减少微电网群系统的经济成本。
部分代码展示:
% tic
%% 设置种群参数
sizepop = 40; % 初始种群个数
dim = 10; % 空间维数
ger = 500; % 最大迭代次数
% 选择适应度函数
[xmax0, xmin0, fun] = Select_fitnessfun(fitnesfun);
x_max = xmax0*ones(1,dim); % 位置上限
x_min = xmin0*ones(1,dim); % 位置下限
v_max = x_max*0.5; % 速度上限
v_min = -x_max*0.5; % 速度下限
a = 2; % 位置变化参数
a1 = 10; % 搜索点之间角的参数
R = 1.5; % 搜索周期数
c1 = 1.8; % 增加秃鹰移动强度的随机数
c2 = 1.8; % 增加秃鹰移动强度的随机数
[x,y] = polr(a,R,sizepop); % 搜索猎物阶段的参数
[x1,y1] = swoo_p(a,R,sizepop); % 俯冲阶段的参数
%% 种群初始化
pop = x_min + rand(sizepop,dim).*(x_max-x_min); % 初始化种群
pop_v = v_min + rand(sizepop,dim).*(v_max-v_min); % 初始化种群速度
pop_best = pop(1,:); % 初始化群体最优位置
fitness = zeros(1,sizepop); % 所有个体的适应度
fitness_best = inf; % 初始化群体最优适应度
%% 初始的适应度
for k = 1:sizepop
% 计算适应度值
fitness(k) = fun(pop(k,:));
if fitness(k) < fitness_best
fitness_best = fitness(k);
pop_best = pop(k,:);
end
end
history_IBES = zeros(1,ger); % IBES历史最优适应度值
%% 迭代求最优解
iter = 1;
while iter <= ger
for k = 1:sizepop
% 1.选择搜索空间阶段
pop_new = pop_best + 2*rand(1,dim).*(mean(pop) - pop(k,:));
fitness_new = fun(pop_new);
if fitness_new < fitness(k)
fitness(k) = fitness_new;
pop(k,:) = pop_new;
end
% 2.搜索猎物阶段
if k <= sizepop - 1
pop_new = pop(k,:) + y(k)*(pop(k,:) - pop(k + 1,:)) + x(k)*(pop(k,:) - mean(pop));
fitness_new = fun(pop_new);
if fitness_new < fitness(k)
fitness(k) = fitness_new;
pop(k,:) = pop_new;
end
end
% 3.俯冲阶段
pop_new = rand(1,dim).*pop_best + x(k)*(pop(k,:) - c1*mean(pop)) + y(k)*(pop(k,:) - c2*pop_best);
fitness_new = fun(pop_new);
if fitness_new < fitness(k)
fitness(k) = fitness_new;
pop(k,:) = pop_new;
end
% 4.融合反向学习和柯西变异策略
P = exp((1 - iter)/ger)^2 - 0.05;
if P < 0.5
pop1 = x_max + rand(1,dim).*(x_min - pop(k,:));
L = ((ger - iter)/ger)^iter;
pop_new = pop1 + L*(pop(k,:) - pop1);
else
pop_new = pop(k,:) + Cauchy(pop(k,:),0,1).*pop(k,:);
end
fitness_new = fun(pop_new);
if fitness_new < fitness(k)
fitness(k) = fitness_new;
pop(k,:) = pop_new;
end
% 更新位置并对位置进行边界处理
for kk = 1:dim
if pop(k,kk) > x_max(kk)
pop(k,kk) = x_max(kk);
end
if pop(k,kk) < x_min(kk)
pop(k,kk) = x_min(kk);
end
end
% 更新种群最优
if fitness(k) < fitness_best
fitness_best = fitness(k);
pop_best = pop(k,:);
end
end
history_IBES(iter) = fitness_best;
iter = iter+1;
end
效果展示:
108号资源-源程序:《基于改进秃鹰算法的微电网群经济优化调度研究》-本人博客有解读资源-CSDN文库https://download.csdn.net/download/LIANG674027206/89315310👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆下载资源链接👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆👆
《《《《《《《《更多资源还请持续关注本专栏》》》》》》》
论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html