知识点回顾 拓扑排序 关键路径 应用领域、求解步骤、算法实现过程 应用领域 求解步骤

Slides:



Advertisements
Similar presentations
成才之路 · 语文 人教版 · 中国小说欣赏 路漫漫其修远兮 吾将上下而求索.
Advertisements

2011级高考地理复习(第一轮) 第三篇 中国地理 第一章 中国地理概况 第五节 河流和湖泊.
人生格言: 天道酬勤 学院:自动化与电气工程学院 班级: 自师1201 姓名:刘 威.
第五单元 社会生活的变迁 第1课时 衡量变化的尺子 ——— 时间和纪年 新围初中 王济洪.
第七章 图 7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图及其应用
复习:树 树的基本概念和术语 二叉树的概念及性质 二叉树的存储结构 遍历二叉树 线索二叉树 树的应用:哈夫曼树 顺序存储 链式存储 递归算法
岳阳市教学竞赛课件 勾股定理 授课者 赵真金.
講師:聯捷聯合會計師事務所 張志勝會計師(所長)
第1节 光的干涉 (第2课时).
第十课 创新意识与社会进步 1.辩证的否定观:辩证否定、形而上学的否定观
群組未知 水蜜桃每4個裝一盒,爸爸買了5盒,一共買了幾個水蜜桃? 爸爸想把20個水蜜桃平分給他的5個朋友,每個朋友可以得到幾個水蜜桃?
勾股定理 说课人:钱丹.
七 年 级 数 学 第二学期 (苏 科 版) 复习 三角形.
狂賀!妝品系同學美容乙級通過 妝品系三甲 學號 姓名 AB 陳柔諺 AB 陳思妤 AB 張蔡婷安
数据结构 第7章 图.
第六章 图(一).
第七章 图 (Graph)
Ch.7 图 图是一种复杂的非线性结构 应用:AI、工程、数学、生物、计算机 结点间的逻辑关系:任两个结点都可能相关
第9章 图 图的基本概念 图的存储结构 图的实现 图的遍历 最小生成树 最短路径 拓扑排序 关键路径 主要知识点.
第七章 图 7.1 图的基本概念 7.2 图的存储表示 7.3 图的遍历 7.4 图的生成树 7.5 最短路径 7.6 拓扑排序
图(一).
第七章 图 1、图的基本概念 2、图的存储表示 3、图的遍历与连通性 4、最小代价生成树 5、最短路径问题 6、AOV网络和AOE网络.
图的遍历.
Chapter 6 Graphs.
复习.
强连通分量 无向图 1、任意两顶点连通称该图为连通图 2、否则将其中的极大连通子图称为连通分量 A D C B E 有向图
第七章 图.
7.1 抽象数据类型图的定义 7.2 图的存储表示 7.3 图的遍历 7.4 最小生成树 7.5 重(双)连通图和关节点
第七章 图.
知识点回顾 生成树、生成森林 概念、生成过程 最小生成树 概念、 MST 性质 普里姆算法和克鲁斯卡尔算法.
第七章 图 知识点2:图的存储结构.
第七章 图 东南大学计算机学院 方效林 本课件借鉴了清华大学殷人昆老师 和哈尔滨工业大学张岩老师的课件.
第7章 图 本章主题:图的基本概念、图的存储结构和图的常用算法 教学目的: 教学重点:图的各种存储方式及其运算
数据结构 复习课 王彦 博士,副教授
第七章 图.
数据结构 Data Structure CSU 主讲人:王国军,郑瑾 中南大学信息院计科系
第7章 图 7.1 图的定义和术语 7.2 图的存储结构 7.3 图的遍历 7.4 图的连通性问题 7.5 有向无环图的应用
第七章 图.
人教版数学四年级(下) 乘法分配律 单击页面即可演示.
使用矩阵表示 最小生成树算法.
运筹学 图与网络分析 1.
无向树和根树.
数据结构概论 第7章 图 董黎刚 浙江工商大学信电学院 2019年4月8日.
第6章 图 本章中介绍下列主要内容: 图的定义 图的存储结构 图的遍历操作 图的几个典型问题.
§1 图与网络的基本概念 §2 树图与最小生成树 §3 最短路问题 §4 最大流问题 §5 最小费用最大流问题
第八章 图 图的基本概念 图的存储表示 图的遍历与连通性 最小生成树 最短路径 活动网络.
Graphs.
8.1 图的基本概念 8.2 图的存储结构 8.3 图的遍历 8.4 生成树 8.5 最短路径 8.6 拓扑排序 8.7 关键路径
线段的有关计算.
复习 图的定义和术语 图(Graph)、有向图、无向图、子图、有向完全图 、完全图、稀疏图、稠密图、权、网、邻接点、相关边、度、路径、路径长度、回路、简单路径、简单回路、连通、连通图、连通分量、强连通图、强连通分量、生成树 图的存储方法 给定一个图,画出邻接矩阵、邻接表 图的邻接矩阵和邻接表的存储算法.
§1 图与网络的基本概念 §2 树图与最小生成树 §3 最短路问题 §4 最大流问题 §5 最小费用最大流问题
常宝宝 北京大学计算机科学与技术系 数据结构(六) 常宝宝 北京大学计算机科学与技术系
考什么 1.参考系和质点 2.位移、速度和加速度 3.匀变速直线运动公式的应用 4.匀变速直线运动图像的应用 5.匀变速直线运动的实验研究.
第一部分 数字电路 第4章 组合逻辑电路 主讲教师:喻红.
知识点回顾 图的深度优先和广度优先遍历思想 图的深度优先遍历算法(用邻接表作为存储结构) 图的广度优先遍历算法(用邻接矩阵作为存储结构)
树和图 tree and graph 蔡亚星.
线段 射线 直线.
第七、八次实验要求.
樂理教學                 茄苳國小蔡逸凡老師.
第六章 图 本章的主要内容是: 图的逻辑结构 图的存储结构及实现 图的连通性 最小生成树 最短路径 AOV网与拓扑排序 AOE网与关键路径.
分配律 ~ 觀念 15 × 15 × + 15 × 乘法公式 蘇德宙 老師 台灣數位學習科技股份有限公司
动态规划 Floyd最短路径算法 高文宇
7.2 正弦公式 附加例題 1 附加例題 2.
美丽的旋转.
第七章 图 £7.1 图的定义和术语 £7.2 图的存储结构 £7.3 图的遍历 £7.4 图的连通性问题 £7.5 有向无环图及其应用
4.2 图的存储结构(cont.) v1 v2 v3 v4 v5 vertex= v1 v2 v3 v4 v5 v
数据结构 第六章 图.
1、图的基本概念 2、图的存储结构 3、图的遍历与连通性
最小生成树 最优二叉树.
3.3.2 两点间的距离 山东省临沂第一中学.
Presentation transcript:

