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

📄 iteratesapso.m

📁 介绍了粒子群模拟退火算法在函数优化中的应用
💻 M
字号:
%粒子的更新
function [pop,V,gbest,zbest,fitnessgbest,fitnesszbest,b] = iterateSAPSO(pop,V,gbest,zbest,fitnessgbest,fitnesszbest,w,c1,c2,temperature,n,m,b);
Vmax = 6;
Vmin = -6;
for j = 1:n
    V(j,:) = w*V(j,:) + c1*rand*(gbest(j,:) - pop(j,:)) + c2*rand*(zbest - pop(j,:));
    for k = 1:m
        if V(j,k) > Vmax
            V(j,k) = Vmax;
        end 
        if V(j,k) < Vmin
            V(j,k) = Vmin;
        end 
    end
    pop(j,:) = pop(j,:) + V(j,:);
    for k = 1:m
        if pop(j,k) > 10
            pop(j,k) = 10;
        end
        if pop(j,k) < -10
            pop(j,k) = -10;
        end
    end
    fitnessnew = caculate(pop,n,m);
    %判断是否接受 
    for j = 1:n
        if fitnessnew(j)<=fitnessgbest(j)
            gbest(j,:) = pop(j,:);
            fitnessgbest(j) = fitnessnew(j);
        else
            kkk = exp(-(fitnessnew(j) - fitnessgbest(j))/temperature);
            if kkk>rand
                b = b + 1;
                gbest(j,:) = pop(j,:);
                fitnessgbest(j) = fitnessnew(j);
            end
        end
        if fitnessnew(j)<=fitnesszbest
            zbest = pop(j,:);
            fitnesszbest = fitnessnew(j);
        else
            kkk = exp(-(fitnessnew(j) - fitnesszbest)/temperature);
            if kkk>rand
                b = b + 1;
                zbest = pop(j,:);
                fitnesszbest = fitnessnew(j);
            end
         end   
    end
end 
        
        

⌨️ 快捷键说明

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