%% 清空环境
clc;clear all;close all;
%% 设置种群参数
% 需要自行配置
sizepop = 500; % 初始种群个数
dim = 30; % 空间维数
ger =700; % 最大迭代次数
xlimit_max = 600*ones(dim,1); % 设置位置参数限制(矩阵的形式可以多维)
xlimit_min = -600*ones(dim,1);
vlimit_max = 1*ones(dim,1); % 设置速度限制
vlimit_min = -1*ones(dim,1);
c_1 = 0.8; % 惯性权重
c_2 = 0.5; % 自我学习因子
c_3 = 0.5; % 群体学习因子
%% 生成初始种群
% 首先随机生成初始种群位置
% 然后随机生成初始种群速度
% 然后初始化个体历史最佳位置,以及个体历史最佳适应度
% 然后初始化群体历史最佳位置,以及群体历史最佳适应度
for i=1:dim
for j=1:sizepop
pop_x(i,j) = xlimit_min(i)+(xlimit_max(i) - xlimit_min(i))*rand;
pop_v(i,j) = vlimit_min(i)+(vlimit_max(i) - vlimit_min(i))*rand; % 初始种群的速度
end
end
gbest = pop_x; % 每个个体的历史最佳位置
fitness_gbes