当前位置: 首页 > 专利查询>湖北大学专利>正文

基于改进匈牙利算法的软件开发资源自动调度方法及系统技术方案

技术编号:15762637 阅读:55 留言:0更新日期:2017-07-05 22:22
本发明专利技术提供一种基于改进匈牙利算法的软件开发资源自动调度方法及系统,包括输入用于参考的各项指标的取值,输入各项指标所占比重,计算综合的代价矩阵,缩减代价矩阵,分割代价矩阵;对每次分割结果分别处理,包括对所得子矩阵分别使用匈牙利算法进行处理,得到各子矩阵的分配方案以及相应代价函数值;合并子矩阵分配结果,并将各个子矩阵的函数代价值进行相加得到整个代价矩阵的函数代价值;比较代价函数值,输出代价函数值最优的分配方案以及相应代价函数值。本发明专利技术能够自动得出符合实际开发过程中的最优分配,节约资源,提高效率,并且具有较好的易用性。

Method and system for automatic scheduling of software development resources based on improved Hungarian algorithm

The present invention provides an improved Hungarian algorithm software development resources based on automatic scheduling method and system, including the input value of each index reference for each index input proportion, computational cost matrix, reduced cost matrix, segmentation cost matrix; respectively for each segmentation results, including the sub matrix are used the Hungarian algorithm, get the distribution scheme of each sub matrix and the corresponding value of the cost function; merging sub matrix assignment results, and will be added to obtain the whole cost function value of each sub matrix generation matrix generation function value; comparative cost function value, the output value of the cost function the optimal scheme and the corresponding cost function. The invention can automatically obtain the optimal allocation according to the actual development process, save resources, improve efficiency, and has better usability.

