PSO粒子群仿真源码程序 - matlab模式识别 - 谷速源码
下载频道> 资源分类> matlab源码> 模式识别> PSO粒子群仿真源码程序

标题:PSO粒子群仿真源码程序
分享到:

所属分类: 模式识别 资源类型: 文件大小: 1.37 KB 上传时间: 2016-01-30 12:55:24 下载次数: 15 资源积分:1分 提 供 者: 源码共享 PSO粒子群仿真源码程序
内容:
PSO粒子群仿真源码程序,程序员在编程的过程中可以参考学习使用,希望对IT程序员有用,此源码程序简单易懂、方便阅读,有很好的学习价值!
%------给定初始化条件----------------------------------------------
clc;
clear;
close all;
 
c1=1.4962;             %学习因子1
 
c2=1.4962;             %学习因子2
 
w=0.7298;              %惯性权重
 
MaxDT=100;            %最大迭代次数
 
D=30;                  %搜索空间维数(未知数个数)
 
N=50;                  %初始化群体个体数目
 
eps=10^(-6);           %设置精度(在已知最小值时候用)
 
%------初始化种群的个体(可以在这里限定位置和速度的范围)------------
 
for i=1:N
 
    for j=1:D
 
        x(i,j)=randn;  %随机初始化位置
 
        v(i,j)=randn;  %随机初始化速度
 
    end
 
end
 
%------先计算各个粒子的适应度,并初始化Pi和Pg----------------------
 
for i=1:N
 
    p(i)=fitness(x(i,:),D);
 
    y(i,:)=x(i,:);
 
end
 
pg=x(1,:);             %Pg为全局最优
 
for i=2:N
 
    if fitness(x(i,:),D)<fitness(pg,D)
 
        pg=x(i,:);
 
    end
 
end
 
%------进入主要循环,按照公式依次迭代,直到满足精度要求------------
 
for t=1:MaxDT
 
    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 fitness(x(i,:),D)<p(i)
 
            p(i)=fitness(x(i,:),D);
 
            y(i,:)=x(i,:);
 
        end
 
        if p(i)<fitness(pg,D)
 
            pg=y(i,:);
 
        end
 
    end
 
    Pbest(t)=fitness(pg,D);
 
end
 
plot(Pbest);

文件列表(点击上边下载按钮,如果是垃圾文件请在下面评价差评或者投诉):

PSO粒子群仿真源码程序/
PSO粒子群仿真源码程序/code/
PSO粒子群仿真源码程序/code/fitness.m
PSO粒子群仿真源码程序/code/main.m

关键词: 粒子 源码 程序

matlab源码下载排行

Top_arrow
回到顶部
联系方式| 版权声明| 招聘信息| 广告服务| 银行汇款| 法律顾问| 兼职技术| 付款方式| 关于我们|
网站客服网站客服 程序员兼职招聘 程序员兼职招聘
沪ICP备19040327号-3
公安备案号:沪公网安备 31011802003874号
库纳格流体控制系统(上海)有限公司 版权所有
Copyright © 1999-2014, GUSUCODE.COM, All Rights Reserved