1 简介 供需优化(SDO) 算法是Zhao等于2019年受经济学供需机制的启发而提出的一种新型元启发式优化算法。该算法在数学上模拟了消费者的需求关系和生产者的供给关系,通过将供求机制
1 简介
供需优化( SDO) 算法是 Zhao 等于 2019 年受经济学供需机制的启发而提出的一种新型元启发式优化算法。该算法在数学上模拟了消费者的需求关系和生产者的供给关系,通过将供求机制之稳定模式和非稳定模式引入到 SDO 算法中,利用两种模式在给定空间中进行局部搜索和全局搜索求解待优化问题。与传统群智能算法相比,SDO 算法收敛速度快、寻优精度高、调节参数少,具有较好的探索和开发能力。
2 部分代码
%--------------------------------------------------------------------------% --------------------------------------------------------------------------
clc;
clear;
close all
MaxIteration=500;
MarketSize=50;
FunIndex=4;
Fun_name='F4';
[BestX,BestF,HisBestF]=SDO(FunIndex,MaxIteration,MarketSize);
display(['F_index=', num2str(FunIndex)]);
display(['The best fitness is: ', num2str(BestF)]);
%display(['The best solution is: ', num2str(BestX)]);
figure('Position',[500 500 660 290])
subplot(1,2,1);
func_plot(Fun_name);
title('Objective space')
xlabel('x_1');
ylabel('x_2');
zlabel([Fun_name,'( x_1 , x_2 )'])
subplot(1,2,2);
if BestF>0
semilogy(HisBestF,'r','LineWidth',2);
else
plot(HisBestF,'r','LineWidth',2);
end
xlabel('Iterations');
ylabel('Fitness');
title(['F',num2str(FunIndex)]);