首页 > 其他分享 >图的应用--拓扑排序

图的应用--拓扑排序

时间:2023-07-12 21:12:07浏览次数:36  
标签:-- 拓扑 AOV 前驱 顶点 排序 网中

图的应用--拓扑排序

有向无环图的应用

image-20230712093955728

AOV网:

AOE网:

image-20230712094252422

什么是拓扑排序

排课表

image-20230712094712387

上面的就是一个AOV网

AOV网的特点

  1. 若从i到j有一条路径,则i是j的前驱;j是i的后继.

  2. 若<i,j>是网中有向边,则i是j的直接前驱;j是i的直接后继.

  3. 在AOV网中不允许有回路,因为如果有回路存在,这表明某项活动以自己为先决条件,显然这是荒谬的.

    image-20230712095404354

如何判断AOV网中是否存在回路?

拓扑排序

image-20230712095640659

拓扑排序的方法

  1. 选一个没有前驱的顶点且输出之.
  2. 从图中删除该顶点和所有以他为尾的弧.
  3. 重复上述两步,直至全部的顶点均已输出;

或者当图不存在无前驱的顶点为止

一个AOV网的拓扑序列是不唯一的

image-20230712100609690

拓扑排序的重要应用

对于有向图构造顶点的拓扑有序序列,若网中所有顶点都在它的拓扑序列中,这该AOV网必定不存在环.

image-20230712100918319

存在环的时候删不掉

image-20230712101227308

标签:--,拓扑,AOV,前驱,顶点,排序,网中
From: https://www.cnblogs.com/harper886/p/17548842.html

相关文章

  • 基于 NNCF 和 Optimum 面向 Intel CPU 对 Stable Diffusion 优化
    基于隐空间的扩散模型(LatentDiffusionModel),是解决文本到图片生成问题上的颠覆者。StableDiffusion是最著名的一例,广泛应用在商业和工业。StableDiffusion的想法简单且有效:从噪声向量开始,多次去噪,以使之在隐空间里逼近图片的表示。但是,这样的方法不可避免地增加了推理......
  • Spring事务属性
            ......
  • Python 环境搭建
    Python环境搭建本章节我们将向大家介绍如何在本地搭建Python开发环境。Python可应用于多平台包括Linux和MacOSX。你可以通过终端窗口输入"python"命令来查看本地是否已经安装Python以及Python的安装版本。Unix(Solaris,Linux,FreeBSD,AIX,HP/UX,SunOS,IRIX,......
  • c语言学习4
    一、数组什么是数组:变量的组合,是一种批量定义相同类型变量的方式定义:类型名数组名[数量];intarr[5];注意:数组的长度一旦确定,无法改变使用:数组名[下标];下标:从0开始,范围:0~数量-1遍历:把数组的数据从头到尾显示或访问一般与for循环配合,把循环变量i当做数组下标初始化:类......
  • CF1456E XOR-ranges
    题面传送门好题。首先比较自然的,相当于按照数位DP的方法,将\([l,r]\)剖成\(k\)段,其中每一段都是最高若干位确定,底下若干位任取的形式。这样在\([l,r]\)里面选择相当于在这\(O(k)\)个区间里面选择。然后假设我们依次选择好了,考虑如何计算答案。答案显然是位独立的,对于......
  • nestjs入门学习 | day1
    nestjs入门学习|day1day1:为什么要用nestjs,和egg区别对比nest项目初始化,了解目录结构nestcli命令了解nest基础知识点学习:控制器、服务、模块为什么要用nestjs,和egg区别对比官网介绍Nest提供了一种开箱即用的应用程序架构,允许开发人员和团队创建高度可测试、可扩展......
  • 关闭 Windows 11 中的智能应用控制、内核隔离和内存隔离,你可以尝试以下步骤
    关闭Windows11中的智能应用控制、内核隔离和内存隔离,你可以尝试以下步骤:智能应用控制:打开“设置”(可以通过键盘快捷键Win+I来打开)。点击“隐私和安全”。在左侧导航栏中选择“智能屏幕时间”。取消勾选“在此设备上使用智能应用控制”。内核隔离和内存隔离:请注意,内......
  • SFINAE学习
    基本的模板运用本节内容来源例1普通模板,做类型判断然后进行分支选择定义一个模板函数,接收类型为int则返回1,否则执行substrtemplate<classT>autofunc(Tt){ifconstexpr(std::is_same<T,int>::value){ returnt+1;}else{ returnt.substr(1);}}int......
  • ch-code.py
     1#!/usr/bin/python 2#coding=utf-8 3 4''' 5Python中默认的编码格式是ASCII格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。 6 7解决方法为只要在文件开头加入#-*-coding:UTF-8-*-或者#coding=utf-8就行了 8 9    ......
  • STM32笔记 晶振 GPIO 寄存器
    晶振:在各种电路中,产生震荡频率的元器件(频率越高,单片机运行的速度越快)。2个外部:通过晶振高速:HSE--4~16MHz(咱们使用8MHz)--整个单片机提供时钟低速:LSE--32.768KHz--RTC提供(实时时钟)2个内部:通过RC振荡电路高速:HSI--8MHz低速:LSI--40KHz--看门狗定时器GPIO:管......