一、多目标优化算法简介
(1)多目标鳟海鞘算法MSSA
多目标优化算法:多目标鳟海鞘算法(Multi-objective Salp Swarm Algorithm ,MSSA)-CSDN博客
参考文献:
S. Mirjalili, A.H. Gandomi, S.Z. Mirjalili, S. Saremi, H. Faris, S.M. Mirjalili, Salp Swarm Algorithm: A bio-inspired optimizer for engineering design problems, Advances in Engineering Software.多目标优化算法:多目标鳟海鞘算法(Multi-objective Salp Swarm Algorithm ,MSSA)-CSDN博客
(2)多目标人工蜂鸟算法MOAHA
多目标优化算法:多目标人工蜂鸟算法(multi-objective artificial hummingbird algorithm,MOAHA)_最新的多目标优化算法_IT猿手的博客-CSDN博客
参考文献:多目标优化算法:多目标人工蜂鸟算法(multi-objective artificial hummingbird algorithm,MOAHA)_最新的多目标优化算法_IT猿手的博客-CSDN博客
[1]Weiguo Zhao, Zhenxing Zhang, Seyedali Mirjalili, Liying Wang, Nima Khodadadi, Seyed Mohammad Mirjalili.An effective multi-objective artificial hummingbird algorithm with dynamic elimination-based crowding distance for solving engineering design problems,Computer Methods in Applied Mechanics and Engineering, 398,2022,
(3)多目标粒子群优化算法MOPSO
多目标应用:基于多目标粒子群优化算法MOPSO求解微电网多目标优化调度(MATLAB代码)-CSDN博客
(4)NSGA3
NSGA-III求解微电网多目标优化调度(MATLAB)-CSDN博客
(5)NSGA2
NSGA-II求解微电网多目标优化调度(MATLAB)-CSDN博客
二、微电网多目标优化调度模型
三、MSSA、MOAHA、MOPSO、NSGA3、NSGA2求解微电网多目标优化调度
(1)部分代码
close all;
clear ;
clc;
addpath('./MSSA/')%添加算法路径
addpath('./NSGA3/')%添加算法路径
addpath('./NSGA2/')%添加算法路径
addpath('./MOAHA/')%添加算法路径
addpath('./MOPSO/')%添加算法路径
global P_load; %电负荷
global WT;%风电
global PV;%光伏
%%
TestProblem=1;
MultiObj = GetFunInfo(TestProblem);
MultiObjFnc=MultiObj.name;%问题名
% Parameters
params.Np =100; % 种群大小(可以修改)
params.Nr =200 ; % (外部存档的大小)
params.maxgen =100; % 最大迭代次数(可以修改)
AlgorithmName={'MSSA','MOAHA','MOPSO','NSGA3','NSGA2'};%算法名称
for i=1:numel(AlgorithmName)
Algorithm=str2func(AlgorithmName{i});%依次获取算法
[Xbest{i},Fbest{i}] = Algorithm(params,MultiObj);%算法求解
end
%% 比较不同目标函数寻优对调度结果的影响:
% idxn=1:第1种.将两个目标函数值归一化相加,取相加后最小的目标值的粒子,即寻找折衷解
% idxn=2:第2种寻找总成本最低时的解
% idxn=3:第3种寻找运行成本最低时的解
% idxn=4:第4种寻找环境保护成本最低时的解
idxn=3;
%% 结果处理
for i=1:size(Xbest,2)
PG{i}=DealData(Xbest{i},Fbest{i},idxn);
end
strColor={'r*','go','bs','kd','mp','cx','y+'};
strColor1={'r*-','go--','bs-.','kd-','mp--','cx-.','y+-'};
%% 画结果图
figure(1)
for i=1:size(Fbest,2)
plot(Fbest{1,i}(:,1),Fbest{1,i}(:,2),strColor{i});
hold on
end
legend(AlgorithmName);
xlabel('运行成本')
ylabel('环境保护成本')
saveas(gcf,'./Picture/ParetoFont.jpg') %将图片保存到Picture文件夹下面