知识点回顾 拓扑排序 关键路径 应用领域、求解步骤、算法实现过程 应用领域 求解步骤 求Ve(i)、求Vl(j)、求e(i)、求l(i)、计算l(i)-e(i)

第六章 图 6.1 图的定义和术语 6.2 图的存储结构 6.3 图的遍历 6.4 图的连通性问题 6.5 有向无环图及其应用 6.6 最短路径

6.6最短路径 典型用途:求图的最短路径问题用途很广,例如:交通网络中常常提出这样的问题:从甲地到乙地之间是否有公路连通?在有多条通路的情况下,哪一条路最短? 交通网络可用带权有向图来表示。顶点表示城市名称,边表示两个城市有路连通,边上权值可表示两城市之间的距离、交通费或途中所花费的时间等。如何能够使一个城市到另一个城市的运输时间最短或运费最省?这就是一个求两座城市间的最短路径问题。 问题抽象:在带权有向图中A点(源点)到达B点(终点)的多条路径中,寻找一条各边权值之和最小的路径,即最短路径 (注:最短路径与最小生成树不同,路径上不一定包含n个顶点)

实例: v1 v2 v5 v3 v6 v4 v7 9 15 12 6 4 2 3 8 5 11 16 从v1到v7共有5条路径: 8 30 13 7 17 32 9 13 长度 最短路径 <V0,V1> <V0,V2> <V0,V2,V3> <V0,V2,V3,V4> <V0,V2,V3,V4,V5> <V0,V1,V6> 8 19 21 20

一、单源最短路径—用Dijkstra(迪杰斯特拉)算法 两种常见的最短路径问题: 一、单源最短路径—用Dijkstra(迪杰斯特拉)算法 二、所有顶点间的最短路径—用Floyd(弗洛伊德)算法 一顶点到其余各顶点 任意两顶点之间

6.6.1单源点最短路径 单源点最短路径是指:给定一个出发点(单源点)和一个有向网G=(V,E),求出源点到其它各顶点之间的最短路径。 迪杰斯特拉(Dijkstra)在做了大量观察后,首先提出了按路径长度递增序产生各顶点的最短路径算法,我们称之为迪杰斯特拉算法。

迪杰斯特拉(Dijkstra)算法思想 按路径长度递增次序产生最短路径算法: 把V分成两组: (1)S:已求出最短路径的顶点的集合 (2)V-S=T:尚未确定最短路径的顶点集合 将T中顶点按最短路径递增的次序加入到S中, 保证:(1)从源点V0到S中各顶点的最短路径长度都不大于 从V0到T中任何顶点的最短路径长度 (2)每个顶点对应一个距离值 S中顶点:从V0到此顶点的最短路径长度 T中顶点:从V0到此顶点的只包括S中顶点作中间 顶点的最短路径长度 依据:可以证明V0到T中顶点Vk的最短路径,或是从V0到Vk的直接路径的权值;或是从V0经S中顶点到Vk的路径权值之和 (反证法可证)

