一种多智能体分布式任务分配方法与流程

文档序号:21730425发布日期:2020-08-05 01:24阅读:401来源:国知局
一种多智能体分布式任务分配方法与流程

本发明涉及智能体技术领域,具体涉及一种多智能体分布式任务分配方法。



背景技术:

在复杂的现实动态环境中,由于环境变化、时间约束、资源分布不均等因素,智能体系统需要在有限时间,有限资源的情况下解决资源分配,任务调度,行为协调,冲突消解等协调合作问题。多智能体系统研究的重点在于使功能独立的智能体具有和人类似的合作意识,通过协商,合作,和协调,完成复杂的任务,解决单个智能体无法解决的问题。多智能体任务分配问题在生产调度、工业制造、军事打击等多领域都有广泛运用。

对于多智能体协同任务分配问题,常用的分布式任务分配方法有基于市场机制的方法、基于空闲链的方法、阈值响应法等。分布式任务分配中没有中心节点,也没有中心控制器,每个智能体独立地做自身决策,任务规划方案由智能体之间通讯、协作、协商来实现。分布式决策并行计算,扩展性和鲁棒性都较好,适用于较大规模的系统。

但是目前已有的分布式任务分配方案,都没有考虑到智能体间通讯受阻,智能体随时增减的情况,在这两种情况下,分布式任务分配的方案应当降低对通信带宽的依赖,提高任务分配速度,从而防止任务分配冲突。



技术实现要素:

有鉴于此,本发明提供了一种多智能体分布式任务分配方法,能够有效、快速地对多目标任务进行分配,减小通讯带宽、提高分配效率。

为达到上述目的,本发明的技术方案括如下步骤:

步骤1:各智能体初始化智能体信息和任务信息,智能体信息包括:智能体编号、智能体位置坐标、智能体速度、智能体通讯范围、智能体能力值以及智能体状态值。

其中智能体能力值为智能体性能的量化值;智能体状态值为智能体的状态指示值;初始化的智能体状态值为0。

初始化各任务信息,任务信息包括:任务编号、任务位置以及任务困难值;任务困难值为完成任务所需的智能体能力值;

步骤2:智能体计算自身对每个未完成任务的出价值,并选取出价值最高的任务,担任任务经理;即每个任务经理对应一个任务;出价值为智能体与任务之间的匹配程度。

步骤3:每个任务经理进行如下判断:任务经理根据自身智能体能力值,判断自身能否完成对应任务,若能够完成对应任务,则任务经理独自完成对应任务,任务经理修改自身的智能体状态值为2,并广播第七类消息给通讯范围内的所有智能体;第七类消息用于指示当前任务经理独自完成对应任务的情况;

接收到第七类消息的智能体,更新自身存储的任务信息中的任务状态为任务经理独自完成对应任务。

若任务经理不能独自完成对应任务,则将对应任务作为待组织任务,任务经理修改自身的智能体状态值为1,并广播第一类消息给通讯范围内的所有智能体;第一类消息包含待组织任务的任务信息以及当前任务经理对待组织任务的出价值。

步骤4:接收到第一类消息的智能体,判断自身智能体状态值。

若智能体状态值为0,在接收到第一类消息后,计算自身对待组织任务的出价值,并将出价值作为第二类消息点对点发送给待组织任务的任务经理。

若智能体状态值为1,在接收到第一类消息后,判断待组织任务是否和自身当前担任任务经理的任务相同;若不相同,则忽略所接收到的第一类消息;若相同,判断自身对待组织任务的出价值是否大于所接收到的第一类消息的发送方的出价值,若是则忽略所接收到的第一类消息,否则放弃担任待组织任务的任务经理,并修改自身的智能体状态为0,同时以自身对待组织任务的出价值作为第二类消息点对点发送给所接收到的第一类消息的发送方。

若智能体状态值为2,在接收到第一类消息后直接忽略。

步骤5:作为任务经理的智能体在设定的第一时间限内接收第二类消息,到达第一时间限后,对接收到第二类消息按照出价值按照由高至低进行排序,选择出价值最高的第二类消息发送方,点对点发送第三类消息,第三类消息用于告知出价值最高的第二类消息发送方参与待组织任务的执行。

步骤6:接收到第三类消息的智能体,向第三类消息的发送方回复第四类消息,第四类消息用于确认参与执行待组织任务,并修改自身的智能体状态值为2开始执行任务。

步骤7:作为任务经理的智能体在设定的第二时间限内接收第四类消息,到达第二时间限后,评估所有确认参与执行待组织任务的智能体是能够完成待组织任务,若能够完成,任务经理广播第五类消息,并修改自身智能体状态为2,开始执行任务,第五类消息用于指示待组织任务执行方案已确定;若不能完成,则待组织任务未完成,返回步骤2。

