資源簡介
利用粒子群優化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))?????????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?=?sphere1(x(i));%更新適應度
????????????y(i)?=?x(i);%更新個體最佳位置
????????end
????????if?p??????????????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
- 上一篇:matlab ML 仿真程序
- 下一篇:遺傳算法優化小波函數車位預測
評論
共有 條評論