✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
个人主页:Matlab科研工作室
个人信条:格物致知。
更多Matlab仿真内容点击
智能优化算法 神经网络预测 雷达通信 无线传感器
信号处理 图像处理 路径规划 元胞自动机 无人机 电力系统
随着现代智能交通系统的发展,准确的交通流量预测,尤其是短时交通流量的预测,对实时交通控制的重要性日益凸显.为了解决交通流量数据强非线性对预测精度的影响,本文基于最小二乘支持向量机研究交通流量预测方法.提出了一种灰狼优化算法优化LSSVM的惩罚因子γ和核函数参数σ,实现对短时交通流的精准预测.实验结果表明,GWO优化LSSVM的泛化性能和鲁棒性优于其他同类方法,可以实现交通流的精准预测.
%___________________________________________________________________%
% Grey Wolf Optimizer (GWO) source codes version 1.0 %
% %
% Developed in MATLAB R2011b(7.13) %
% %
% Author and programmer: Seyedali Mirjalili %
% %
% e-Mail: [email protected] %
% %
% Homepage: http://www.alimirjalili.com %
% %
% Main paper: S. Mirjalili, S. M. Mirjalili, A. Lewis %
% Grey Wolf Optimizer, Advances in Engineering %
% Software , in press, %
% DOI: 10.1016/j.advengsoft.2013.12.007 %
% %
%___________________________________________________________________%
% Grey Wolf Optimizer
function [Alpha_score,Alpha_pos,Convergence_curve]=GWO(SearchAgents_no,Max_iter,lb,ub,dim,fobj)
% initialize alpha, beta, and delta_pos
Alpha_pos=zeros(1,dim);
Alpha_score=inf; %change this to -inf for maximization problems
Beta_pos=zeros(1,dim);
Beta_score=inf; %change this to -inf for maximization problems
Delta_pos=zeros(1,dim);
Delta_score=inf; %change this to -inf for maximization problems
%Initialize the positions of search agents
Positions=initialization(SearchAgents_no,dim,ub,lb);
Convergence_curve=zeros(1,Max_iter);
l=0;% Loop counter
% Main loop
while l for i=1:size(Positions,1) % Return back the search agents that go beyond the boundaries of the search space % Flag4ub=Positions(i,:)>ub; % Flag4lb=Positions(i,:) % Positions(i,:)=(Positions(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; % Calculate objective function for each search agent fitness=fobj(Positions(i,:)); % Update Alpha, Beta, and Delta if fitness Alpha_score=fitness; % Update alpha Alpha_pos=Positions(i,:); end if fitness>Alpha_score && fitness Beta_score=fitness; % Update beta Beta_pos=Positions(i,:); end if fitness>Alpha_score && fitness>Beta_score && fitness Delta_score=fitness; % Update delta Delta_pos=Positions(i,:); end end a=2-l*((2)/Max_iter); % a decreases linearly fron 2 to 0 % Update the Position of search agents including omegas for i=1:size(Positions,1) for j=1:size(Positions,2) r1=rand(); % r1 is a random number in [0,1] r2=rand(); % r2 is a random number in [0,1] A1=2*a*r1-a; % Equation (3.3) C1=2*r2; % Equation (3.4) D_alpha=abs(C1*Alpha_pos(j)-Positions(i,j)); % Equation (3.5)-part 1 X1=Alpha_pos(j)-A1*D_alpha; % Equation (3.6)-part 1 r1=rand(); r2=rand(); A2=2*a*r1-a; % Equation (3.3) C2=2*r2; % Equation (3.4) D_beta=abs(C2*Beta_pos(j)-Positions(i,j)); % Equation (3.5)-part 2 X2=Beta_pos(j)-A2*D_beta; % Equation (3.6)-part 2 r1=rand(); r2=rand(); A3=2*a*r1-a; % Equation (3.3) C3=2*r2; % Equation (3.4) D_delta=abs(C3*Delta_pos(j)-Positions(i,j)); % Equation (3.5)-part 3 X3=Delta_pos(j)-A3*D_delta; % Equation (3.5)-part 3 Positions(i,j)=(X1+X2+X3)/3;% Equation (3.7) % if Positions(i,j)>ub Positions(i,j)=ub; elseif Positions(i,j) Positions(i,j)=lb; end end end l=l+1; Convergence_curve(l)=Alpha_score; end [1]伍韵鸣,孙博文,成荣红,等。基于灰狼算法的LSSVM模型预测凝析气藏露点压力研究[J]. 西安石油大学学报:自然科学版, 2020, 35(2):7. ❤️ 关注我领取海量matlab电子书和数学建模资料 ❤️部分理论引用网络文献,若有侵权联系博主删除
⛄ 运行结果
⛄ 参考文献