步骤8:当智能体完成任务后,修改自身智能体状态值为0,并广播第六类信息,告知通讯范围内的智能体任务已完成。

步骤9:返回步骤2,直到所有任务都被执行完成。

进一步地,智能体为无人机、机器人、侦察机或者智能打击武器。

进一步地,智能体信息包括智能体编号i、智能体位置坐标智能体速度通讯范围智能体能力值ai,智能体状态值初值为0。

任务信息包括任务编号j,任务位置坐标(xjt、yjt),任务困难程度di。

智能体计算自身对每个未完成任务的出价值,具体为:智能体i对任务j的出价值为:其中是智能体i预估到达任务j的时间。

是智能体i的规划时间,初始化为0。

进一步地,步骤3中,任务经理根据自身智能体能力值,判断自身能否完成对应任务,具体为:若任务经理的智能体能力值大于或者等于任务的任务困难值,则任务经理自身那个完成对应任务。

有益效果:

本发明提供了一种分布式的任务分配方法,采用了改进的拍卖算法对目标任务进行快速、分布式、低通讯要求的任务分配。实用性强,且可以保障在通讯不全联通的情况下,不产生冲突的任务分配方案,任务分配率达到100%。本发明智能体行为和通讯都是基于统一的框架,基于这种框架智能体可以增添或删减,增加了整个系统的鲁棒性,适用与智能体会出现损毁,以及随时会增加智能体的场景。整个系统的信息拓扑不是全联通的,智能体信息更新机制解决任务分配过程的冲突,能够通讯的智能体定时地更新相互之间的信息,有效保障了分配方案的合理性。因此,该方法考虑了智能体之间通讯受阻,智能体随时增减的情况。它对通讯带宽要求低,任务分配速度快,且能有效防止任务分配冲突。

附图说明

图1为本发明提供的一种分布式的任务分配方法的流程图;

图2为智能体的状态分类说明示意图;

图3是智能体拥有信息示意图;

图4为消息的基本结构图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种多智能体分布式的任务分配方法,适用于多智能体的分布式任务分配。其中智能体是一个抽象出的概念,智能体泛指能感知环境中的动态条件和信息;执行动作影响环境条件;进行推理以求解问题。它映射的实体可以是:森林火灾中的灭火无人机;自然灾害求援任务中的求援机器人;军事打击任务中的侦察机、智能打击武器等。

上述的所有场景中,有以下几个特征:

单个智能体的完成任务的能力是有限的、不同的。很多情况需要多个智能体协作去往目标任务点执行任务。例如在灾害救援中,机器人的搬运能力、搜索能力等都是有限的,该数值根据专家经验预先给出,在下文中抽象为“智能体能力值”。

每个任务的困难程度不同。例如在森林救火任务中,小型起火点任务难度小,一辆灭火无人车可以完成该任务;有些任务点火势大,任务难度大,多架无人机才能完成灭火任务。在下文中,用“任务难度值”表示任务的困难程度。

由于有任务需要多个智能体共同执行完成,任务的分配方案需要一个智能体来进行协商、分配。在下文中,用“经理”来表示负责协调任务分配方案的智能体。

本发明提供的多智能体-多任务分布式任务分配方法,考虑了没有全局通讯条件、通讯拓扑是局部的情况,多智能体分布式协商产生一个快速、合理的任务分配方案。本发明以改进的拍卖算法作为分布式任务分配的求解算法,算法对通讯带宽要求低,任务分配速度快,且能有效防止任务分配冲突。

如图1所示,本发明提供的一种多智能体分布式的任务分配方法,包括如下步骤:

步骤1:各智能体初始化其智能体信息,智能体信息包括:智能体编号、智能体位置坐标、智能体速度、智能体通讯范围、智能体能力值以及智能体状态值。

其中智能体能力值为智能体性能的量化值;智能体状态值为智能体的状态指示值;初始化的智能体状态值为0,即指示智能体为空闲状态。

本发明实施例中,智能体信息包括智能体编号i、智能体位置坐标智能体速度通讯范围智能体能力值ai,智能体状态值初值为0,如图2所示。

初始化各任务信息,任务信息包括:任务编号、任务位置以及任务困难值。为了能够记录任务的执行状况,还可以增加任务状态。其中任务困难值为完成任务所需的智能体能力。其中任务困难值与智能体能力值采用相同的量化方式,例如对于爬坡机器人,其智能体能力值可以是量化的其爬坡能力,对于一个爬坡机器人,其智能体能力值为其性能范围内的爬坡坡度,而对应的爬坡任务,其任务困难值也是爬坡坡度。

