问题描述:
用PSO优化多目标约束问题
文件目录:
PSO.m
ObjectiveFunction.m
DrawLandscape.m
PSO.m
clear all
close all
clc
%define the details of this problem
nVar = 2;
ub = [10 10];
lb = [-10 -10];
fobj = @ObjectiveFunction;
%define the PSO's parameters
noP = 30;
maxIter = 500;
wMax = 0.9;
wMin = 0.2;
c1 = 2;
c2 = 2;
vMax = (ub-lb) .* 0.2;
vMin = -vMax;
%initialise the particles
for k = 1 : noP
Swarm.Particles(k).X = (ub-lb) .* rand(1,nVar) + lb;
Swarm.Particles(k).V = zeros(1,nVar);
Swarm.Particles(k).PBEST.X = zeros(1,nVar);
Swarm.Particles(k).PBEST.O = inf;
Swarm.GBEST.X = zeros(1,nVar);
Swarm.GBEST.O = inf;
end
%main loop
for t = 1 : maxIter
%ca