12QoS路由问题的粒子群算法MATLAB源代码

上传人:ZJ****1 文档编号:42578711 上传时间:2018-06-02 格式:DOCX 页数:5 大小:23.89KB
返回 下载 相关 举报
12QoS路由问题的粒子群算法MATLAB源代码_第1页
第1页 / 共5页
12QoS路由问题的粒子群算法MATLAB源代码_第2页
第2页 / 共5页
12QoS路由问题的粒子群算法MATLAB源代码_第3页
第3页 / 共5页
12QoS路由问题的粒子群算法MATLAB源代码_第4页
第4页 / 共5页
12QoS路由问题的粒子群算法MATLAB源代码_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《12QoS路由问题的粒子群算法MATLAB源代码》由会员分享,可在线阅读,更多相关《12QoS路由问题的粒子群算法MATLAB源代码(5页珍藏版)》请在金锄头文库上搜索。

1、欢迎访问 GreenSim 团队主页http:/ 邮箱:第 1 页QoS 路由问题的粒子群算法 MATLAB 源代码粒子群算法在离散优化领域的应用比较少见,为了将粒子群算法应用在QoS 路由领域,而又不偏离粒子群算法的基本思想,定义并设计了一种“算子”,并且设计了一种 “随机游动算子”,将基于路径的变异算子引入算法,增强算法的全局搜索能力。% 第一步:产生网络拓扑结构 BorderLength=10; %正方形区域的边长,单位:km NodeAmount=30; %网络节点的个数 Alpha=10; %网络特征参数,Alpha 越大,短边相对长边的比例越大 Beta=5; %网络特征参数,Be

2、ta 越大,边的密度越大 PlotIf=1; %是否画网络拓扑图,如果为 1 则画图,否则不画 FlagIf=0; %是否标注参数,如果为 1 则将标注边的参数,否则不标注 Sxy,AM,Cost,Delay,DelayJitter,PacketLoss=NetCreate(BorderLength,NodeAmount,Alpha,Beta, PlotIf,FlagIf); % 第二步:使用粒子群算法搜索最优路径,存储数据,输出最优结果和收敛曲线 % GreenSim 团队专业级算法设计 %源节点的集合,用向量存储 T=25,27,29; %目的节点的几何,用向量存储 Alpha=1; %适

3、应值计算式中费用的系数 Beta=5e5; %适应值计算式中延时的系数 Gamma=3e6; %适应值计算式中延时抖动的系数 Delta=1000; %适应值计算式中丢包率的系数 QoSD=100e-6; %延时的 QoS 约束 QoSDJ=100e-6; %延时抖动的 QoS 约束 QoSPL=0.02; %丢包率的 QoS 约束 r1=0.1; %单个粒子的历史最优个体对当前粒子的影响系数,0r1=1 r2=0.3; %粒子群的全局最优个体对当前粒子的影响系数,0r2=1 r3=0.2; %粒子随机游动的影响系数,0=r3=1,r3 可以为 0,这时将关闭随 机游动功能 P=10; %粒子

4、的个数 Q=20; %迭代次数 % % m=length(S); n=length(T); AllRoutes=cell(m,n);%各粒子经过的全部路径 AllFitness=cell(m,n);欢迎访问 GreenSim 团队主页http:/ 邮箱:第 2 页HistoryBestRoutes=cell(m,n);%各粒子的历史最优路径 HistoryBestFitness=cell(m,n); AllBestRoutes=cell(m,n);%全局最优路径 AllBestFitness=cell(m,n); for i=1:mfor j=1:ns=S(i);t=T(j);ROUTEst,

5、FitFlag,HR,HFF,AR,AFF=PSOUC(s,t,r1,r2,r3,P,Q,AM,Cost,Delay,DelayJitter,Packet Loss,QoSD,QoSDJ,QoSPL,Alpha,Beta,Gamma,Delta);AllRoutesi,j=ROUTEst;AllFitnessi,j=FitFlag;HistoryBestRoutesi,j=HR;HistoryBestFitnessi,j=HFF;AllBestRoutesi,j=AR;AllBestFitnessi,j=AFF;end end %下面整理最优结果 SYZ=Inf; FinalRoute=;%最

