技术摘要:
本发明公开了一种目标任务检测方法、系统、装置及存储介质。所述目标任务检测方法能够根据所述路径的长度排序、任务的工时排序和目标天数,检测出目标任务,所述目标任务为缩减时间代价最小的任务,本发明能够通过算法检测出缩减代价最小的任务,从而能够修改项目中任 全部
背景技术:
在一个大项目中,常常会有许多个小项目,而每个小项目之间的联系不尽相同,每 一个小项目又会被细分为很多个小任务,这样就会造成在一个完整的大项目中,至少会有 几百甚至成千上万个任务。这些任务都隶属于一些小项目,而这些小项目有时会平行互不 干扰,有时会有先后顺序,更多时候是交叉。这就导致了如果有一个小项目中的一个小任务 需要改动,就会“牵一发而动全身”,影响了整个大任务。在以前,因为任务是人为地去编排, 因而也是人为作出改动,人是靠记忆力和经验去作出改动,很多时候不能做到完美;在一些 工程里面,有时候需要对某一些日期区间内的流程的工期进行缩减,却因为流程太多,不能 很精确地对缩减时间代价最小的流程进行缩减。
技术实现要素:
针对上述至少一个技术问题,本发明的目的在于提供一种目标任务检测方法、系 统、装置及存储介质。 本发明所采取的技术方案是:一方面,本发明实施例包括一种目标任务检测方法, 包括: 读取项目工程流程表; 选择需要优化的日期区间; 获取在所述日期区间内的所有工程流程的路径集合; 获取各个所述路径的长度排序; 读取各个所述工程流程中的所有任务; 获取各个所述任务的工时排序; 获取目标天数,所述目标天数为需要缩减的工时时长; 根据所述路径的长度排序、任务的工时排序和目标天数,检测出目标任务,所述目 标任务为缩减时间代价最小的任务。 进一步地,所述获取在所述日期期间内的所有工程流程的路径集合这一步骤,包 括: 提取在所述日期区间内的所有任务,并制成任务列表; 遍历所述任务列表,获取每个任务的工期和工期延期量,并生成第一邻接矩阵; 遍历所述第一邻接矩阵,获取源点任务和汇点任务,所述源点任务为只有后续任 务的任务,所述汇点任务为只有前置任务的任务; 将所述第一邻接矩阵的值更改为总工期以更新为第二邻接矩阵,所述总工期为工 期与工期延期量的和; 4 CN 111612411 A 说 明 书 2/9 页 使用Dijkstra算法获取每一个源点任务到每一个汇点任务的所有路径,获取在所 述日期期间内的所有工程流程的路径集合。 进一步地,所述根据所述路径的长度排序、任务的工时排序和目标天数,检测出目 标任务,所述目标任务为缩减时间代价最小的任务这一步骤,包括: 根据所述路径的长度排序,获取第一路径和第二路径,所述第一路径为工时长度 最长的路径,所述第二路径为工时长度第二长的路径; 获取第一工时差,所述第一工时差为所述第一路径与所述第二路径的工时差; 判断第一路径是否唯一,并判断所述第一工时差与目标天数的大小; 根据判断结果,检测出目标任务,所述目标任务为缩减时间代价最小的任务。 进一步地,所述根据判断结果,检测出目标任务,所述目标任务为缩减时间代价最 小的任务这一步骤,包括: 若所述第一路径唯一且所述第一工时差大于所述目标天数,提取所述第一路径中 各个任务的工时排序并制作成第一降序列表; 根据所述第一降序列表,获取目标任务,并依次缩减目标任务的工时时长至目标 天数。 进一步地,所述根据判断结果,检测出目标任务,所述目标任务为缩减时间代价最 小的任务这一步骤,还包括: 若所述第一工时差不大于所述目标天数,计算在所述日期期间内每一天所有任务 的缩减代价,并进行排序; 按照缩减代价从小到大的顺序制作任务升序列表; 根据所述任务升序列表,获取目标任务,并依次缩减目标任务的工时时长至目标 天数。 进一步地,所述若所述第一工时差不大于所述目标天数,计算在所述日期期间内 每一天所有任务的缩减代价,并进行排序这一步骤,包括: 遍历目标当天所有工程流程中的所有任务,所述目标当天为所述日期期间内的任 意一天; 所述所有任务的工时时长加一天后与目标当天第一路径中的所有任务的工时时 长总和比较; 提取第一目标任务,所述第一目标任务为工时时长加一天后大于目标当天第一路 径中的所有任务的工时时长总和的任务; 计算缩减所述第一目标任务工时时长1天的代价; 遍历每一天所有工程流程中的所有任务; 按照计算第一目标任务缩减代价的方法计算在所述日期期间内每一天所有任务 的缩减代价。 进一步地,计算缩减所述第一目标任务工时时长1天的代价是由以下公式执行的: 缩减代价=1/第一目标任务的工时时长。 另一方面,本发明实施例还包括一种目标任务检测系统,包括: 第一读取模块,用于读取项目工程流程表; 选择模块,用于选择需要优化的日期区间; 5 CN 111612411 A 说 明 书 3/9 页 第一获取模块,用于获取在所述日期区间内的所有工程流程的路径集合; 第二获取模块,用于获取各个所述路径的长度排序; 第二读取模块,用于读取各个所述工程流程中的所有任务; 第三获取模块,用于获取各个所述任务的工时排序; 第四获取模块,用于获取目标天数,所述目标天数为需要缩减的工时时长; 制定模块,用于根据所述路径的长度排序、任务的工时排序和目标天数,检测出目 标任务,所述目标任务为缩减时间代价最小的任务。 另一方面,本发明实施例还包括一种目标任务检测的装置,包括存储器和处理器, 所述存储器用于存储至少一个程序,所述处理器用于加载所述至少一个程序以执行所述目 标任务检测的方法。 另一方面,本发明实施例还包括一种存储介质,其中存储有处理器可执行的指令, 所述处理器可执行的指令在由处理器执行时用于执行所述目标任务检测的方法。 本发明的有益效果是:本发明提供了一种目标任务检测方法,能够通过算法检测 出缩减代价最小的任务,从而能够修改项目中任务的进度,所述算法能够在非常短的时间 内精确地判断出需要修改的任务,从而能够快速准确地获取最佳修改方案,以对项目中的 任务进行优化。 附图说明 图1为实施例所述目标任务检测的步骤流程图; 图2为实施例所述搜索源点任务的算法框图; 图3为实施例所述搜索汇点任务的算法框图; 图4为实施例所述获取新的邻接矩阵的算法框图; 图5为实施例所述的堆优化的Dijkstra算法框图; 图6为实施例所述的获取所有最佳路径的算法框图; 图7为实施例所述的获取关键路径的算法框图; 图8为实施例所述的只缩减关键路径上的任务工时时长的优化算法框图; 图9为实施例所述的缩减每一天缩减代价最少的任务工时时长的优化算法框图。