多主体系统中基于双层分解的任务分配方法

文档序号:6357904阅读:108来源:国知局
专利名称:多主体系统中基于双层分解的任务分配方法
技术领域
本发明涉及多主体系统中(Multi-Agents System) 一种基于双层分解的优化任务分配方法,具体是利用中介子(Mediator)依据任务的关联结构和主体(Agent)的能力和资源对任务进行双层分解分配,进而有效地降低多主体系统的任务执行时间,提高执行效率。
背景技术
多主体系统中,传统的任务分配问题研究主要是将已经分解后的子问题,依据一定的规则和方法分配给相对独立的主体,通过主体之间的分工合作来完成任务。研究内容包括如何避免多主体之间的冲突、减少通信代价、提高系统并行处理能力等方面,通过改进这些方面的模型和算法来实现优化的任务分配方案。但是,任务的分配与分解是密不可分的,分解是分配的前提,不同的任务分解方案对任务分配有着重要的影响。因此,将任务的分解与分配结合起来去研究任务分配更能优化分配方法,提高任务的执行效率。经过对现有文献的检索发现,Yichuan Jiang&Jiuchuan Jiang发表于《IEEE Transactions On Parallel And Distributed Systems, VOL.20, No. 5 (May 2009)》 (IEEE平行与分布式系统学报第二十卷第五期)中论文“Contextual Resource Negotiation-Based Task Allocation and Load Balancing in Complex Software Systems"(复杂软件系统中基于情景化资源协商的任务分配和负载均衡),该文提出了一种基于主体(Agent)情景化资源的任务分配方案,在任务分配时,不仅考虑主体自身所具有的资源和能力,也考虑与之相关联的主体即其情景化环境中的主体的资源和能力,其过程为任务分配之前,首先检测主体的资源和能力,主体的资源和能力不能满足任务要求的, 检测与之关联的主体的资源和能力,并入到任务处理主体数组中,直至满足任务要求,然后依据情景化环境中主体群组的资源和能力进行任务分配;同时,为了避免具有高的情景化资源和能力的主体负载过重,本文提出当该类型的主体获得一定任务后,其情景化资源和能力会被削减,任务分配时最大限度的满足负载均衡要求。经检索还发现,James Guo Ming Fu&Tirthankar Bandyopadhyay &Marcelo H. Ang Jr 发表于《2009 IEEE International Conference on Robotics and Automation (May 12-17, 2009)》(2009 IEEE ^ 人与自动化国际会议)中论文“Local Voronoi Decomposition for Multi-Agent Task Allocation”(多主体任务分配中的局部泰森多边形分解算法),该文提出一种根据主体的局部信息确定主体的泰森多边形区域的分解算法,在探索问题中其优化程度接近如理论上的最优解决方案。然而,上述论文虽然均提供了用于任务分解或分配的优化策略,但并未将任务的分解与分配结合起来去研究任务的优化处理方案。即目前多数有关于任务分配的研究只局限于任务的分配或者分解单个方面,将分解纳入任务分配策略的研究还没有具体的研究方案。

