zoukankan      html  css  js  c++  java
  • AOE网络的关键路径问题

    关于AOE网络的基本概念可以参考《数据结构》或者search一下就能找到,这里不做赘述。

    寻找AOE网络的关键路径目的是:发现该活动网络中能够缩短工程时长的活动,缩短这些活动的时长,就可以缩短整个工程的时长。因此,寻找关键路径就是寻找关键活动。

    接下来开始寻找一个工程中的关键路径(关键活动)。

    寻找关键路径,每本教材都会提及四个特征属性:Ve[],Vl[],e[],l[],此处可能还补充一个属性:活动ai的时间余量,也就是l[i]-e[i],当某个活动的时间余量=0时,该活动就是关键活动。所以,寻找关键路径(关键活动)也就是求解AOE网络中所有活动、事件的上述特征属性,然后发现时间余量为零的活动,这样的活动就是关键活动。

    至此,我们分析出,求解四个特征属性就可以找到关键路径。


    Ve[i]:事件Vi的最早可能发生时间。
    按照就是以起始事件为源点,类似于逆迪杰斯特拉算法求解单源点的最长路径。
    Vl[i]:事件Vi的最迟允许发生时间。
    结束事件的最迟允许发生时间=最早可能发生时间,以此为基础,按照逆拓扑序列求解前驱事件的Vl[],每次减去关联两个事件的具有最短时长的活动。
    e[i]:活动ai的最早可能开始时间。
    若活动ai由弧<.vk,vj>表示,则活动ai的最早开始时间应该等于事件vk的最早发生时间Ve[k]。因而,有:e[i]=ve[k];(即:边(活动)的最早开始时间等于,它的发出顶点的最早发生时间)。
    l[i]:活动ai的最迟允许开始时间。
    若活动ai由弧<.vk,vj>表示,则ai的最晚开始时间要保证事件vj的最迟发生时间不拖后。 因而有:l[i]=Vl[j]-dur<.vk,vj>(为边(活动)的到达顶点的最晚发生时间减去边的权值)。


    至此,所有计算完成,如果活动ai的e[i]=l[i],则ai是关键活动。

    注意,如果某项工程中,多个关键活动构成了两条或更多关键路径,此时并不是缩短任意关键活动的时间都能缩短整个工程时间,而是要缩短所有关键路径的公共关键活动的时间。

    例子或者详细概念,可以参考这篇博文:
    http://blog.csdn.net/wang379275614/article/details/13990163

  • 相关阅读:
    机器学习笔记之数据预处理(Python实现)
    机器学习笔记之matplotlib绘图核心原理
    机器学习笔记之Matplotlib库legend() scatter() plot() figure() subplot()函数参数解释
    Kafka学习笔记之kafka常见报错及解决方法(topic类、生产消费类、启动类)
    Elasticsearch学习笔记之Prometheus监控ElasticSearch核心指标
    Kafka学习笔记之Kafka应用问题经验积累
    Kafka学习笔记之kafka.common.KafkaException: Should not set log end offset on partition
    CRM 价格更新
    定时 任务 C# 思路
    使用ExtentReports生成Testng测试报告
  • 原文地址:https://www.cnblogs.com/hizhaolei/p/8051452.html
Copyright © 2011-2022 走看看