9 关键活动

假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。“任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。

比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。有些课程可以同时开设,比如英语和C程序设计,它们没有必须先修哪门的约束;有些课程则不可以同时开设,因为它们有先后的依赖关系,比如C程序设计和数据结构两门课,必须先学习前者。

但是需要注意的是,对一组子任务,并不是任意的任务调度都是一个可行的方案。比如方案中存在“子任务A依赖于子任务B,子任务B依赖于子任务C,子任务C又依赖于子任务A”,那么这三个任务哪个都不能先执行,这就是一个不可行的方案。

任务调度问题中,如果还给出了完成每个子任务需要的时间,则我们可以算出完成整个工程需要的最短时间。在这些子任务中,有些任务即使推迟几天完成,也不会影响全局的工期;但是有些任务必须准时完成,否则整个项目的工期就要因此延误,这种任务就叫“关键活动”。

请编写程序判定一个给定的工程项目的任务调度是否可行;如果该调度方案可行,则计算完成整个工程项目需要的最短时间,并输出所有的关键活动。

输入格式:

输入第1行给出两个正整数NN(\le 100100)和MM,其中NN是任务交接点(即衔接相互依赖的两个子任务的节点,例如:若任务2要在任务1完成后才开始,则两任务之间必有一个交接点)的数量。交接点按1~NN编号,MM是子任务的数量,依次编号为1~MM。随后MM行,每行给出了3个正整数,分别是该任务开始和完成涉及的交接点编号以及该任务所需的时间,整数间用空格分隔。

输出格式:

如果任务调度不可行,则输出0;否则第1行输出完成整个工程项目需要的时间,第2行开始输出所有关键活动,每个关键活动占一行,按格式“V->W”输出,其中V和W为该任务开始和完成涉及的交接点编号。关键活动输出的顺序规则是:任务开始的交接点编号小者优先,起点编号相同时,与输入时任务的顺序相反。

输入样例:

7 8
1 2 4
1 3 3
2 4 5
3 4 3
4 5 1
4 6 6
5 7 5
6 7 2

输出样例:

17
1->2
2->4
4->6
6->7

嗯,今天总算是弄懂了关键活动。

首先需要明白的是,对于题目中所给出的任务依赖关系。表示的是什么。

对于一个任务i,这个任务开始的最早时间vearly[i]为max(vearly[i],vearly[k]+tu[k][i]);

嗯,tu[k][i]表示k任务到i任务所需要的时间。有人或许会问,最早时间为什么还是max呢。嗯,我们知道完成当前任务,必须要完成它前面的所有任务,所以我们应该选择一个最长路,而不是最短路。然后我们在一边求出vearly[i]的同时,更新整个工程的最早完成时间即可。min_time=max(min_time,vearly[i]);

这样我们就能求出完成整个工程的最早时间了。bfs的起点自然是入度为0的点开始。

然后我们开始bfs每个任务出现的最迟时间。

首先是找到所有出度为0的点,然后倒着搜索,先假设这些点最迟的出现时间是min_time。

然后求出任务出现的最迟时间vlate[i]=min(vlate[i],vlate[k]-tu[i][k]);

然后我们对最早出现时间和最迟出现时间做一个差值,那么这个差值代表什么呢?

1.如果差值大于0表示这个任务,可以晚一点完成也没有关系,因为最迟出现时间大于最早出现时间嘛。所以完全可以从最早出现时间延误到最晚出现时间。

2.如果差值等于0,则表示这个任务不能延误,那么自然这个任务就是关键任务啦。输出来。

