nsizew 1skuk代表父顶点建模dijkstra算法.pdfVIP

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

function[lz]=dijkstra(k,w)

n=size(w,1);s=[k];u=k;%u代表的父顶点

l=w(k,:);z=u*ones(1,n);

sbu=1:n;sbu(k)=[];%代表v\s的点,既v在s的补集,记做s补

j=1;

whilejn;%j是s的向量个数,s中的顶点个数总顶点个数,循环继续

lbu=[];%用来记录v\s中顶点的权,先令为空矩阵

lv=[];%用来记录v\s中顶点,先令为空矩阵

m=size(sbu,2);%度量v\s的顶点个数

fori=1:m

ifl(sbu(i))l(u)+w(u,sbu(i));%sub(i)顶点值(是哪一个顶点)

l(sbu(i))=l(u)+w(u,sbu(i));

z(sbu(i))=u;%sub(i)的父顶点改为u

end

lbu=[lbu,l(sbu(i))];%用来记录v\s中顶点的权

lv=[lv,sbu(i)];%用来记录v\s中顶点

end

[qp]=min(lbu);%度量v\s中最小顶点的权(q)和位置(p)

u=lv(p);%改变该位置顶点的父顶点

s=[s,lv(p)];%向s中添加上个步骤中计算的父顶点

e=find(sbulv(p));%找到v\s中父顶点的位置

sbu(e)=[];%把那个父顶点从sbu中删除

j=size(s,2);%记录s中顶点的个数

end

命令窗口:

w=[050inf402510;5001520inf25;inf1501020inf;40201001025;25inf20100

55;1025inf25550]

dijkstra(1,w)

function[l,z]=dijkstra(a,w)

n=size(w,1);

%赋初值

s=[];

s(1)=a;

u=a;%初始顶点的序号和当前顶点的序号

l=w(a,:);

z=u*ones(1,n);%初始顶点路径的权,初始路径上各顶点的父亲点

k=1;

whilekn%当剩余顶点集非空时,继续

ltmp=[];

lv=[];

fori=1:n

ins=find(s==i);%查找顶点是否在s中

ifisempty(ins)%若不在s中,则更新l(v),z(v),并另存于ltmp和lv中

ifl(i)l(u)+w(u,i)

l(i)=l(u)+w(u,i);

z(i)=u;

end

ltmp=[ltmp,l(i)];%将v/s的顶点的当前权值和顶点序号

lv=[lv,i];

end

end

[lp,li]=min(ltmp);%找v*,使得l(v*)为剩余顶点集中的最小值,并令s=s+[v*]

s(k+1)=w(li);

k=k+1;

u=s(k);%为下一轮循环做准备,即u

文档评论(0)

183****7931 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档