Lecture 20

本文介绍了图论中的拓扑排序概念及其在工程问题中的应用。拓扑排序是一种解决工程依赖关系的算法,确保工程按正确顺序完成。文章详细阐述了拓扑排序的动机、关键引理、实现以及如何找到关键路径。拓扑排序可以使用队列或栈作为数据结构,其时间复杂度为O(|V|+|E|)。同时,拓扑排序还可用于计算工程的critical path,即最小代价完成所有工程的路径。
摘要由CSDN通过智能技术生成

绪论

我们前面介绍了图的遍历和最小生成树,这一章节介绍图中的另一个重要知识点——拓扑排序。有关拓扑排序,我们不应该仅限于了解拓扑排序的算法,还应该了解拓扑排序的背景(为了解决什么样的问题),拓扑排序有关的数学(图论)知识,算法的运行过程,算法的运行时,拓扑排序另外的应用。

第十八章应该是贪心算法,但我个人认为应该先把图上的知识点先介绍完全,所以将顺序调换了一下。


Motivation

拓扑排序起源于现实中的工程(活动)问题:假设存在若干个工程(活动)希望完成,但是某些工程需要在另外一些工程完成的基础上才能开始进行,工程之间的这种关系我们称为依赖关系(dependency)。

一个工程对另一个工程的依赖构成偏序关系,偏序关系可以看作结点到结点的有向边,于是上述的工程问题可以构成一个有向图。两个结点至多只需要存在一条边,并且对于若干个能够全部完全的工程,不应该存在对于两个工程互相依赖的情况,转化有向图中即不同时存在结点A到结点B和结点B到结点A的路径,即不存在环。

综上,能够全部完成的工程问题构成有向无环图(DAG)。

在这里插入图片描述

良好的工程问题形成的DAG如下:

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值