• 【algo&ds】9.拓扑排序、AOV&AOE、关键路径问题


    对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序

    使用场景

    Snipaste_2019-11-24_16-21-36

    topo

    可以参考视频

    伪码描述

    void TopSort() {
    	for ( 图中每个顶点V )
    		if ( Indegree[V]==0 )
    			Enqueue( V, Q );
    	while ( !IsEmpty(Q) ) {
    		V = Dequeue( Q );
    		输出V,或者记录V的输出序号;
    		cnt++;
    		for ( V 的每个邻接点W )
    			if ( ––Indegree[W]==0 )
    				Enqueue( W, Q );
    	}
    	if ( cnt != |V| )
    		Error( “图中有回路” );
    }
    

    AOV和AOE

    • AOV(Activity On Vertex),用顶点表示活动,而用边集表示活动间优先关系的有向图,常用于拓扑排序计算,途中不应该出现有向环。
    • AOE(Activity On Edge),用带权的边集表示活动,用顶点表示事件,其中边权表示完成活动所需要的时间,事件仅代表一个中间状态。

    关键路径问题

    Snipaste_2019-11-24_16-50-13

    Snipaste_2019-11-24_16-53-58

    注意理解图中虚线的含义!!!

    可以参考视频

  • 相关阅读:
    爬虫练习
    爬取豆瓣电影top250
    简单爬虫
    正则提取子域名和ip
    用户体验培训总结
    测试经验总结
    项目管理知识总结
    读书笔记——《留住好员工:爱他们,还是失去他们?》
    ISTQB学习笔记
    数据结构和算法with Python
  • 原文地址:https://www.cnblogs.com/ericling/p/11923161.html
Copyright © 2020-2023  润新知