AOE网

博客来源:http://blog.csdn.net/wang379275614/article/details/13990163

认识AOE网

  有向图中,用顶点表示活动,用有向边表示活动之间开始的先后顺序,则称这种有向图为AOV网络;AOV网络可以反应任务完成的先后顺序(拓扑排序)。

  在AOV网的边上加上权值表示完成该活动所需的时间,则称这样的AOV网为AOE网,如下图: 


  


  图中,顶点表示事件(能被触发,两特征属性:最早发生时间Ve(j);最晚发生时间Vl(j)),边表示活动(能被开始,两特征属性:最早开始时间e(i);最晚开始时间l(i)),权表示活动持续时间,通常用AOE网来估算工程完成的时间


两条原则:

  Ø  只有某顶点所代表的事件发生后,从该顶点出发的各活动才能开始

  Ø  只有进入某顶点的各活动都结束,该顶点所代表的事件才能发生


计算关键路径

  首先,在AOE网中,从始点到终点具有最大路径长度(该路径上的各个活动所持续的时间之和)的路径为关键路径。

计算关键路径,只需求出上面的四个特征属性,然后取e(i)=l(i)的边即为关键路径上的边(关键路径可能不止一条)。

  先来看看四个特征属性的含义:

  Ø Ve(j):是指从始点开始到顶点Vk的最大路径长度


   计算技巧:

   (1)从前向后,取大值:直接前驱结点的Ve(j)+到达边(指向顶点的边)的权值,有多个值的取较大者

   (2)首结点Ve(j)已知,为0


  如上图各顶点(事件)的Ve(j): (从V1开始)


  


  Ø  Vl(j):在不推迟整个工期的前提下,事件vk允许的最晚发生时间


   计算技巧:

   (1)从后向前,取小值:直接后继结点的Vl(j) –发出边(从顶点发出的边)的权值,有多个值的取较小者;

   (2)终结点Vl(j)已知,等于它的Ve(j)


  如上图各顶点(事件)的Vl(j): (从V7开始,它的最早、最晚发生时间相同,都为10):


  


 

  Ø  e(i): 若活动ai由弧<vk,vj>表示,则活动ai的最早开始时间应该等于事件vk的最早发生时间。因而,有:e[i]=ve[k];(即:边(活动)的最早开始时间等于,它的发出顶点的最早发生时间

如上图各边(活动)的e(i):


  


  Ø  l(i): 若活动ai由弧<vk,vj>表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。 因而有:l[i]=vl[j]-len<vk,vj>1(为边(活动)的到达顶点的最晚发生时间减去边的权值

如上图各边(活动)的l(i):


  


  至此已介绍完了四个特征属性的求法,也求出了上图中边的e(i)和l(i),取出e(i)=l(i)的边为a1、a2、a4、a8、a9,即为关键路径上的边,所以关键路径有两条:a1 a4 a9和 a2 a8 a9


  


总结

  求关键路径,只需理解顶点(事件)和边(活动)各自的两个特征属性以及求法即可:

   Ø  先根据首结点的Ve(j)=0由前向后计算各顶点的最早发生时间

   Ø  再根据终结点的Vl(j)等于它的Ve(j)由后向前依次求解各顶点的最晚发生时间

   Ø  根据边的e(i)等于它的发出顶点的Ve(j)计算各边的最早开始时间(最早开始,对应最早发生)

   Ø  根据边的l(i)等于它的到达顶点的Vl(j)减去边的权值计算各边的最晚开始时间(最晚开始,对应最晚发生)

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509531.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构前缀,后缀,中缀表达式

[cpp] view plaincopy [cpp] view plaincopy <span style"color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; line-height: 26px; background-color: rgb(255, 255, 255);">举例&#xff1a;</span> (3 4) 5 - 6 就是中缀表达式 - 3…

priority_queueint,vectorint,greaterint优先队列,按照从小到大

原网址&#xff1a; 优先队列 C优先队列的基本使用方法 在优先队列中&#xff0c;优先级高的元素先出队列。 标准库默认使用元素类型的<操作符来确定它们之间的优先级关系。 优先队列的第一种用法&#xff0c;也是最常用的用法&#xff1a; priority_queue<int>qi;通…

Spark stage如何划分

窄依赖和宽依赖 窄依赖&#xff1a; 指父RDD的每一个分区最多被一个子RDD的分区所用&#xff0c;表现为一个父RDD的分区对应于一个子RDD的分区&#xff0c;和两个父RDD的分区对应于一个子RDD 的分区。图中&#xff0c;map/filter和union属于第一类&#xff0c;对输入进行协同…

引出发射和什么是反射和Class类和Class实例、基本类型的字节码对象

引出发射和什么是反射 问题1: 1.对象有编译类型和运行类型Object obj new java.util.Date();编译类型: Object运行类型: java.util.Date需求:通过obj对象,调用java.util.Date类中的toLocaleString方法.obj.toLocaleString(); 此时编译报错, 编译时,会检查该编译类型中是…

获取类中的构造器

需求:通过反射来获取某一个类的构造器: 1):获取该类的字节码对象. 2):从该字节码对象中去找需要获取的构造器. ------------------------------------------------------------------------ Class类获取构造器方法: Constructor类:表示类中构造器的类型,Constructor的实例…

Maxwell读取MySQL数据