【技术实现步骤摘要】
基于改进匈牙利算法的软件开发资源自动调度方法及系统
本专利技术涉及软件开发过程中的资源自动调度领域,尤其是一种利用改进匈牙利算法进行软件开发资源自动调度的方法及系统。
技术介绍
软件开发过程中的任务人员分配问题可视为资源调度问题。资源调度的关键在于匹配的最优化,而匹配问题是运筹学的重要问题之一,也是图论的重要内容,它在“人员分配问题”和“最优分配问题”中有重要作用。目前,有关资源调度问题的研究已有很多。0-1调度算法通过0-1变量来数量化事物反映出的离散变量间的逻辑、顺序、互斥等关系的约束条件;先来先服务调度算法按照程序进入的先后来分配任务处理优先级;优先级调度算法分为非抢占式和抢占式两种,非抢占式优先数算法类似于先来先服务调度算法,而抢占式优先数算法则仅适用于可中断类型任务的分配;匈牙利算法通过寻找增广路径来求得最优匹配。这些算法在一定程度上解决了任务平衡指派问题,但算法复杂度过高、无法解决软件开发过程中的非平衡指派等。针对这个问题,国内外许多学者提出了基于匈牙利算法的改进算法。其中,加边补零法通过将非平衡代价矩阵做补零处理;加边补最小值法通过将非平衡代价矩阵做加边补最小值处理。这两种算法都是将非平衡指派问题转化为平衡指派问题后再利用匈牙利算法进行处理。虽然这两种算法解决了非平衡指派问题与平衡指派问题的转化,但其分配结果依旧是人员独占任务,无法满足软件开发过程中人员协作完成某项任务的实际,造成资源浪费,效率低下。对于非平衡指派问题,相关研究者提出了一种扩展矩阵法,该算法通过将代价矩阵按一定规则重复扩展,并对扩展后的矩阵进行补零处理,将非平衡指派问题转化为平衡指派问题后再使用匈牙利算法,该算法可以完成非平衡指派问题与平衡指派问题的转化,也能够满足人员协作完成某项任务的需求。但该算法存在如下问题:对于一些代价矩阵所得出的分配结果中存在某些任务未被分配的问题或者分配结果中人员分配极端的问题。
技术实现思路
本专利技术针对非平衡人员自动指派问题,提出了一种基于改进匈牙利算法的软件开发资源自动调度技术方案。本专利技术技术方案提供一种基于改进匈牙利算法的软件开发资源自动调度方法,包括以下步骤,步骤1,输入用于参考的各项指标的取值,设第l项指标代价值的取值范围为0~max,0表示完成某项任务所需代价最低,max表示完成某项任务所需代价最高,n表示任务总数,m表示人员总数,k表示指标项数,n小于m;表示第j位开发人员为完成项目中第i项分配任务的第l项指标代价值,i=1,2,...,n,j=1,2,...m,l=1,2,...,k;步骤2,输入各项指标所占比重,设pli表示第l项指标在第i项分配任务中的比例,l=1,2,...,k,i=1,2,...,n,0<pli<1,步骤3,计算综合的代价矩阵,设Eij代表第j位开发人员为完成项目中第i项分配任务的综合代价,i=1,2,...,n,j=1,2,...,m,计算如下,步骤4,缩减代价矩阵,缩减后各行各列都出现至少一个零元素;步骤5,分割代价矩阵,包括进行多次不同的分割,每次分割的实现方式为,从m列中任取n列组成n×n的矩阵,形成个子矩阵,剩余的补零得到一个n×n大小的子矩阵;步骤6,对步骤5每次分割结果分别处理,包括对所得个n×n子矩阵分别使用匈牙利算法进行处理,得到各子矩阵的分配方案以及相应代价函数值,计算如下,其中,minSx表示第x子矩阵的函数代价值;表示第x代价子矩阵;表示第x代价子矩阵的分配情况;x=1,2,...,m/n+1;i=1,2,...,n,j=1,2,...,n;表示未分配,表示已分配,步骤7,对步骤5每次分割结果,分别合并个n×n子矩阵分配结果,并将各个子矩阵的函数代价值进行相加得到整个代价矩阵的函数代价值,计算如下,其中,minS表示总函数代价值,minSx表示分割矩阵后第x子矩阵的函数代价值;x=1,2,...,m/n+1)。步骤8,比较代价函数值,包括通过将每种矩阵分割相应代价函数值进行比较,得出代价函数值最优的分配方案,输出代价函数值最优的分配方案以及相应代价函数值。而且,步骤4中,缩减代价矩阵根据如下公式进行,Eij=Eij-mini{Eij}Eij=Eij-minj{Eij}其中,j=1,2,...,m,i=1,2,...,n。而且,步骤5中,分割代价矩阵包括进行次不同的分割。本专利技术还提供一种基于改进匈牙利算法的软件开发资源自动调度系统,包括以下模块,第一模块,用于输入用于参考的各项指标的取值,设第l项指标代价值的取值范围为0~max,0表示完成某项任务所需代价最低,max表示完成某项任务所需代价最高,n表示任务总数,m表示人员总数,k表示指标项数,n小于m;表示第j位开发人员为完成项目中第i项分配任务的第l项指标代价值,i=1,2,...,n,j=1,2,...m,l=1,2,...,k;第二模块,用于输入各项指标所占比重,设pli表示第l项指标在第i项分配任务中的比例,l=1,2,...,k,i=1,2,...,n,0<pli<1,第三模块,用于计算综合的代价矩阵,设Eij代表第j位开发人员为完成项目中第i项分配任务的综合代价,i=1,2,...,n,j=1,2,...,m,计算如下,第四模块,用于缩减代价矩阵,缩减后各行各列都出现至少一个零元素;第五模块,用于分割代价矩阵,包括进行多次不同的分割,每次分割的实现方式为,从m列中任取n列组成n×n的矩阵,形成个子矩阵,剩余的补零得到一个n×n大小的子矩阵;第六模块,用于对第五模块每次分割结果分别处理,包括对所得个n×n子矩阵分别使用匈牙利算法进行处理,得到各子矩阵的分配方案以及相应代价函数值,计算如下,其中,minSx表示第x子矩阵的函数代价值;表示第x代价子矩阵;表示第x代价子矩阵的分配情况;x=1,2,...,m/n+1;i=1,2,...,n,j=1,2,...,n;表示未分配,表示已分配,第七模块,用于对第五模块每次分割结果,分别合并个n×n子矩阵分配结果,并将各个子矩阵的函数代价值进行相加得到整个代价矩阵的函数代价值,计算如下,其中,minS表示总函数代价值,minSx表示分割矩阵后第x子矩阵的函数代价值;x=1,2,...,m/n+1)。第八模块,用于比较代价函数值,包括通过将每种矩阵分割相应代价函数值进行比较,得出代价函数值最优的分配方案,输出代价函数值最优的分配方案以及相应代价函数值。而且,第四模块中,缩减代价矩阵根据如下公式进行,Eij=Eij-mini{Eij}Eij=Eij-minj{Eij}其中,j=1,2,...,m,i=1,2,...,n。而且,第五模块中,分割代价矩阵包括进行次不同的分割。本专利技术的优势在于:提出了一种基于改进匈牙利算法的软件开发资源自动调度技术方案,实现了在人员与任务数目不相等的情况下,利用改进后的匈牙利算法自动得出符合实际开发过程中的最优分配,从而使其可应用于实际软件开发过程中的人员分配问题。实验结果表明本专利技术技术方案能够有效地针对软件开发项目的人员进行自动任务分配优化,支持某个任务由多个人员协作完成,节约资源,提高效率,并且具有较好的易用性。附图说明图1是本专利技术实施例的流程图。图2是本专利技术实施例代价矩阵缩减过程图。图3是本专利技术实施本文档来自技高网
...
基于改进匈牙利算法的软件开发资源自动调度方法及系统