#include <bits/stdc++.h>
using namespace std;
const int MAXN=100+10;
const int inf=1e9;
int tu[MAXN][MAXN];
int in[MAXN],out[MAXN];
int vearly[MAXN],vlate[MAXN];//最早出现时间/最晚出现时间
bool vis[MAXN];
int min_time=0;
vector<int>bp;//入度为0的点
vector<int>ep;//出度为0的点
int n,m;
bool get_vearly()
{
    for(auto u:bp)
    {
        queue<int>q;
        q.push(u);
        vis[u]=1;
        vearly[u]=0;
        while(!q.empty())
        {
            int k=q.front();
            q.pop();
            for(int i=1;i<=n;++i)
            {
                if(tu[k][i]>=0&&!vis[i])
                {
                    in[i]--;
                    vearly[i]=max(vearly[i],vearly[k]+tu[k][i]);
                    if(!in[i])
                    {
                        vis[i]=1;
                        q.push(i);
                    }
                }
            }
        }
    }
    for(int i=1;i<=n;++i)
    {
        if(!vis[i])return 0;
        min_time=max(min_time,vearly[i]);
    }
    return 1;
}
void get_vlate()
{
    memset(vis,0,sizeof(vis));
    for(auto u:ep)
    {
        vlate[u]=min_time;
        queue<int>q;
        q.push(u);
        vis[u]=1;
        while(!q.empty())
        {
            int k=q.front();
            q.pop();
            for(int i=1;i<=n;++i)
            {
                if(vis[i]||tu[i][k]<0)continue;
                out[i]--;
                vlate[i]=min(vlate[i],vlate[k]-tu[i][k]);
                if(!out[i])
                {
                    vis[i]=1;
                    q.push(i);
                }
            }
        }
    }
}
int main()
{
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;++i)
    {
        for(int j=1;j<=n;++j)tu[i][j]=-1;
        in[i]=out[i]=0;
        vearly[i]=0;
        vlate[i]=inf;
    }
    int u,v,w;
    while(m--)
    {
        scanf("%d%d%d",&u,&v,&w);
        tu[u][v]=w;
        in[v]++;
        out[u]++;
    }
    for(int i=1;i<=n;++i)
    {
        if(!in[i])bp.push_back(i);
        if(!out[i])ep.push_back(i);
    }
    if(!get_vearly())puts("0");
    else
    {
        get_vlate();
        printf("%d\n",min_time);
        for(int i=1;i<=n;++i)
            for(int j=n;j>=1;--j)
        {
            if(tu[i][j]>=0&&vearly[i]==(vlate[j]-tu[i][j]))
            printf("%d->%d\n",i,j);
        }
    }
    return 0;
}







  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1 智能制造基础与应用 第三章 智能制造关键技术 第三章 智能制造关键技术 第二节 工业物联网 第三节 工业机器人 第四节 3D打印技术 第五节 RFID射频技术 第六节 云计算与大数据 第七节 虚拟现实与人工智能技术 第一节 概述 第八节 智能制造的信息安全技术 概 述 第一节 3 智能制造基础与应用 第三章 智能制造关键技术 智能制造是利用智能科学的理论、技术、方法和云计算、物联网、 移动互联、大数据、自动化、智能化等技术手段,实现工业产品研发 设计、生产制造过程与机械装备、经营管理、决策和服务等全流程、 全生命周期的网络化、智能化、绿色化,通过各种工业资源与信息资 源整合和优化利用,实现信息流、资金流、物流、业务工作流的髙度 集成与融合的现代工业体系。 4 智能制造基础与应用 第三章 智能制造关键技术 在智能制造发展过程中,主要有以下几种关键技术: 一、工业互联网、物联网 工业互联网、工业物联网是互联网、物联网在工业中的应用,是实现 智能生产制造的基础,在智能工业生产制造体系中,把人、设备、生产 线、工厂车间、供应商、客户紧密地连接在一起。设备和设备的互联成 为生产线;单机智能设备相互连接成为智能生产线;智能车间、智能工 厂、供应链等有关工矿企业、客户互联形成产业链网络。基于设备与人 互联的信息物理系统(CPS)也是工业互联网、物联网的核心,能极大地 提升人员效率、工业效益,创造更多价值,为用户提供更好服务。 5 智能制造基础与应用 第三章 智能制造关键技术 二、 工业云、云制造 工业云是智能工业的基础设施,通过云计算技术为工业企业提供 服务,是工业企业的社会资源实现共享的一种信息化创新模式。 工业云平台 6 智能制造基础与应用 第三章 智能制造关键技术 云制造是一种利用网络和云制造服务平台,按用户需求组织网上 制造资源(制造云),为用户提供各类按需制造服务的一种网络化制 造新模式。云制造技术将现有网络化制造和服务技术同云计算、云安 全、高性能计算、物联网等技术融合,实现各类制造资源(制造硬设 备、计算系统、软件、模型、数据、知识等)统一的、集中的智能化 管理和经营,为制造业全生命周期过程提供可随时获取的、按需使用 的、安全可靠的、优质廉价的各类制造活动服务。它是一种面向服务、 高效低耗和基于知识的网络化智能制造新模式,目前在航天、汽车、 模具行业已有成功的试点和示范应用,并开始推广。 7 智能制造基础与应用 第三章 智能制造关键技术 工业制造相关技术 云制造服务平台 8 智能制造基础与应用 第三章 智能制造关键技术 三、 工业自动化设备及工业软件 工业自动化设备包括数字化仪表、半导体非电量(物理、化学, 生物等变量)的各种传感器及数字测量仪表、RFID及其读写器;单片 机、各类嵌入式计算机及模块组件;工控机、数控装置、可编程控制 器、工业机器人、分布式控制系统;行业电子的应用产品,如汽车电 子、航空电子、机械电子、纺织电子等产品。 9 智能制造基础与应用 第三章 智能制造关键技术 四、 工业大数据 工业大数据包括产品数据、运营数据、管理数据、供应链数据、 研发数据等企业内部数据,以及国内外市场数据、客户数据、政策 法律数据等企业外部数据,信息化、网络化带来了海量的结构化与 非结构化数据,数据本身最基本的特征是及时性、准确性、完整性, 大数据的实时采集和处理带来更高的研发生产效率以及更低的运营 成本。这为更精准、更高效、更科学地进行管理、决策以及不断提 升智能化水平提供了保证。 10 智能制造基础与应用 第三章 智能制造关键技术 五、 智能制造、智能生产、智能工厂 狭义智能制造是指生产智能仪表、智能控制装置、智能机器人、 智能控制软件、智能执行机构等智能设备的制造业。广义智能生产制 造是指将信息技术、网络技术和智能技术应用于工业生产制造领域, 实现产品生产、研发、经营管理及服务全流程的数字化、网络化、信 息化、自动化、智能化、绿色化,是智能化的生产工厂和制造企业。 11 智能制造基础与应用 第三章 智能制造关键技术 六、 增材制造 增材制造(Additive Manufacturing,AM)技术是采用材料逐 渐累加的方法制造实体零件的技术,相对于传统的材料去除-切削加工 技术,是一种"自下而上"的制造方法。近二十年来,AM技术取得了 快速的发展,"快速原型制造(Rapid Prototyping)"、"三维打印 (3D Printing )"、"实体自由制造(Solid Free-form Fabrication) " 之类各异的叫法分别从不同侧面表达了这一技术的特点。 12 智能制造基础与应用 第三章 智能制造关键技术 广义增材制造 13 智能制造基础与应用 第三章 智能制造关键技术 七、虚拟现实技术 虚拟现实技术是