6、终的最优路由 FinalFitness=;%最终的最优路由对应的参数 LearnCurve1=zeros(1,Q);%收敛曲线 LearnCurve2=zeros(1,Q);%收敛曲线 for q=1:QTT=;for i=1:mfor j=1:nABR=HistoryBestRoutesi,j;ABF=HistoryBestFitnessi,j;for p=1:PABRq=ABRp,q;ABFq=ABFp,q;TT=TT,ABFq(1,1);if ABFq(1,1)SYZFinalRoute=ABRq;FinalFitness=ABFq;SYZ=ABFq(1,1);endendendendL

7、earnCurve1(q)=mean(TT);欢迎访问 GreenSim 团队主页http:/ 邮箱:第 3 页LearnCurve2(q)=min(TT); end figure(2) plot(LearnCurve1,bs-) xlabel(迭代次数) ylabel(平均适应值) figure(3) plot(LearnCurve2,bs-) xlabel(迭代次数) ylabel(最优粒子适应值) function ROUTEst,FitFlag,HR,HFF,AR,AFF=PSOUC(s,t,r1,r2,r3,P,Q,AM,Cost,Delay,DelayJitter,Packet L

8、oss,QoSD,QoSDJ,QoSPL,Alpha,Beta,Gamma,Delta) % 使用粒子群算法求源节点 s 到目的节点 t 的满足 QoS 约束的最小费用路径,将这些路 径及其参数记录下来 % GreenSim 团队专业级算法设计 FitFlag=cell(P,Q); HR=cell(P,Q);%各粒子的历史最优路径 HFF=cell(P,Q);%各粒子的历史最优路径对应的参数 AR=cell(1,Q);%全局最优路径 AFF=cell(1,Q);%全局最优路径对应的参数 TRACK=Initialize(AM,s,P); for p=1:PRoute=TRACKp;pos=fi

9、nd(Route=t);Route=Route(1:pos(1);Route=Fresh(Route);ROUTEstp,1=Route;HRp,1=Route;Fitness,Flag=Fit(Route,Cost,Delay,DelayJitter,PacketLoss,QoSD,QoSDJ,QoSPL,Alpha,Beta,Ga mma,Delta);FitFlagp,1=Fitness;Flag;HFFp,1=Fitness;Flag; end SYZ=Inf; for p=1:PRoute=HRp,1;FF=HFFp,1;if FF(1,1)SYZAR1=Route;SYZ=FF(1

10、,1);AFF1=FF;end end % for q=2:Q%按照粒子群迭代公式计算各个粒子的下一个位置for p=1:PRoute=ROUTEstp,q-1;OptRoute1=HRp,q-1;OptRoute2=AR1,q-1;Route=SpecialAdd(Route,OptRoute1,r1,Cost);%向自己的历史最优位置靠近Route=SpecialAdd(Route,OptRoute2,r2,Cost);%向全局历史最优位置靠近Route=RandMove(Route,r3,AM);%随机游动欢迎访问 GreenSim 团队主页http:/ 邮箱:第 5 页Fitness,

11、Flag=Fit(Route,Cost,Delay,DelayJitter,PacketLoss,QoSD,QoSDJ,QoSPL,Alpha,Beta,Ga mma,Delta);ROUTEstp,q=Route;FitFlagp,q=Fitness;Flag;end%更新各粒子的历史最优位置for p=1:PF1=HFFp,q-1;F2=FitFlagp,q;if F2(1,1)F1(1,1)HRp,q=ROUTEstp,q;HFFp,q=FitFlagp,q;elseHRp,q=HRp,q-1;HFFp,q=HFFp,q-1;endend%更新全局历史最优位置for p=1:PRoute=HRp,q;FF=HFFp,q;if FF(1,1)SYZSYZ=FF(1,1);AFFq=FF;elseARq=ARq-1;AFFq=AFFq-1;endend end

展开阅读全文
相关资源
相关搜索

当前位置:首页 > IT计算机/网络 > 其它相关文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号