update_position.m

来自「pso程序」· M 代码 · 共 52 行

M
52
字号
function update_positionglobal swarm_size;      % 种群规模global swarm;           % 种群,三维数组global w;               % 速度惯性系数,为0—1的随机数global c1;              % 个体最优导向系数global c2;              % 全局最优导向系数global x_min;           % x的下限global x_max;           % x的上限global y_min;           % y的下限global y_max;           % y的上限global gen;             % 迭代次数global exetime;         % 当前迭代次数global max_velocity;    % 最大速度global best_in_history; % 最优解变化轨迹global index_gbest;     % 全局最优解的粒子的序号global dimension;       % 空间的维数global points_size;     % points_size--行数,即点数global x;               % 初始点的x坐标数组global y;               % 初始点的y坐标数组% 更新粒子的位置for i = 1 : swarm_size    for j = 1:dimension        swarm(i, 1, j) = swarm(i, 1, j) + swarm(i, 2, j);         %         % 限制粒子的运动范围%         if abs(swarm(i, 1, j)) > 2%             if swarm(i, 1, j) > 0%                 swarm(i, 1, j) = 2;%             else%                 swarm(i, 1, j) = -2;%             end%         end            end              for j = 1:dimension        a(j) = swarm(i, 1, j);    end    val = adapt_fuction(a);                                                 % 适应度函数    if val < swarm(i, 4, 1)                                                 % 找到了具有更大适值的位置        for j = 1:dimension            swarm(i, 3, j) = swarm(i, 1, j);                                % 更新最好的位置的x        end        swarm(i, 4, 1) = val;                                               % 更新最好的位置的适应值    endend[best_in_history(exetime), index_gbest] = min(swarm(:, 4, 1));              % 全局最优位置

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?