前N条最短路算法matlab源代码.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
前N条最短路算法matlab源代码

前N条最短路可以通过第归地调用最短路算法实现,具体算法可以查找相关文献,下面是一个实例。,附有详细的注释,希望对你有所帮助。 %满足时延约束的前N条最短路算法 %Delay------------当前时延邻接矩阵 %Delta------------延时约束 %Source-----------源节点 %End--------------目的节点 %Routes-----------升序排列的最短路径集,用细胞结构存储 %Len--------------升序排列的各路径长度(时延) function [Routes,Len]=N_floyd(Delay,Delta,Source,End) Len=[];%升序排列的各路径时延 Routes=cell(1,1);%升序排列的最短路径集,用细胞结构存储 Net=cell(1,1);%升序排列的网络拓扑,用延时邻接矩阵表示 Net{1}=Delay;%Delay存储当前网络 %第一次调用floyd算法,得最短路,加入路径集 [D,path]=floyd(Delay); [L,R]=router(D,path,Source,End);%R存储当前路径,L存储当前路径长度 i=1;%当前路径序号 Len(i)=L; Routes{i}=R; while L=Delta%只要当前路径长度不超过约束,就继续搜寻次短路 ??? Sub_len=[];%当前子图的最短路径长度 ??? Sub_routes=cell(1,1);%当前子图的最短路径 ??? Sub_net=cell(1,1);%当前子图的邻接矩阵 ??? %计算当前子图及其最短路径 ??? J=length(R)-1;%存储当前路径的跳数 ??? for j=1:J ??????? Dy=Delay; ??????? Dy(R(j),R(j+1))=inf; ??????? Dy(R(j+1),R(j))=inf; ??????? Sub_net{j}=Dy; ??????? [DD,pp]=floyd(Dy); ??????? [Sub_len(j),Sub_routes{j}]=router(DD,pp,Source,End); ??? end ??? %删除路径长度大于约束的路径以及空路径 ??? S_len=[]; ??? S_routes=cell(1,1); ??? S_net=cell(1,1); ??? ii=1; ??? for j=1:J ??????? RR=Sub_routes(j); ??????? if (Sub_len(j)=Delta)(length(RR)~=0) ??????????? S_net{ii}=Sub_net{j}; ??????????? S_routes{ii}=Sub_routes{j}; ??????????? S_len(ii)=Sub_len(j); ??????????? ii=ii+1; ??????? end ??? end ??? Sub_net=S_net; ??? Sub_routes=S_routes; ??? Sub_len=S_len;?? ??? %将当前子图结构,最短路径,路径长度加入到总路径集中 ??? Net=[Net Sub_net]; ??? Routes=[Routes Sub_routes]; ??? Len=[Len,Sub_len]; ??? %对总路径集进行升序排列 ??? J=length(Len); ??? for j=1:(J-1) ??????? for k=(j+1):J ??????????? if Len(k)Len(j) ??????????????? temp_len=Len(j); ??????????????? temp_routes=Routes{j}; ??????????????? temp_net=Net{j}; ??????????????? Len(j)=Len(k); ??????????????? Len(k)=temp_len; ??????????????? Routes{j}=Routes{k}; ??????????????? Routes{k}=temp_routes; ??????????????? Net{j}=Net{k}; ??????????????? Net{k}=temp_net; ??????????? end ??????? end ??? end ??? %修改当前路径 ??? i=i+1; ??? Delay=Net{i}; ??? R=Routes{i}; ??? if ilength(Len) ??????? L=inf; ??? else ???????

文档评论(0)

feixiang2017 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档