• 大小: 1KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-03-07
  • 语言: Matlab
  • 标签: 罚函数  sp  粒子群  

资源简介

一种简单的带罚函数的粒子群算法 容易修改并且非常简单适合初学者

资源截图

代码片段和文件信息

function sp()
clc;
clear all;
D=3;
s=[];
s1=[];
s2=[];
N=60;
c1=2.00;
c2=2.00;
w=0.5;
M=500;
global r1 r2;
r1=10;
r2=150;
%------初始化种群的个体------------
for i=1:N

    for j=1:D

        x(ij)=randn;  %随机初始化位置

        v(ij)=randn;  %随机初始化速度

    end

end

%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------
for i=1:N
    p(i)=se(x(i:));
    y(i:)=x(i:);
end

pg = x(N:);             %Pg为全局最优

for i=1:(N-1)

    if se(x(i:))
        pg=x(i:);

    end

end

%------进入主要循环,按照公式依次迭代------------

for t=1:M

    for i=1:N
        v(i:)=w*v(i:)+c1*rand*(y(i:)-x(i:))+c2*rand*(pg-x(i:));

        x(i:)=x(i:)+v(i:);

        if se(x(i:))
            p(i)=se(x(i:));

            y(i:)=x(i:);

        end

    

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1334  2014-07-08 18:49  sp.m

评论

共有 条评论