发明内容
技术问题本发明的目的是针对上述现有技术的不足,提出多主体系统中一种基于双层分解的任务分配方法,在该方法中,多主体系统中主体之间的结构形式为联邦式结构,即系统由中介子和执行主体构成,该发明的特点是将任务的分解和分配结合一起作为探究任务分配策略的优化,避免分别研究分解和分配时出现的不足。技术方案本发明是通过如下技术方案实现的,该方法包括以下步骤
步骤一,任务被中介子接受之后,中介子首先对任务的关联结构进行遍历,记录各个子任务所需的资源和子任务之间的关联,依据子任务的关联结构将任务分解为一系列子任务模块,完成首层任务分解;通过控制子任务模块中资源阈值的调整,控制子任务模块的大小;
步骤二,系统中的主体向中介子反馈各自的资源和能力信息,抽象为主体能够处理的子任务的类型和每个时刻处理子任务的个数,中介子对每个主体曾经处理的子任务结果拥有记录,作为该主体诚信度的评价,根据主体的反馈信息和中介子拥有的诚信度对任务进行分解,同时综合考虑各主体未处理子任务模块和即将被分配的子任务模块的负载均衡, 完成次层任务分解。步骤一中,所述的资源阈值通过已经分配到模块中的子任务的总的资源种类和数量,即子任务模块资源多少来控制模块大小,而不是用模块中子任务的数量来控制模块大步骤二中,所述的负载均衡是某时刻结束末中介子在评估主体的负载时,不仅考虑主体上未处理的负载,还考虑即将被分配给主体的子任务模块带给主体的负载,综合考虑各主体两个方面的负载,将下时刻的子任务模块分配给总体负载最小能够执行该子任务模块的主体。次层任务分解是在首层任务分解的基础上进行的,在次层分解中根据多主体系统中的主体资源和能力对不满足任务求解要求的子任务模块进行再次分解。所谓的中介子,是指在分解中用于处理各个主体关联的协调主体;
所谓的子任务所需的资源,是指完成子任务所需资源的种类和数量,
Ti [krj }表示完成子任务I需要k个资源‘
所谓的子任务之间的关联,是指被遍历的子任务的前序任务与后继任务,前序任务指与子任务直接关联的上层子任务,后继任务指与子任务关联的下层子任务;
所谓的资源阈值,是指被分解的子任务模块中所有资源的最大个数。用模块中所含资源总数去控制模块大小比利用模块中子任务个数控制模块大小更有利于客观判断用于处理模块中任务的执行时间;
该步骤的具体技术方案是任务被中介子接受后,中介子对任务关联结构进行遍历,将
遍历结果记录于二维数组马;乓;),其中巧、易分别用于存放子任务不的前序任务和后继任务,Ri存放处理子任务η所需的资源,根据遍历的结果对任务进行首层分解,用于控制分解模块的条件为①子任务巧的任一前序任务朽的数目N(Fi) >1 ;②子任务模块的资源数目r(R)大于模块限定阈值rQ。分解算法的流程图如图3所示。中介子通过任务的关联结构对任务首层分解后,原有任务被分解成为若干个关联度比较紧密的子任务模块,多主体系统在处理这些模块时,能够有效地减少关联度紧密的子任务被分配给不同的主体处理时产生的通信耗费,尤其在任务规模比较庞大的时候,通信耗费的减少更加明显。步骤二的具体的方法如下
拥有个Λ个执行主体的多主体系统处理有1种类型的《个子任务构成的原始任务, 原始任务经步骤一分解后被分解为w个子任务模块,I型子任务的执行时间为;单个主体的执行能力即单位时间内能执行子任务的最大个数为Q)(4),其中,^表示能够
执行I型子任务的第J个主体;f子任务模块中I型子任务的总个数用O(T4r)表示(,、=丨、 2、· · ·、πι;/=1、2、· · ·、/〗)。那么,多主体系统完成任务所需的最长执行时间为
pKy^ ^》51^,即…个子任务模块中每种类型子任务的总个数除以系
统对该种任务的总的执行能力乘以执行该类型子任务的单位执行时间的总和,此情况下个子任务模块不能够被多主体系统并行处理;多主体系统完成任务所需的最短执行时间为
Tmja =m-ax{Z,此时个子任
i/ jι/ Jm
务模块同时被多主体系统处理,总任务的执行时间为所需时间最长的子任务模块的执行时间;鉴于多主体系统中各个主体的执行能力,实际的总任务执行时间介于两者之间,该发明
的目标是在多主体系统执行能力限制条件下使总任务的执行时间最大程度的接近。任务每个主徹载项■>『> )/◎灼,其乜为上-时刻分
配到主体A上的未被执行的任务为将要分配给该主体的子任务;中介子记录的各个主体执行子任务的结果作为各个主体的诚信度,即能够成功执行子任务认为诚信可靠,不能够执行任务不诚信可靠,各个主体的诚信度为,当主体成功完成一次子任务时诚信度增1,否则减1,当诚信度低于0时认为该主体无诚信度,中介子不分配给主体任务。初始状态时,每个主体的诚信度和负载均为0,中介子依据主体的资源和能力对子任务模块进行分配,首先对子任务模块或子任务的执行主体唯一的任务进行分配,对执行主体不唯一的
分配给ID(J)相对较小的可信任主体,此时的为0 ;第一时刻执行任务结束后,系
统中各主体向中介子反馈自己的负载和执行结果,中介子根据此刻各主体的负载和执行结果分配给各主体下一时刻的任务,将任务分配给满足以下三个条件的主体
条件一 IMH崎Φ确Cp《M最小的主体,其中,尸为时刻结束主体
IP
上还未处理的子任务,T1q为将要分配的子任务;
条件二 通信耗费较小,即同一子任务模块中的子任务分配给同一主体,若不满足,将子任务模块进行再分解,按照条件一进行分配;
条件三诚信度较高,在满足条件一和条件二的基础上分配给诚信度较高的主体; 分解算法的流程图如图4所示。在上述两层分解的基础上,得出基于双层分解的任务分配方法,其流程图如图5 所示。依据该发明的任务分配方法,通过首层基于任务关联结构的分解,能够有效地减少关联度不紧密的子任务被分配给不同的主体所造成的通信耗费;同时,该发明每个执行时刻结束通过对已分配和即将被分配的任务对各个主体带来的负载评价,在高效执行任务的前提下有效地降低了任务执行时间,从而使总任务的执行时间接近于多主体系统执行能力限制条件下的最短执行时间。有益效果中介子是用于接受任务的主体。在任务分配过程中,不仅仅是对已分解的任务进行任务分配的优化方案研究,而且把对任务的分解考虑到任务分配过程中。系统中接受任务的中介子首先根据任务之间的关联结构对任务进行首层分解,关联度相对紧密的子任务结合在一起,这样可以有效地减少任务处理过程中通信资源的耗费;其次,中介子评价系统中各个主体的反馈信息,信息包括主体的资源和能力、主体承载的任务以及对各个主体执行任务结果的记录,根据主体的反馈信息,对首层分解得到的任务进行再分解。其中,将各个主体执行任务的结果作为次层分解的一个因素是为了避免不能按反馈的资源和能力成功执行任务的主体屡次被分配给任务。1、通过基于任务关联结构的首层分解,有效地降低了在任务分配过程中的通信耗费,尤其当任务规模比较大的时候效果更加明显;
2、在依据主体资源和能力的基础上提出的计算主体负载的方法,该方法考虑主体现有任务和待分配任务及主体的执行能力,有效地降低了总任务的执行时间,使实际执行时间有效接近于多主体系统执行能力限制下的最短执行时间;


