数据结构 7.1知识点---最短路径、拓扑排序、关键路径

    技术2022-07-13  88

    最短路径 单源最短路径问题:Dijkstra算法

    求解思路: 设G=(V,E)是一个带权有向图, 把图中顶点集合V分成两组:

    第1组为已求出最短路径的顶点集合(用S表示,初始时S中只有一个源点,以后每求得一条最短路径v,… ,u,就将u加入到集合S中,直到全部顶点都加入到S中,算法就结束了)。 第2组为其余未求出最短路径的顶点集合(用U表示)。

    算法演示

    dist[]集合中每次寻找最小顶点,根据上一次加入的新顶点找出所有通往该顶点的路径。

    拓扑排序

    设G=(V,E)是一个具有n个顶点的有向图,V中顶点序列v1,v2,…,vn称为一个拓扑序列 在一个有向图中找一个拓扑序列的过程称为拓扑排序。

    关键路径

    AOE网 用一个带权有向图(DAG)描述工程的预计进度。 顶点表示事件,有向边表示活动,边e的权c(e)表示完成活动e所需的时间(比如天数)。 图中入度为0的顶点表示工程的开始事件(如开工仪式),出度为0的顶点表示工程结束事件。

    从AOE网中源点到汇点的最长路径,具有最大长度的路径叫关键路径。 关键路径是由关键活动构成的,关键路径可能不唯一。

    最早、最迟开始时间 定义图中任一事件v的最早开始时间(early event)ee(v)等于x、y、z到v所有路径长度的最大值

    事件v的最迟开始时间:定义在不影响整个工程进度的前提下,事件v必须发生的时间称为v的最迟开始时间(late event) ,记作le(v)。le(v)应等于ee(y)与v到汇点的最长路径长度之差

    演示最早开始时间求法

    关键活动的速度改变 理解成维修、建造工程事件。只有不改变网的关键路径的情况下,提高关键活动的速度有效。 网中有多条关键路径,应该提高在多条关键路径上活动的速度。

    Processed: 0.015, SQL: 9