⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 update_position.m

📁 pso程序
💻 M
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -