当前位置: 首页 > news >正文

室内装饰网站模板站长工具站长之家

室内装饰网站模板,站长工具站长之家,widgets wordpress,企业手机网站建设资讯介绍 在AOV网的基础上,如果用对应边来表示活动持续时间,这种有向图被称为AOE网在AOE网中,入度为0的为源点,出度为0的为汇点,整张网看做是一件事情完成的过程,那么这两个点就是事情的开始和结束。每个活动持…

介绍

  • 在AOV网的基础上,如果用对应边来表示活动持续时间,这种有向图被称为AOE网
  • 在AOE网中,入度为0的为源点,出度为0的为汇点,整张网看做是一件事情完成的过程,那么这两个点就是事情的开始和结束。每个活动持续的时间之和称为路径长度,从源点到汇点具有的最大长度的路径就成称为关键路径,关键路径上的活动称为关键活动。

关键路径用来计算整个活动总耗时最短的情况。假如有这样一张AOE网,在完成从1到3的过程中,每件事情需要的时间为边上的权值,那么从开头到结束,由于完成4时2,3也可以同时完成,那么需要的最短时间就是4+1=5

那么,1-4-3就是一条关键路径

不难发现,这条路径是把空余时间“塞满”的路径。假设有一件事持续时间为1h,在12点-15点都可以做,那么这件事的最早开始时间为12点,最晚开始时间为14点,这中间还有两个小时的空隙,时间没有“塞满”,那么就不会构成关键路径

所以,判断关键事件的标准就是其最早开始时间与最晚开始时间是否相等

如何求关键路径

  1. 绘制计划图,标注其持续时间
  2. 根据各活动的依赖关系,计算其最早开始时间和最晚开始时间
  3. 计算每个活动的最早完成时间和最晚完成时间(由2结果可以推导出)
  4. 找到最早开始时间与最晚开始时间相等的事件,这些活动构成了关键路径

具体实现

由于计算关键路径之前需要先理清事件的先后关系,所以在找关键路径之前需要先对网图进行拓扑排序,不同的是,我们需要在邻接表中加入代表边权值的值域。

typedef struct edge{int adjvex;//邻接点域,用于储存该顶点对应下标int info;//储存权值int weight;//储存边的权值struct edge* next;//链域,指向下一个邻接点
}edge;
typedef struct vex{int v;//储存顶点int in;//记录入度;edge* first;//边表头指针
}vex,adjlist[MAX];
//储存邻接链表构成的网图信息
typedef struct{adjlist al;int numE,numN;
}graphAL;

拓扑排序过程中也需要加入对时间的判断处理,并额外记录拓扑排序的结果

int et[MAX],lt[MAX];//记录最早时间和最晚时间
bool topo(graphAL g){int n=0;//记录输出的顶点值,判断是否为AOV网deque <int>q;//创建队列for (int i=0;i<g.numN;i++){if (g.al[i].in==0){//入度为0q.push_back(i);//入队}}deque <int>q2;//用于储存拓扑序列for (int i=0;i<g.numN;i++){et[i]=0;//初始化}while(!q.empty()){cout<<q.front()<<" ";//将入度为0的顶点输出n++;//输出的顶点数加1edge* e=g.al[q.front()].first;q2.push_front(q.front());//记录弹出的顶点int top=q.front();q.pop_front();//此顶点出队while(e){//处理其相邻顶点int temp=e->adjvex;//记录相邻顶点if (g.al[temp].in==1)//入度为1,说明去掉与原顶点相连的边后入度为0q.push_back(temp);e=e->next;//继续处理下一个相邻顶点if (et[top]+e->weight>et[temp]) et[temp]=et[top]+e->weight;}}if (n!=g.numN) return false;else return true;
}

关键路径的求取(队列2与最早发生时间数组需要定义在全局或者传入函数中)

void CriticaPath(graphAL g){int e,l;//最早和最晚发生时间topo(g);//首先进行拓扑排序int ltv[g.numN];//最晚发生时间数组for (int i=0;i<g.numN;i++){ltv[i]=et[g.numN-1];//初始化}while (q2.empty()){int top=q.front();//将拓扑排序好的顶点出队q.pop_front();edge* e=g.al[top].first;while(e){int temp=e->adjvex;//判断是否需要更新最晚发生时间//(活动的最晚发生时间取决于其后继活动的最晚发生时间减去活动持续时间)if (ltv[temp]<ltv[top]+e->weight) ltv[top]=ltv[temp]+e->weight;e=e->next;}}for (int i=0;i<g.numN;i++){edge* e=g.al[i].first;while(e){int temp=e->adjvex;e=et[i];//活动最早时间l=ltv[temp]-e->weight;//最晚开始时间if (e==l)//判断是否为关键事件......//如果是,进行题目要求的打印或求路径之和操作e=e->next;}}
}

http://www.hkea.cn/news/240222/

相关文章:

  • 营销网站定制的优势成品网站源码的优化技巧
  • 高职学院网站建设方案广告制作
  • table表格 做的网站营销案例分析报告模板
  • pc端网站做移动适配教育培训机构管理系统
  • 页游传奇排行榜无锡seo优化公司
  • 广西南宁网站设计百度seo算法
  • 网站建设服务怎么样近期国内热点新闻事件
  • 阿里巴巴网站国际站建设seo托管服务
  • 企业网站优化之如何做需求分析网奇seo赚钱培训
  • 施工企业会计制度收入确认规定百度自然排名优化
  • 校园网站建设意义网络营销的特点有哪些
  • 内江做网站哪里便宜google搜索关键词热度
  • 福建省建设银行招聘网站网络推广员压力大吗
  • 动态网站订单怎么做搜索引擎优化营销
  • html5行业网站最近有哪些新闻
  • 做网站业务的怎么寻找客户在哪里打广告效果最好
  • 广东深圳seo服务内容
  • 做网站怎么备案网络服务有限公司
  • 网站主页特效欣赏百度官网下载电脑版
  • php mysql开发网站开发任何小说都能搜到的软件
  • the7 wordpress主题宁波seo外包费用
  • 云南建筑培训网seo刷点击软件
  • 男女做暖网站h5页面制作平台
  • 可以做puzzle的网站百度关键词排名提升工具
  • 竞网网站建设南宁网站seo大概多少钱
  • 114黄页信息网宝鸡seo培训
  • 东南亚做棋牌网站挖掘爱站网
  • 中国工程建设招标网官方网站谷歌查询关键词的工具叫什么
  • wordpress管理员密码忘记成都seo招聘
  • 武汉企业建站系统模板下载官方正版百度