图论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文档。上传文档
查看更多
图论matlab程序

第一讲:图论模型 程序一:可达矩阵算法 function P dgraf A n size A,1 ; P A; for i 2:n P P+A^i; end P P~ 0 1; P; 程序二:关联矩阵和邻接矩阵互换算法 function W incandadf F,f if f 0 m sum sum F /2; n size F,1 ; W zeros n,m ; k 1; for i 1:n for j i:n if F i,j ~ 0 W i,k 1; W j,k 1; k k+1; end end end elseif f 1 m size F,2 ; n size F,1 ; W zeros n,n ; for i 1:m a find F :,i ~ 0 ; W a 1 ,a 2 1; W a 2 ,a 1 1; end else fprint Please imput the right value of f ; end W; 程序三:有向图关联矩阵和邻接矩阵互换算法 function W mattransf F,f if f 0 m sum sum F ; n size F,1 ; W zeros n,m ; k 1; for i 1:n for j i:n if F i,j ~ 0 W i,k 1; W j,k -1; k k+1; end end end elseif f 1 m size F,2 ; n size F,1 ; W zeros n,n ; for i 1:m a find F :,i ~ 0 ; if F a 1 ,i 1 W a 1 ,a 2 1; else W a 2 ,a 1 1; end end else fprint Please imput the right value of f ; end W; 第二讲:最短路问题 程序一:Dijkstra算法(计算两点间的最短路) function [l,z] Dijkstra W n size W,1 ; for i 1 :n l i W 1,i ; z i 0; end i 1; while i n for j 1 :n if l i l j +W j,i l i l j +W j,i ; z i j-1; if j i i j-1; end end end i i+1; end 程序二:floyd算法(计算任意两点间的最短距离) function [d,r] floyd a n size a,1 ; d a; for i 1:n for j 1:n r i,j j; end end r; for k 1:n for i 1:n for j 1:n if d i,k +d k,j d i,j d i,j d i,k +d k,j ; r i,j r i,k ; end end end end 程序三:n2short.m 计算指定两点间的最短距离 function [P u] n2short W,k1,k2 n length W ; U W; m 1; while m n for i 1:n for j 1:n if U i,j U i,m +U m,j U i,j U i,m +U m,j ; end end end m m+1; end u U k1,k2 ; P1 zeros 1,n ; k 1; P1 k k2; V ones 1,n *inf; kk k2; while kk~ k1 for i 1:n V 1,i U k1,kk -W i,kk ; if V 1,i U k1,i P1 k+1 i; kk i; k k+1; end end end k 1; wrow find P1~ 0 ; for j length wrow :-1:1 P k P1 wrow j ; k k+1; end P; 程序四、n1short.m 计算某点到其它所有点的最短距离 function[Pm D] n1short W,k n size W,1 ; D zeros 1,n ; for i 1:n [P d] n2short W,k,i ; Pm i P; D i d; end 程序五:pass2short.m 计算经过某两点的最短距离 function [P d] pass2short W,k1,k2,t1,t2 [p1 d1] n2short W,k1,t1 ; [p2 d2] n2short W,t1,t2 ; [p3 d3] n2short W,t2,k2 ; dt1 d1+d2+d3; [p4 d4] n

文档评论(0)

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

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

1亿VIP精品文档

相关文档