文章目录Maxwell 概述1.1 Maxwell 定义1.2 Maxwell工作原理1.2.1 MySQL主从复制过程1.2.2 Maxwell的工作原理1.2.3 **MySQL** **的** binlog1.3 Maxwell和Canal的对比Maxwell使用2.1 Maxwell安装2.1.1 安装地址2.1.2 安装部署2.1.3 MySQL环境准备2.1.4 初始化Maxwell元数据库2.…

Linux-(C/C++)动态链接库生成以及使用(libxxx.so)

Linux中so文件为共享库&#xff0c;与windows下dll类似&#xff0c;不过实现要简单。 so可以供多个进程使用&#xff0c;不同进程调用同一个so文件&#xff0c;所使用so文件不同。 so文件源程序不需要main函数&#xff0c;有也不会被执行。 下面通过一个简单例子&#xff0c;来…

IO之打印流

打印流,打印数据的,打印流只能是输出流: PrintStream: 字节打印流 PrintWriter: 字符打印流 -对于PrintWriter来说,当启用字段刷新之后, 调用println或者printf或者format方法,便会立马刷新操作. 如果没有开启自动刷新,则需要手动刷新或者当缓冲区满的时候,再自动刷新. 使…

IO之 Properties类加载文件

配置文件:资源文件(以.properties作为拓展名的文件)/属性文件: 做项目开发,为何使用配置文件? 把所有的数据存储在代码中,写死了,”硬编码”. 比如:在Java中需要连接数据库,必须拥有数据的账号和密码. 此时我们就得在Java代码中编写,类似的代码: String username”root”…

IO之数据流

数据流,提供了可以读/写任意数据类型的方法: DataOutputStream: 提供了 writeXxx(xxx value)方法. DataInputStream: 提供了 readXxx()方法. 注意: writeXxx和readXxx必须要对应起来, writeByte写出的数据,此时只能使用readByte读取回来.

可视化的状态机(FSM)

状态机这个概念已经在网上的博客和论坛中都已经说烂了&#xff0c;随便一搜都有一大堆。相关的废话就不多说了&#xff0c;在这里主要是分享一下如何可视化的设计状态机&#xff0c;如何增强项目的灵活性。这里通过一个生活中的电梯来了解一下状态机。 电梯逻辑如下图&#xf…

IO之 随机访问文件(RandomAccessFile)

随机访问文件(RandomAccessFile): 表示可以在该文件的任何位置写出和读取数据. API中文解释&#xff1a; 此类的实例支持对随机访问文件的读取和写入。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引&#xff0c;称为文件指针&…

IO之 管道流

管道流: 实现两个线程之间的数据交互. PipedInputStream PipedOutputStream PipedReder PipedWriter 中文API解释&#xff1a; PipedInputStream public class PipedInputStreamextends InputStream管道输入流应该连接到管道输出流&#xff1b;管道输入流提供要写入管道输出流的…

AOE网上的关键路径

题目描述 一个无环的有向图称为无环图&#xff08;Directed Acyclic Graph&#xff09;&#xff0c;简称DAG图。 AOE(Activity On Edge)网&#xff1a;顾名思义&#xff0c;用边表示活动的网&#xff0c;当然它也是DAG。与AOV不同&#xff0c;活动都表示在了边上&#xff…

IO之NIO

NIO:New IO: 从JDK1.4开始提出的,新的IO,可以把一块磁盘文件映射到内存中,我们再去读取内存中的数据. 存放在java.nio包中. Java NIO&#xff08;New IO&#xff09;是从Java 1.4版本开始引入的一个新的IO API&#xff0c;可以替代标准的Java IO API 现在主要运用于服务器中…

IO流总结

四大基流: InputStream—- OutputStream Reader —- Writer IO流的总结和梳理: 文件流: FileInputStream FileOutputStream FileReader FileWriter 缓冲流: BufferedInputStream BufferedOutputStream BufferedReader BufferedWriter 转换流(把字节转换为字符): …

C++异常处理类与自定义异常处理类

转自&#xff1a;http://blog.csdn.net/makenothing/article/details/43273137 例1&#xff1a;自定义一个继承自excepton的异常类myException C标准中&#xff0c;定义在<stdexcept>中的任何异常类都派生自exception Class&#xff0c;本例也只是简单地由exception继承&…

网络编程概念总结

计算机网路: 计算机网络&#xff0c;是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来&#xff0c;在网络操作系统&#xff0c;网络管理软件及网络通信协议的管理和协调下&#xff0c;实现资源共享和信息传递的计算机系统。 从逻辑…

数据结构实验之图论八:欧拉回路

题目描述 在哥尼斯堡的一个公园里&#xff0c;有七座桥将普雷格尔河中两个岛及岛与河岸连接起来。 能否走过这样的七座桥&#xff0c;并且每桥只走一次&#xff1f;瑞士数学家欧拉最终解决了这个问题并由此创立了拓扑学。欧拉通过对七桥问题的研究&#xff0c;不仅圆满地回答…

socket阻塞与非阻塞,同步与异步

转自&#xff1a;http://blog.csdn.net/hguisu/article/details/7453390 socket阻塞与非阻塞&#xff0c;同步与异步 作者&#xff1a;huangguisu 1. 概念理解 在进行网络编程时&#xff0c;我们常常见到同步(Sync)/异步(Async)&#xff0c;阻塞(Block)/非阻塞(Unblock)四种调…