【技术保护点】
一种基于改进匈牙利算法的软件开发资源自动调度方法,其特征在于:包括以下步骤,步骤1,输入用于参考的各项指标的取值,设第l项指标代价值的取值范围为0~max,0表示完成某项任务所需代价最低,max表示完成某项任务所需代价最高,n表示任务总数,m表示人员总数,k表示指标项数,n小于m;

【技术特征摘要】
1.一种基于改进匈牙利算法的软件开发资源自动调度方法,其特征在于:包括以下步骤,步骤1,输入用于参考的各项指标的取值,设第l项指标代价值的取值范围为0~max,0表示完成某项任务所需代价最低,max表示完成某项任务所需代价最高,n表示任务总数,m表示人员总数,k表示指标项数,n小于m;表示第j位开发人员为完成项目中第i项分配任务的第l项指标代价值,i=1,2,...,n,j=1,2,...m,l=1,2,...,k;步骤2,输入各项指标所占比重,设pli表示第l项指标在第i项分配任务中的比例,l=1,2,...,k,i=1,2,...,n,0<pli<1,步骤3,计算综合的代价矩阵,设Eij代表第j位开发人员为完成项目中第i项分配任务的综合代价,i=1,2,...,n,j=1,2,...,m,计算如下,步骤4,缩减代价矩阵,缩减后各行各列都出现至少一个零元素;步骤5,分割代价矩阵,包括进行多次不同的分割,每次分割的实现方式为,从m列中任取n列组成n×n的矩阵,形成个子矩阵,剩余的补零得到一个n×n大小的子矩阵;步骤6,对步骤5每次分割结果分别处理,包括对所得个n×n子矩阵分别使用匈牙利算法进行处理,得到各子矩阵的分配方案以及相应代价函数值,计算如下,其中,minSx表示第x子矩阵的函数代价值;表示第x代价子矩阵;表示第x代价子矩阵的分配情况;x=1,2,...,m/n+1;i=1,2,...,n,j=1,2,...,n;表示未分配,表示已分配,步骤7,对步骤5每次分割结果,分别合并个n×n子矩阵分配结果,并将各个子矩阵的函数代价值进行相加得到整个代价矩阵的函数代价值,计算如下,其中,minS表示总函数代价值,minSx表示分割矩阵后第x子矩阵的函数代价值;x=1,2,...,m/n+1)。步骤8,比较代价函数值,包括通过将每种矩阵分割相应代价函数值进行比较,得出代价函数值最优的分配方案,输出代价函数值最优的分配方案以及相应代价函数值。2.根据权利要求1所述基于改进匈牙利算法的软件开发资源自动调度方法,其特征在于:步骤4中,缩减代价矩阵根据如下公式进行,Eij=Eij-mini{Eij}Eij=Eij-minj{Eij}其中,j=1,2,...,m,i=1,2,...,n。3.根据权利要求1或2所述基于改进匈牙利算法的软件开发资源自动调度方法,其特征在于:步骤5中,分割代价矩阵包括进行次不同的分割。4.一种基于改进匈牙利算法的...

【专利技术属性】
技术研发人员:马传香刘烨伍蔓张建升
申请(专利权)人:湖北大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1