- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
模型图论模型
数学建模 第十七讲 图论模型 引例 七桥问题 哥尼斯堡七桥问题 模型构造 点: 陆地 岛屿 边: 桥 一、图的一般理论 一个图G由一个顶点集V和一个边的集E组成。 E中每个元素e是连接顶点集 V中两个顶点u和v的边。 图的图形表示 例 2、矩阵表示 例 (2)关联矩阵(点边) 例 3、连通性 例 二、最短路问题 赋权图G 从点v0到其余结点的通路——权和最小 Dijkstra算法思想 按路径长度递增顺序求最短路径算法 两个集合:S已求得最短路径的结点、V-S未确定? 每一步:将S 与V-S之间最短路经终点加入S 存储 G:带权邻接矩阵 每点标记 (dj, pj):至j点最短路径的长度、前一点 Dijkstra算法流程 赋初值:w, 各点与源点之间:已求S={v0}, 最短长度d=w(v0,:)、前一点p= v0 u= v0 更新d、p: 若d(i)d(u) +w(u,i),则d(i)=d(u) +w(u,i),p(i)=u 寻找v: V-S中使d(i)最小的v: S=S?{v}, u= v 若V-S??,重复2, 否则:结束 Matlab 程序: dijkstra.m [distance,path,pathway]= dijkstra(v0,w) 最短路的长度、前点、路径 源点 带权邻接矩阵 说明: 求v*:V-S中最小距离点 %求路径 OK 例 2、每对顶点之间的最短路——Floyd Floyd 算法思想 带权邻接矩阵——两点之间 插入顶点——缩短距离:构造出个矩阵D(1)、 D(2)、… 、D(n-1) 最后得到距离矩阵——最短路径. 递推公式 Matlab 程序: floyd.m [D,path]=floyd(w) 最短路的长度、后点 带权邻接矩阵 OK 例 求路径 function pathway=road(path,v1,v2) %求路径:floyd的后续指令 pathway=v1;q=v1;k=1; while path(q,v2)~=v2 k=k+1; pathway(k)=path(q,v2); q=path(q,v2); end pathway(k+1)=v2; 说明 著名算法:dijkstra floyd 应用:建模竞赛 98B 灾情巡视路线 07B 公交线路 END 主讲人:孙云龙 数学建模课件 主讲人:孙云龙 数学建模课件 Email:sunyl@swufe.edu.cn 数学实验 与 D A B C 问题: 从某点出发通过每座桥且每桥只通过一次回到起点. A B C D 图论方法已经成为数学模型中的重要方法。许多难题由于归结为图论问题被巧妙地解决。 图论中有许多著名算法。 D A B C 例: 图G=V,E: 点集 V = {v1,v2, ...,vn} 边集 E = {e1,e2, ...,em} 其中 ek=vivj 图G=V,E: 其中 V = {v1,v2,v3,v4,v5} E = {e1,e2,e3 ,e4} e1=v1v2,e2=v2v4,e3=v1v4,e4=v5v2 e1 v1 v2 v3 v4 v5 e2 e3 e4 1、定义 联接 点的位置, 边的长度 × v1 v2 v3 v4 v5 e1 e2 e3 e4 比较: 同构 G1 G2 G3 1 2 3 4 3 4 2 1 3 4 1 2 v1 v2 v3 v4 v5 e2 e3 e4 (1)邻接矩阵(点点) v1 v2 v3 v4 v5 e1 e2 e3 e4 e5 e6 e7 e8 v1 v2 v3 v4 v5 e1 e2 e3 e4 e5 e6 e7 e8 邻 接 长2 通路: 长3 长n-1 连通矩阵 v1 v2 v3 v4 v5 e1 e2 e3 e4 e5 e6 e7 e8 l01.m 1、单源最短路问题——Dijkstra v0 v u d(v) d(u) w(u,v) while kn for i=1:n if distance(i)distance(u)+w(u,i) distance(i)=distance(u)+w(u,i); path(i)=u; end end (求v*:V-S中最小距离点) k=k+1; s(k)=v; u=s(k); end %赋初值 s=v0; %已求得最短路径的结点 distance=w(v0,:); path=v0*ones(1,n); u=s(1); k=1; %s长 dijkstra.m %V-S中距离 d=distance;
文档评论(0)