一种预分配结合匈牙利算法的多机器人任务分配方法组成比例

技术编号:20844521 阅读:24 留言:0更新日期:2019-04-13 08:56
本发明专利技术公开了一种预分配结合匈牙利算法的多机器人任务分配方法,包括以下步骤:对多机器人系统建模;建立所有机器人承担不同任务的效益值矩阵;优化多机器人系统;对效益值矩阵进行简化;根据每个任务所需机器人的数量对效益值矩阵进行变形;对任务进行预分配,并进一步简化效益值矩阵;利用匈牙利算法进行任务分配,获得最终的分配矩阵T,完成任务分配。本发明专利技术以多机器人多任务分配系统为对象,采用预分配结合匈牙利算法的策略进行分配,有效地解决了多机器人多任务系统的分配与优化问题,缓解了在效益矩阵复杂时运用单一匈牙利算法可能造成的时间消耗过大、甚至算法无限循环的问题,具有有效简化模型表示方式、加快模型分析速度的优点。

【技术实现步骤摘要】
一种预分配结合匈牙利算法的多机器人任务分配方法
本专利技术属于多机器人协作控制
,特别是一种预分配结合匈牙利算法的多机器人任务分配方法。
技术介绍
多机器人任务分配,即指派机器人执行任务,由于机器人的构造不同,对不同任务的完成度不一样,执行任务的花费也不一样。因此,如何合理地指派不同的机器人执行不同的任务、如何指派多个机器人完成同一个任务成为多机器人系统研究中的关键问题之一。现有的多机器人任务分配方法大多是针对具体的应用提出来的,只能用于特定环境,比如匈牙利算法,机器人和任务数量相等且每个任务只需要一个机器人来完成,这是非常理想化的情境。如谢哲学.基于匈牙利法的引航员任务指派研究[D].2017.[1],就应用了匈牙利算法指派任务和机器人数量相等的情况。若当任务数量和机器人数量不相等,或当每个任务需要一个以上机器人来完成的时候,这种分配方式就无法使用。现阶段实验过程中,在构建机器人与完成任务间的关系时,多数只单一考虑到机器人在完成任务过程中的时间因素或完成任务所需代价。但在实际应用时,多机器人在合作完成目标任务的过程中,仅单一以时间因素或完成代价来衡量机器人对于任务的完成度是非常片面的。
技术实现思路
本专利技术所解决的技术问题在于提供一种预分配结合匈牙利算法的多机器人任务分配方法。实现本专利技术目的的技术解决方案为:一种预分配结合匈牙利算法的多机器人任务分配方法,包括以下步骤:步骤1、基于角色协作的模型对多机器人系统建模;步骤2、建立所有机器人承担不同任务的效益值矩阵Q;步骤3、通过判断机器人是否满足分配条件优化多机器人系统;步骤4、对所述效益值矩阵进行简化;步骤5、根据每个任务所需机器人的数量对效益值矩阵进行变形;步骤6、对任务进行预分配,获得初始分配矩阵T,并进一步简化效益值矩阵;步骤7、利用匈牙利算法处理步骤6简化后的效益值矩阵进行任务分配,获得最终的分配矩阵T,完成任务分配。本专利技术与现有技术相比,其显著优点为:1)本专利技术通过引入效益值作为衡量机器人完成任务好坏的参数,完善机器人完成任务过程中的效用评价机制,可有效体现异构机器人完成不同任务的优劣,能够同时兼顾时耗和能耗,增加效益值这样一个任务分配结果优劣的量化评估指标,提高了任务分配结果的科学性与合理性;2)本专利技术通过对效益值矩阵进行调整变形,实现了复杂情况下如任务数量和机器人数量不相等或当每个任务需要一个以上机器人来完成时的任务分配;3)本专利技术通过使用预分配,缓解了在效益矩阵复杂时运用单一匈牙利算法可能造成的时间消耗过大、甚至算法无限循环的问题,具有加快模型分析速度的优点;4)本专利技术通过删除与本分配方式无关的变量,简化了建模步骤,简化了模型的表示方式,获得了更简单更适合本系统的模型。附图说明图1是本专利技术预分配结合匈牙利算法的多机器人任务分配方法的流程图。图2是本专利技术优化多机器人系统以及对效益值矩阵进行初次简化的流程图。图3是本专利技术利用匈牙利算法处理简化后的效益值矩阵进行任务分配的流程图。具体实施方式结合图1,本专利技术一种预分配结合匈牙利算法的多机器人任务分配方法,包括以下步骤:步骤1、基于角色协作的模型对多机器人系统建模;步骤2、建立所有机器人承担不同任务的效益值矩阵Q;步骤3、通过判断机器人是否满足分配条件优化多机器人系统;步骤4、对效益值矩阵进行简化;步骤5、根据每个任务所需机器人的数量对效益值矩阵进行变形;步骤6、对任务进行预分配,获得初始分配矩阵T,并进一步简化效益值矩阵;步骤7、利用匈牙利算法处理步骤6简化后的效益值矩阵进行任务分配,获得最终的分配矩阵T,完成任务分配。进一步地,步骤1中角色协作的模型具体采用E-CARGO模型,根据E-CARGO模型,一个多机器人系统∑可以被表示成一个九元组∑::=<C,O,A,S,R,E,G,s0,H>,其中,C是一组类的集合;O是一组对象的集合;A是一组Agent的集合;S是一组服务的集合;R是一组角色的集合;E是一组环境的集合;G是一组工作组的集合;s0是协作系统的初始状态;H是一组成员的集合。进一步地,步骤1基于E-CARGO模型对多机器人系统建模,具体为:对E-CARGO模型进行简化:∑::=<A,R,E>式中,A为机器人集合,采用m表示机器人数量;R为任务集合,采用n表示任务数量;采用向量L表示环境E中任务范围向量,L=[l1,l2,…,ln]。进一步地,步骤2中效益值矩阵Q的维度为m×n,矩阵Q中的每个效益值Xij为:Xij=1-(w1×sij1+w2×sij2)其中,Xij即Q[i,j]为第i个机器人完成第j个任务的效益值,sij1为第i个机器人完成第j个任务的时耗,w1为sij1对应的权值,sij2为第i个机器人完成第j个任务的能耗,w2为sij2对应的权值,w1、w2根据实际情况自由取值;其中0≤i<m,0≤j<n。进一步地,步骤3通过判断机器人是否满足分配条件优化多机器人系统,具体为:步骤3-1、检测机器人数量是否满足分配条件,若不满足,增加机器人数量直至满足分配条件;其中,分配条件为L[j]为完成任务j所需的机器人数量;步骤3-2、设定n个任务中每个任务的资格阈值分别为P0、P1、…、Pn-1,并检测完成每个任务的机器人数量是否满足需求条件;若不满足,调整完成每个任务的机器人数量直至满足需求条件;其中,令Ni=Q[i,j]-Pj,若|Q[i,j]-Pj|≥0,则Ni=1,反之Ni=0;则需求条件为进一步地,步骤3-2中P0、P1、…、Pn-1的取值为P0=P1=…=Pn-1。进一步地,步骤4对效益值矩阵进行简化,具体为:比较每个机器人完成每个任务的效益值与该任务的资格阈值,将小于资格阈值的效益值置为0,从而完成效益值矩阵的简化。具体算法如下:进一步地,步骤5根据每个任务所需机器人的数量对效益值矩阵进行变形具体为:步骤5-1、根据任务向量L中lj的值,复制该lj对应的任务所在效益值矩阵Q中的列lj次,以此遍历n个任务,获得新的效益值矩阵Q';步骤5-2、判断新的效益值矩阵Q'的列数p是否小于行数q,若小于,则在原有效益值矩阵Q'的列项末尾上添加q-p列0,生成新的效益值矩阵Q”;步骤5-3、根据1-Q”获得变形后的效益值矩阵M。具体算法如下:进一步地,步骤6对任务进行预分配,获得初始分配矩阵T,并进一步简化效益值矩阵具体为:设定优选界限μ,建立空的分配矩阵T,其维度为m×n,对于任意0≤a<m,0≤b<n且a为偶数或奇数,遍历效益值矩阵M的所有值:步骤6-1、当机器人a执行任务b的效益值M[a,b]<μ时,比较M[a,b]和任意M[a,j],若M[a,b]不大于任意M[a,j],继续比较M[a,b]和任意M[i,b],若M[a,b]也不大于任意M[i,b],则将任务b分配给机器人a,令T[a,b]=1;反之继续遍历效益值矩阵M剩余的值,重复本步骤,获得初始分配矩阵T;其中,0≤j<n且j≠b,0≤i<m且i≠a;步骤6-2、对于已分配给机器人a的任务b,将其在效益值矩阵M中对应的行与列均删除,由此获得简化后新的效益值矩阵M'。经过步骤6预分配以及化简得到新矩阵,传入匈牙利算法进行分配的矩阵维度明显小于未经预分配的旧矩阵,有效减少了算法的运行时间,加快了模型的分析速度。本文档来自技高网...

