数学实验路径算法详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数学实验 第十四章 最短路径及算法 云南大学信息学院通信工程系 宗容 第十四章 最短路径及算法 §14.1 问题的提出 最短运输路线问题 最廉价航费表的制定 数据的最可靠传输线路问题 §14.2 最短路径问题和算法的类型 §14.3 一点到其余各点的最短路路径算法 —Dijkstra算法 §14.4 任意两点之间的最短路路径算法 — Floyd算法 §14.5 可化为最短路径问题的多阶段决策问题 §14.6 实验 实验目的 [1]掌握求最短路径的Dijkstra算法 [2]了解Floyd算法的由图形直觉思维转化为矩阵操作的算法思想 [3]进一岁熟悉用Matlab语言编写非数值计算问题的编程技巧,学会用多重循环和选择结构来实现较复杂的穷举 [4]学会如何建立实际问题的图论模型,希望能举一反三 §14.1 问题的提出 1、从甲地到乙地的公路网纵横交错,如图14.1所示。一名货柜车司机奉命在最短的时间内将一车货物从甲地运往乙地,因而有多种行车路线,这名司机应怎样选择线路。假设货柜车的运行速度是恒定的,则这一问题相当于需要找到一条从甲地到乙地的最短路径。 §14.1 问题的提出 2:最短运输路线问题 如图所示的交通网络,每条弧上的数字代表车辆在该路段行驶所需的时间,有向边表示单行道,无向边表示可双向行驶。若有一批货物要从1号顶点运往11号顶点,问运货车应沿哪条线路行驶,才能最快地到达目的地? 3、求出从顶点V1出发,到达其余各顶点的最短路径。 4:最廉价航费表的制定 某公司在六个城市c1,c2,c3,c4,c5,c6都有分公司,公司成员经常往来于它们之间,已知从ci到cj的直达航班票价由下述矩阵的第i行、第j列元素给出(∞表示无直达航班),该公司想算出一张任意两个城市之间的最廉价路线表。 5:数据的最可靠传输线路问题 设有十分重要的数据需要在一个通讯网的两个节点间传输,假设每条通讯链路(边)完好且不出现错码(即正常运行)的概率已知,各链路运行是相互独立的,应沿哪条线路传输才能使该信息到达目的地的可靠性最高? 线路的可靠性为其上所有链路都正常运行的概率。这时,可定义边上的权为该边正常运行的概率,路径的权定义为该路径所包含的全体边的概率之积,即该路径的可靠性,两点间的最大权路径即为所求。 最短路径算法 图论问题的求解是“非数值性问题” ,涉及到的数据结构更为复杂,数据元素之间的相互关系一般无法用数学方程式来描述。 解决此类问题的关键已不再是分析数学和计算方法,而是能设计出合适的数据结构。 数据——信息的载体,能够被计算机识别、存储和加工处理; 数据元素之间的相互关系称为结构,带有结构的数据元素的结合称为数据结构。 此时,程序的主要工作是进行判断、比较,而不是进行算术运算。 §14.2 最短路径问题和算法的类型 普通长度(ordinary path length):路径长度定义为该路径所包含的全体边的长度之和。 对于任意给定的两点u,v,在它们之间可能存在多条路径。 普通型最短路径问题(ordinary shortest-path problem):求从u到v的路径中普通长度最短的路径。该路径称为从u到v的最短路径(shortest—path) 最短路径问题的分类 §14.3 Dijkstra算法 Dijkstra算法——从一固定起点v0到其余各点的最短路径的最有效算法。它是一种迭代算法。 要求:加权图中无负权 出发点: [1]最短路径上的任何子段仍是最短路径, [2]距v0远的顶点的最短路径必经过距v0近的顶点. 因此可按与v0的距离由近及远地逐个求出各顶点的最短路径和长度。 Dijkstra算法思路 集合S——存放已求出其最短路径长度的顶点 1)S←{v0}; 2)求出S’=V-S中与v0距离最近的顶点u,将u加入到S中; 3)重复2)直到S’=Ф 求下图中顶点1到其他各点的 最短路径 计算机如何才能实现? 找出S’中离顶点1最近的顶点用手工操作较容易,计算机如何才能实现呢? 为直观,想像把集合S中的顶点涂成红色,S’中的顶点为白色.如何在白点集S’中找出最短路径长度最小的顶点u,加入到红点集S呢? 对于图中每个顶点v,引入一个标记L(p)来记录从v0到v的,且中间只经过红点,不经过白点的路径中的最短路径长度 (当从v0出发,经过红点集S中的顶点不能到达v时,L(v)取∞)。 想? 1)当v S时,L(v)是v0到v的最短路径长度; 2)当v S’时,L(v)不小于v0到v的最短路径长度; 3)若L(u)=min{ L(v)},(v S’);则u是S’中距离v0最近的顶点,且L(u) 是u的最短路径长度。 上述结论成立吗?为什么? 最初L(v0)=0,v≠v0,

文档评论(0)

创业文库 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档