图1是原始任务中子任务的结构关联及所需资源类型的实例显示图; 图2是多主体系统中主体的任务处理能力图3是基于原始任务中子任务关联结构的首层任务分解流程图; 图4是基于执行环境的次层任务分解流程图; 图5是基于双层分解的任务分配方法流程图; 图6是实施例中基于双层分解的分配方法的执行流程A2、A3的处理能力分别为1、1、2;图3中终端任务是指任务关联结构中午后继任务的子任务,巧和巧(5)分别代表第j个子任务模块和该模块中任务所含总的资源个数。
具体实施例方式下面结合附图对本发明的实施例做详细说明本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本实施例只是本发明的一个简单的案例应用,本发明的保护范围不局限于下述的实施例。在不影响说明本发明内容的前提下,对任务和多主体系统中的主体作如下简化和设置
(1)用于控制子任务模块大小的资源阈值f =10,对不同的任务根据任务的规模进行改变;
(2)在实施例中不考虑子任务类型的不同,子任务的执行时间均相同,即设置
权利要求
1. 一种多主体系统中基于双层分解的任务分配方法,其特征在于该方法包括以下两个步骤步骤一,任务被中介子接受之后,中介子首先对任务的关联结构进行遍历,记录各个子任务所需的资源和子任务之间的关联,依据子任务的关联结构将任务分解为一系列子任务模块,完成首层任务分解;通过控制子任务模块中资源阈值的调整,控制子任务模块的大步骤二,系统中的主体向中介子反馈各自的资源和能力信息,抽象为主体能够处理的子任务的类型和每个时刻处理子任务的个数,中介子对每个主体曾经处理的子任务结果拥有记录,作为该主体诚信度的评价,根据主体的反馈信息和中介子拥有的诚信度对任务进行分解,同时综合考虑各主体未处理子任务模块和即将被分配的子任务模块的负载均衡, 完成次层任务分解。
2.根据权利要求1所述的多主体系统中基于双层分解的任务分配方法,其特征是步骤一中,所述的资源阈值通过已经分配到模块中的子任务的总的资源种类和数量,即子任务模块资源多少来控制模块大小,而不是用模块中子任务的数量来控制模块大小。
3.根据权利要求1所述的多主体系统中基于双层分解的任务分配方法,其特征是步骤二中,所述的负载均衡是某时刻结束末中介子在评估主体的负载时,不仅考虑主体上未处理的负载,还考虑即将被分配给主体的子任务模块带给主体的负载,综合考虑各主体两个方面的负载,将下时刻的子任务模块分配给总体负载最小能够执行该子任务模块的主体。
4.根据权利要求1所述的多主体系统中基于双层分解的任务分配方法,其特征是,次层任务分解是在首层任务分解的基础上进行的,在次层分解中根据多主体系统中的主体资源和能力对不满足任务求解要求的子任务模块进行再次分解。
全文摘要
多主体系统中基于双层分解的任务分配方法中,多主体系统中主体之间的结构形式为联邦式结构,即系统由中介子和执行主体构成,其中,中介子是用于接受任务的主体;任务的分配方式为中介子接受任务后,对任务的关联结构进行分析,根据一定的资源阈值对任务进行首层分解,将任务分解成若干个关联比较紧密的子任务群组模块;接着,系统中的各个主体向中介子反馈主体的信息,反馈的信息包括主体的资源和能力信息以及主体处理任务的结果信息,中介子根据获得的信息对任务群组进行次层分解,将任务分配给各个主体进行求解。能够有效地降低任务的执行时间,使任务的执行时间接近于多主体系统执行能力限制条件下的最短执行时间。
文档编号G06F9/46GK102156660SQ20111009077
公开日2011年8月17日 申请日期2011年4月12日 优先权日2011年4月12日
发明者周伟, 孟海战, 徐媛, 蒋玉俊 申请人:东南大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1