【技术保护点】
1.一种预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,包括以下步骤:步骤1、基于角色协作的模型对多机器人系统建模;步骤2、建立所有机器人承担不同任务的效益值矩阵Q;步骤3、通过判断机器人是否满足分配条件优化多机器人系统;步骤4、对所述效益值矩阵进行简化处理;步骤5、根据每个任务所需机器人的数量对效益值矩阵进行变形;步骤6、对任务进行预分配,获得初始分配矩阵T,并进一步简化效益值矩阵;步骤7、利用匈牙利算法处理步骤6简化后的效益值矩阵进行任务分配,获得最终的分配矩阵T,完成任务分配。

【技术特征摘要】
1.一种预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,包括以下步骤:步骤1、基于角色协作的模型对多机器人系统建模;步骤2、建立所有机器人承担不同任务的效益值矩阵Q;步骤3、通过判断机器人是否满足分配条件优化多机器人系统;步骤4、对所述效益值矩阵进行简化处理;步骤5、根据每个任务所需机器人的数量对效益值矩阵进行变形;步骤6、对任务进行预分配,获得初始分配矩阵T,并进一步简化效益值矩阵;步骤7、利用匈牙利算法处理步骤6简化后的效益值矩阵进行任务分配,获得最终的分配矩阵T,完成任务分配。2.根据权利要求1所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤1所述角色协作的模型具体采用E-CARGO模型。3.根据权利要求2所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤1所述基于E-CARGO模型对多机器人系统建模,具体为:对E-CARGO模型进行简化:∑::=<A,R,E>式中,A为机器人集合,采用m表示机器人数量;R为任务集合,采用n表示任务数量;采用向量L表示环境E中任务范围向量,L=[l1,l2,…,ln]。4.根据权利要求3所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤2所述效益值矩阵Q的维度为m×n,矩阵Q中的每个效益值Xij为:Xij=1-(w1×sij1+w2×sij2)其中,Xij即Q[i,j]为第i个机器人完成第j个任务的效益值,sij1为第i个机器人完成第j个任务的时耗,w1为sij1对应的权值,sij2为第i个机器人完成第j个任务的能耗,w2为sij2对应的权值,w1、w2根据实际情况自由取值;其中0≤i<m,0≤j<n。5.根据权利要求4所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤3所述通过判断机器人是否满足分配条件优化多机器人系统,具体为:步骤3-1、检测机器人数量是否满足分配条件,若不满足,增加机器人数量直至满足分配条件;其中,分配条件为L[j]为完成任务j所需的机器人数量;步骤3-2、设定n个任务中每个任务的资格阈值分别为P0、P1、…、Pn-1,并检测完成每个任务的机器人数量是否满足需求条件;若不满足,调整完成每个任务的机器人数量直至满足需求条件;其中,令Ni=Q[i,j]-Pj,若|Q[i,j]-Pj|≥0,则Ni=1,反之Ni=0;所述需求条件为6.根据权利要求5所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤3-2所述P0、P1、…、Pn-1的取值为P0=P1=…=Pn-1。7.根据权利要求6所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤4所述对效益值矩阵进行简化处理,具体为:比较每个机器人完成每个任务的效益值与该任务的资格阈值,将小于资格阈值的效益值置为0,从而完成效益值矩阵的简化。8.根据权利要求7所述的预分配结合匈牙利算法的多机器人任务分配方法,其特征在于,步骤5所述根据每个任务所需机器人的数量对效益值...

【专利技术属性】
技术研发人员:黄波霍一鸣郭宇斌赵春霞蔡志成
申请(专利权)人:南京理工大学
类型:发明
国别省市:江苏,32

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

1