数据结构 - 关键路径(AOE)】的更多相关文章

目录 AOV网和AOE网 AOV网 AOE网 定义 与AOV网的转化 AOE网中着重解决的两个问题 1.最长路径问题 2.关键活动问题 总结 最长路径 无正环的图 有向无环图的最短路径 其他情况 关键路径算法:确定关键活动,求出工程最短时间 前置定义 ve数组求解 数学分析 代码实现:拓扑排序 vl数组求解 数学分析 代码实现:逆拓扑排序 关键路径算法实现 基本步骤 主体代码 几个注意点 AOV网和AOE网 AOV网 顶点活动网络(Activity On Vertex, AOV):用顶点表示活动…
这个作业属于哪个班级 数据结构--网络2011/2012 这个作业的地址 DS博客作业04--图 这个作业的目标 学习图结构设计及相关算法 姓名 黄静 目录 0.PTA得分截图 1.本周学习总结 1.1 图的定义 1.2 图的存储结构和运算算法 1.2.1 邻接矩阵 1.2.2 邻接表 1.2.3 邻接矩阵和邻接表区别 1.3 图遍历 1.3.1 深度优先遍历 1.3.2 广度优先遍历 1.4 最小生成树 1.4.1 Prim算法求最小生成树 1.4.2 Kruskal算法求解最小生成树 1.5…
Problem Description 一个无环的有向图称为无环图(Directed Acyclic Graph),简称DAG图.     AOE(Activity On Edge)网:顾名思义,用边表示活动的网,当然它也是DAG.与AOV不同,活动都表示在了边上,如下图所示:                                           如上所示,共有11项活动(11条边),9个事件(9个顶点).整个工程只有一个开始点和一个完成点.即只有一个入度为零的点(源点)和只有一个…
// exam1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #include <stack> using namespace std; #define MAXVEX 20 typedef struct ArcNode { int adjvex; int weight; struct ArcNode* nextarc; }ArcNode; typedef struct HeadN…
题目链接:http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2498.html 题目大意 略. 分析 注意!!!,此题只有一个源点,但有多个汇点. 这题本质上是求源点到汇点字典序的带权最长路,从前往后求比较麻烦,我们可以考虑从后往前求,求每个节点到某个汇点的最长距离和字典序最小的后继节点. 为此可先求拓扑序列,然后从后往前遍历拓扑序列,并进行松弛操作(同时也可以解决多汇点问题,SPFA则不行).…
这是我们学校做的数据结构课设,要求分别输出关键路径,我查遍资料java版的只能找到关键路径,但是无法分别输出关键路径 c++有可以分别输出的,所以在明白思想后自己写了一个java版的 函数带有输入函数也有已经存进去的图 如上图关键路径被分别输出(采用了DFS算法): 例:AOE 图如下: 算法设计如下: 1. 首先,要求关键路径,要先要先写拓扑排序,如果图中有环,就无法进行关键路径的求解,直接跳出. 拓扑排序:利用栈stack,先将入度为0事件节点的加入栈中,然后编历后面的活动节点,每次给活动节…
前面我们说过的拓扑排序主要是为解决一个工程能否顺序进行的问题,但有时我们还需要解决工程完成需要的最短时间问题.如果我们要对一个流程图获得最短时间,就必须要分析它们的拓扑关系,并且找到当中最关键的流程,这个流程的时间就是最短时间. 在前面讲了AOV网的基础上,来介绍一个新的概念.在一个表示工程的带权有向图中,用顶点表示事件,用有向边表示活动,用边上的权值表示活动的持续时间,这种有向图的边表示活动的网,称之为AOE网(Activity On edge Network).由于一个工程,总有一个开始,一…
关于AOE网络的基本概念可以参考<数据结构>或者search一下就能找到,这里不做赘述. 寻找AOE网络的关键路径目的是:发现该活动网络中能够缩短工程时长的活动,缩短这些活动的时长,就可以缩短整个工程的时长.因此,寻找关键路径就是寻找关键活动. 接下来开始寻找一个工程中的关键路径(关键活动). 寻找关键路径,每本教材都会提及四个特征属性:Ve[],Vl[],e[],l[],此处可能还补充一个属性:活动ai的时间余量,也就是l[i]-e[i],当某个活动的时间余量=0时,该活动就是关键活动.所以…
声明:图片及内容基于https://www.bilibili.com/video/BV1BZ4y1T7Yx?from=articleDetail 原理 AOE网 关键路径 数据结构 核心代码 TopologicalSort /* TopologicalSort用于实现拓扑排序 参数:result用来保存处理过的拓扑排序顶点:count用来保存处理过的拓扑排序顶点的个数 功能:进行拓扑排序,将找到的拓扑顶点序号存入result数组(result可以看成一个栈,count可以看成是栈顶指针) 增加的…
上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的,但是工期不是最优的.因为拓扑序列是一个串行序列,如果按照该序列执行项目,那么就是串行执行的.我们知道在一个项目中的一些子工程是可以并行来完成的,这也就类似我们的多线程.今天我们要解决的问题就是找出一个关键路径,是工期最优并保证工程的完成.什么是关键路径,我们在下方会进行详细介绍. 一.关键路径概述 在聊关键路…