• 大小: 3KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-25
  • 语言: Matlab
  • 标签: 粒子群  BPNN  

资源简介

利用粒子群优化BPNN对车位进行预测,预测精度明显提高

资源截图

代码片段和文件信息

%gbest PSO的matlab实现代码如下:
tic   %该函数表示计时开始
%要进行预测的实测数据
%初始格式化
clear all;
clc; 
%给定初始化条件
c1 = 1.4962;             %加速常数即学习因子1 
c2 = 1.4962;             %加速常数即学习因子2 
w = 0.7298;              %惯性权重
MaxDT = 1000;           %最大迭代次数
N = 96;                  %初始化群体个体数目 
eps = 10^(-7);           %设置精度(在已知最小值时候用)
%初始化种群的个体(可以在这里限定位置和速度的范围)
for i = 1:N
    x(i) = 8 * randn;  %产生一个服从正态分布的随机数作为初始化位置
    v(i) = 8 * randn;  %产生一个服从正态分布的随机数作为初始化速度
end 
%先计算各个粒子的适应度,并初始化个体最优位置y和全局最优位置Pg 
for i=1:N
    p = sphere1(x);  %计算适应度,测试函数为sphere
    y(i) = x(i);    %初始化个体最优位置y为在时间步t=0时的粒子位置
end
Pg = x(1);             %Pg为全局最优位置
for i=2:N
    if sphere1(x(i)) < sphere1(Pg)
        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 sphere1(x(i)) < p
            p = sphere1(x(i));%更新适应度
            y(i) = x(i);%更新个体最佳位置
        end
        if p < sphere1(Pg)
             Pg = y(i);%更新群体最佳位置
        end 
    end
     Pbest = sphere1(Pg);%保存每一代的群体最佳位置
end
for i = 1:96
    y(i) = y(i) + 20;
    if y(i) < 0
        y(i) = 1;
    elseif y(i) > 50
        y(i) = 45;
    end
end
C = [40 24 16 22 10 11 2

评论

共有 条评论