----------------------------------------------------------------------------------------- 第一章 项目概述 .......................................................................................................................................... 3 1. 系统目标 ............................................................................................................................................... 3 第二章 基础服务规划 .................................................................................................................................. 3 1.核心基础结构服务 ................................................................................................................................. 4 2.辅助服务 ................................................................................................................................................. 5 3. WINDOWS SERVER 基础服务 ................................................................................................................. 7 4. DNS 名称解析 ....................................................................................................................................... 7 5. 关键服务推荐布局 ............................................................................................................................... 9 第三章 活动目录设计 .................................................................................................................................. 9 1. ACTIVE DIRECTORY基本概念 ................................................................................................................ 9 2. 安全、统一的目录服务机制 ............................................................................................................. 10 3. 严格、周密的客户端桌面管理 ......................................................................................................... 10 4. 系统实现 .............................................................................................................................................. 11 ●域结构 ............................................................................................................................................... 11 ●站点设计 .......................................................................................................................................... 12 ●AD FSMO主机角色设计 ................................................................................................................ 12 ●组织单元结构 .................................................................................................................................. 13 ●委派管理 .......................................................................................................................................... 14 ●账号和口令管理 .............................................................................................................................. 15 5. 客户端管理 ......................................................................................................................................... 17 ●本地用户和组介绍 .......................................................................................................................... 17 ●默认安全设置 (Administrators 组、Power Users 组、Users 组) ........................................ 18 6. 实现功能描述 ..................................................................................................................................... 20 .................................................................................................................................. 20 ●组策略功能实现 .............................................................................................................................. 21 7. 灾难恢复考虑 ..................................................................................................................................... 22 第四章 文件服务的规划 ............................................................................................................................ 22 第五章 物理实现 ........................................................................................................................................ 24

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值