✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
为了智能化解决城市道路交通系统存在的问题,提高短时交通流预测的准确性,采用海洋捕食者算法优化的最小二乘支持向量机(LSSVM)建立短时交通流量预测模型.利用海洋捕食者算法对LSSVM中的惩罚因子和核函数参数进行优化,得到最优预测模型.以车辆行驶平均速度和占有率作为模型输入,交通流量作为输出进行预测仿真试验.试验结果表明:本文采用的优化LSSVM模型进行仿真试验的预测误差有所减小,输出结果更接近真实值.
⛄ 部分代码
%_________________________________________________________________________% Marine Predators Algorithm source code (Developed in MATLAB R2015a)%% programming: Afshin Faramarzi & Seyedali Mirjalili%% paper:% A. Faramarzi, M. Heidarinejad, S. Mirjalili, A.H. Gandomi, % Marine Predators Algorithm: A Nature-inspired Metaheuristic% Expert Systems with Applications% DOI: doi.org/10.1016/j.eswa.2020.113377% % E-mails: afaramar@hawk.iit.edu (Afshin Faramarzi)% muh182@iit.edu (Mohammad Heidarinejad)% ali.mirjalili@laureate.edu.au (Seyedali Mirjalili) % gandomi@uts.edu.au (Amir H Gandomi)%_________________________________________________________________________function [Top_predator_pos,Top_predator_fit,Convergence_curve]=MPA(SearchAgents_no,Max_iter,lb,ub,dim,fobj)Top_predator_pos=zeros(1,dim);Top_predator_fit=inf; Convergence_curve=zeros(1,Max_iter);stepsize=zeros(SearchAgents_no,dim);fitness=inf(SearchAgents_no,1);Prey=initialization(SearchAgents_no,dim,ub,lb); Xmin=repmat(ones(1,dim).*lb,SearchAgents_no,1);Xmax=repmat(ones(1,dim).*ub,SearchAgents_no,1); Iter=0;FADs=0.2;P=0.5;while Iter<Max_iter %------------------- Detecting top predator ----------------- for i=1:size(Prey,1) Flag4ub=Prey(i,:)>ub; Flag4lb=Prey(i,:)<lb; Prey(i,:)=(Prey(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; fitness(i,1)=fobj(Prey(i,:)); if fitness(i,1)<Top_predator_fit Top_predator_fit=fitness(i,1); Top_predator_pos=Prey(i,:); end end %------------------- Marine Memory saving ------------------- if Iter==0 fit_old=fitness; Prey_old=Prey; end Inx=(fit_old<fitness); Indx=repmat(Inx,1,dim); Prey=Indx.*Prey_old+~Indx.*Prey; fitness=Inx.*fit_old+~Inx.*fitness; fit_old=fitness; Prey_old=Prey; %------------------------------------------------------------ Elite=repmat(Top_predator_pos,SearchAgents_no,1); %(Eq. 10) CF=(1-Iter/Max_iter)^(2*Iter/Max_iter); RL=0.05*levy(SearchAgents_no,dim,1.5); %Levy random number vector RB=randn(SearchAgents_no,dim); %Brownian random number vector for i=1:size(Prey,1) for j=1:size(Prey,2) R=rand(); %------------------ Phase 1 (Eq.12) ------------------- if Iter<Max_iter/3 stepsize(i,j)=RB(i,j)*(Elite(i,j)-RB(i,j)*Prey(i,j)); Prey(i,j)=Prey(i,j)+P*R*stepsize(i,j); %--------------- Phase 2 (Eqs. 13 & 14)---------------- elseif Iter>Max_iter/3 && Iter<2*Max_iter/3 if i>size(Prey,1)/2 stepsize(i,j)=RB(i,j)*(RB(i,j)*Elite(i,j)-Prey(i,j)); Prey(i,j)=Elite(i,j)+P*CF*stepsize(i,j); else stepsize(i,j)=RL(i,j)*(Elite(i,j)-RL(i,j)*Prey(i,j)); Prey(i,j)=Prey(i,j)+P*R*stepsize(i,j); end %----------------- Phase 3 (Eq. 15)------------------- else stepsize(i,j)=RL(i,j)*(RL(i,j)*Elite(i,j)-Prey(i,j)); Prey(i,j)=Elite(i,j)+P*CF*stepsize(i,j); end end end %------------------ Detecting top predator ------------------ for i=1:size(Prey,1) Flag4ub=Prey(i,:)>ub; Flag4lb=Prey(i,:)<lb; Prey(i,:)=(Prey(i,:).*(~(Flag4ub+Flag4lb)))+ub.*Flag4ub+lb.*Flag4lb; fitness(i,1)=fobj(Prey(i,:)); if fitness(i,1)<Top_predator_fit Top_predator_fit=fitness(i,1); Top_predator_pos=Prey(i,:); end end %---------------------- Marine Memory saving ---------------- if Iter==0 fit_old=fitness; Prey_old=Prey; end Inx=(fit_old<fitness); Indx=repmat(Inx,1,dim); Prey=Indx.*Prey_old+~Indx.*Prey; fitness=Inx.*fit_old+~Inx.*fitness; fit_old=fitness; Prey_old=Prey; %---------- Eddy formation and FADs? effect (Eq 16) ----------- if rand()<FADs U=rand(SearchAgents_no,dim)<FADs; Prey=Prey+CF*((Xmin+rand(SearchAgents_no,dim).*(Xmax-Xmin)).*U); else r=rand(); Rs=size(Prey,1); stepsize=(FADs*(1-r)+r)*(Prey(randperm(Rs),:)-Prey(randperm(Rs),:)); Prey=Prey+stepsize; end Iter=Iter+1; Convergence_curve(Iter)=Top_predator_fit; end
⛄ 运行结果
⛄ 参考文献
[1] 谷远利, 张源, 芮小平,等. 基于免疫算法优化LSSVM的短时交通流预测[J]. 吉林大学学报:工学版, 2019, 49(6):6.
[2] 张浩怡, 李春祥. 基于萤火虫算法优化LSSVM的台风风速预测[C]// 中国土木工程学会;中国空气动力学会. 中国土木工程学会;中国空气动力学会, 2017.
[3] 张冬梅, 徐卫亚, 赵博. 基于COA-LSSVM模型的边坡位移时序预测[J]. 水电能源科学, 2014, 32(5):5.