本发明实施例中,任务信息包括任务编号j,任务位置坐标(xjt、yjt),任务困难程度di,如图3所示。

步骤2:智能体计算自身对每个未完成任务的出价值,并选取出价值最高的任务,担任任务经理;即每个任务经理对应一个任务,但同一个任务可以存在多个任务经理;出价值为智能体与任务之间的匹配程度;,出价值越大表示该智能体越适合完成该任务。

本发明实施例中,智能体i对任务j的出价值为:

其中是智能体i预估到达任务j的时间;

是智能体i的规划时间,初始化为0。

步骤3:每个任务经理进行如下判断:任务经理根据自身智能体能力值,判断自身能否完成对应任务(即任务经理的智能体能力值大于或者等于任务的任务困难值),若能够完成对应任务,则任务经理独自完成对应任务,任务经理修改自身的智能体状态值为2(,即指示智能体处于执行任务繁忙状态),并广播第七类消息给通讯范围内的所有智能体;第七类消息用于指示当前任务经理独自完成对应任务的情况。

智能体i能够与智能体k进行通讯的定义为:

si是智能体i的通讯范围(scope)。

接收到第七类消息的智能体,更新自身存储的任务信息中的任务状态为任务经理独自完成对应任务。

若任务经理不能独自完成对应任务,则将对应任务作为待组织任务,任务经理修改自身的智能体状态值为1(即指示智能体处于组织任务繁忙状态),并广播第一类消息给通讯范围内的所有智能体;第一类消息包含待组织任务的任务信息以及当前任务经理对待组织任务的出价值。

图4是消息的基本结构图。智能体之间的消息传输模式都按此结构进行。图四中的更新信息部分是智能体对所有任务的执行情况汇总,传输任何类型消息时,都伴随更新信息传输和更新,更新信息将会经过散列(hash)函数映射成固定长度字符串,将通过散列(hash)函数后的字符串和任务信息源码一起通过广播协议发送给其他智能体。接收方接收到更新消息后,对比自己更新消息的hash字符串和接收的hash字符串,如果一样则表示发送方和接收方的更新信息一致,不需要对具体信息进行一一核对,减少智能体的运行量。

步骤4:接收到第一类消息的智能体,判断自身智能体状态值。

若智能体状态值为0,在接收到第一类消息后,计算自身对待组织任务的出价值,并将出价值作为第二类消息点对点发送给待组织任务的任务经理。

若智能体状态值为1,在接收到第一类消息后,判断待组织任务是否和自身当前担任任务经理的任务相同;若不相同,则忽略所接收到的第一类消息;若相同,判断自身对待组织任务的出价值是否大于所接收到的第一类消息的发送方的出价值,若是则忽略所接收到的第一类消息,否则放弃担任待组织任务的任务经理,并修改自身的智能体状态为0,同时以自身对待组织任务的出价值作为第二类消息点对点发送给所接收到的第一类消息的发送方。

若智能体状态值为2,即处于执行任务繁忙状态,因此在接收到第一类消息后直接忽略。

步骤5:作为任务经理的智能体在设定的第一时间限内接收第二类消息,到达第一时间限后(本发明实施例中第一时间限依据经验设定),对接收到第二类消息按照出价值按照由高至低进行排序,选择出价值最高的第二类消息发送方,点对点发送第三类消息,第三类消息用于告知出价值最高的第二类消息发送方参与待组织任务的执行。

步骤6:出价值最高的第二类消息发送方接收到第三类消息的智能体,向第三类消息的发送方回复第四类消息,第四类消息用于确认参与执行待组织任务,并修改自身的智能体状态值为2,即指示智能体处于执行任务繁忙状态,开始执行任务。

步骤7:作为任务经理的智能体在设定的第二时间限内接收第四类消息,到达第二时间限后(本发明实施例中,第二时间限依据经验设定),评估所有确认参与执行待组织任务的智能体是能够完成待组织任务,若能够完成(即即经理i和被征召的智能体能力值之和大于等于任务j的危险值,ωi表示被智能体i成功征召的集合),任务经理广播第五类消息,并修改自身智能体状态为2,开始执行任务,第五类消息用于指示待组织任务执行方案已确定;若不能完成,则待组织任务未完成,返回步骤2。

接收到第五类消息的智能体,则更新自身存储的任务信息中的任务状态为执行方案已确定,从而避免后续对该任务的分配产生冲突。

步骤8:当智能体完成任务后,修改自身智能体状态值为0,并广播第六类信息(即从2(执行任务繁忙)变为0(空闲),)告知通讯范围内的智能体任务已完成;

当智能体接收到类型为6的消息,则更新任务信息中的任务状态为已完成。

步骤9:返回步骤2,直到所有任务都被执行完成。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1