求最短路径步骤 初使时令 S={V0},T={其余顶点},T中顶点对应的距离值 若存在<V0,Vi>,为<V0,Vi>弧上的权值 若不存在<V0,Vi>,为 从T中选取一个其距离值为最小的顶点W,加入S 对T中顶点的距离值进行修改:若加进W作中间顶点,从V0到Vi的距离值比不加W的路径要短,则修改此距离值 重复上述步骤,直到S中包含所有顶点,即S=V为止

5 1 6 4 3 2 8 30 13 7 17 32 9 终点 从V0到各终点的最短路径及其长度 V1 V2 V3 V4 V5 V6 Vj 13 <V0,V1> 8 <V0,V2>  30 <V0,V4> 32 <V0,V6> V2:8 13 <V0,V1> ------- <V0,V2,V3> 30 <V0,V4>  32 <V0,V6> V1:13 ------- 13 <V0,V2,V3> 30 <V0,V4> 22 <V0,V1,V5> 20 <V0,V1,V6> V3:13 ------- 19 <V0,V2,V3,V4> 22 <V0,V1,V5> 20 <V0,V1,V6> V4:19 -------- 21 <V0,V2,V3,V4,V5> 20 <V0,V1,V6> V6:20 <V0, V1,V6>

算法实现 图用带权邻接矩阵存储ad[][] 数组dist[]存放当前找到的从源点V0到每个终点的最短路径长度,其初态为图中直接路径权值 数组pre[]表示从V0到各终点的最短路径上,此顶点的前一顶点的序号;若从V0到某终点无路径,则用0作为其前一顶点的序号

1 1 1 1 1 1 算法分析:T(n)=O(n²) 算法描述 dist 1 2 3 4 5 6 7 0 13 8  30  32 1 2 3 4 5 6 7 0 13 8  30  32 pre 0 1 1 0 1 0 1 (1) k=1 1 6 2 7 5 4 3 1 8 30 13 17 32 9 1 1 1 1 1 长度 最短路径 13 19 22 21 20 <V1,V2> 13 <V1,V3> 8 3 4 5 2 2 <V1,V3,V4> 13 <V1,V3,V4,V5> 19 <V1,V3,V4,V5,V6> 21 <V1,V2,V7> 20 算法分析:T(n)=O(n²)

每一对顶点之间的最短路径 方法一:每次以一个顶点为源点,重复执行Dijkstra算法n次—— T(n)=O(n³) 方法二:弗洛伊德(Floyd)算法 算法思想:逐个顶点试探法 求最短路径步骤 初始时设置一个n阶方阵,令其对角线元素为0,若存在弧<Vi,Vj>,则对应元素为权值;否则为 逐步试着在原直接路径中增加中间顶点,若加入中间点后路径变短,则修改之;否则,维持原值 所有顶点试探完毕,算法结束

例 A C B 2 6 4 3 11 0 4 11 6 0 2 3  0 初始: 路径: AB AC BA BC CA 0 4 11 6 0 2 3 7 0 加入A: 路径: AB AC BA BC CA CAB 0 4 6 6 0 2 3 7 0 加入B: 路径: AB ABC BA BC CA CAB 0 4 6 5 0 2 3 7 0 加入C: 路径: AB ABC BCA BC CA CAB

算法实现 算法描述 图用邻接矩阵存储 length[][]存放最短路径长度 path[i][j]是从Vi到Vj的最短路径上Vj前一顶点序号 初始: 0 4 11 6 0 2 3  0 length= 0 1 1 2 0 2 3 0 0 path= 例 1 3 2 6 4 11 加入V1: 0 4 11 6 0 2 3 7 0 length= 0 1 1 2 0 2 3 1 0 path= 加入V2: 0 4 6 6 0 2 3 7 0 length= 0 1 2 2 0 2 3 1 0 path= 加入V3: 0 4 6 5 0 2 3 7 0 length= 0 1 2 3 0 2 3 1 0 path= 算法分析:T(n)=O(n³)

第七章 小结 图 Dijkstra算法 最短路径 Floyd算法 拓扑排序 邻接矩阵 有向图的应用 DAG图 关键路径 邻 接 表 存储结构 第七章 小结 Dijkstra算法 最短路径 Floyd算法 拓扑排序 邻接矩阵 有向图的应用 DAG图 关键路径 邻 接 表 存储结构 十字链表 邻接多重表 图 应用 深度优先搜索 遍 历 广度优先搜索 图的连通分量 (利用DFS) 无向图的应用 Prim算法 图的生成树 最小生成树 Kruskal算法

有向图如下图,求V0到其它各顶点的最短路径。 作业: 有向图如下图,求V0到其它各顶点的最短路径。 0 1 2 3 4 5 100 10 50 30 60 20