基于角色的多智能体任务协同消息传递及异常处理方法与流程

文档序号:23990934发布日期:2021-02-20 13:26阅读:129来源:国知局
基于角色的多智能体任务协同消息传递及异常处理方法与流程

[0001]
本发明属于多智能体消息传递领域,具体涉及了一种基于角 色的多智能体任务协同消息传递及异常处理方法。


背景技术:

[0002]
现有研究工作往往将角色定义为仅发生在分析阶段的概念, 从用例中抽象出来的角色往往用于概念化理解系统。在分析阶段之后, 它们在已实现的系统中并没有实现,因而,目前常见的多智能体协同系 统中没有角色。在大多数情况下,所有角色都是原子结构,不能根据其 他角色定义。但是在异构系统中,动态变化的未知环境下,为实现动态 分配任务、提高集群系统的鲁棒性,角色层的设计和实现将起到关键的 作用。
[0003]
现有多智能体任务协同中任务环境复杂多变,任务协同过程 异常事件多发,基于角色的多智能体任务协同系统既要统筹任务执行的 全过程又要具备实时突发事件应急处置的能力,因此,本领域还需要一 种消息传递及异常处理方法,可以面向不确定环境、自身能力约束和协 同任务执行的场景系统,实现基于角色的多智能体的高效准确的任务协 同。


技术实现要素:

[0004]
为了解决现有技术中的上述问题,即现有基于角色的多智能 体任务协同系统无法进行高效准确的消息传递和异常处理的问题,本发 明提供了一种基于角色的多智能体任务协同消息传递及异常处理方法, 该消息传递方法包括:
[0005]
步骤s10,基于智能体-角色-任务的多层关系构建消息传递 机制;
[0006]
步骤s20,获取事件消息,并通过所述消息传递机制将所述 事件消息发送至任务容器;
[0007]
步骤s30,所述任务容器生成第一指令并发送至任务管理器; 所述第一指令为事件消息解析指令;
[0008]
步骤s40,所述任务管理器基于所述第一指令进行所述事件 消息的解析,生成任务实例和第二指令,并按照任务解析关系建立所述 任务实例之间的关系,保存任务实例的id;所述第二指令为任务实例执 行指令;
[0009]
步骤s50,所述任务管理器基于所述任务解析关系通过所述 消息传递机制将所述第二指令和任务实例之间的关系发送至相应的角色;
[0010]
步骤s60,角色对应的智能体在上一任务执行完毕后,执行 当前第二指令对应的任务实例,并生成任务完成消息,通过所述消息传 递机制将所述任务完成消息发送至所述任务管理器;
[0011]
步骤s70,所述任务管理器基于所述任务完成消息和任务实 例的id删除对应的任务实例,完成事件执行中的消息传递。
[0012]
在一些优选的实施例中,所述事件消息包括共享智能体系统 环境信息,敌方目标
属性,敌对双方态势,己方下级角色对上级角色的 报告、支援和请求信息,以及己方上级角色对下级角色的命令、通知和 指示信息;
[0013]
所述敌方目标属性包括敌方性质、数量、位置和状态;
[0014]
所述敌对双方态势为依据敌对双方现场信息对当前或未来 环境的预测。
[0015]
在一些优选的实施例中,步骤s40和步骤s50之间还包括角色 动态创建和智能体动态匹配;
[0016]
所述角色动态创建,在接收所述任务管理器生成并发送的第 三指令后,角色管理器进行角色实例的动态创建;所述第三指令为角色 实例生成指令;
[0017]
所述智能体动态分配,在接收所述角色管理器生成并发送的 第四指令后,智能体管理器进行智能体实例的动态匹配;所述第四指令 为智能体匹配角色请求。
[0018]
在一些优选的实施例中,所述角色管理器进行角色实例的动 态创建,其过程为:
[0019]
步骤s40a,若所述角色管理器中存在所述第三指令对应的 角色类型,则跳转步骤s40c;否则,跳转步骤s40b;
[0020]
步骤s40b,所述角色管理器向角色管理器发送获取角色类 型请求,所述角色管理器基于所述任务解析关系中任务和角色之间的关 系生成角色类型并发送至所述角色管理器;
[0021]
步骤s40c,所述角色管理器基于所述角色类型生成角色实 例和智能体匹配角色请求,并将所述智能体匹配角色请求发送至智能体 管理器。
[0022]
在一些优选的实施例中,所述智能体管理器进行智能体实例 的动态匹配,其过程为:
[0023]
步骤s40d,所述智能体管理器接收到所述第四指令后,将 所有wait状态的智能体的状态调整为ready;
[0024]
步骤40e,基于所述组成关系中角色和智能体之间的关系判 断所述智能体管理器中是否存在与角色匹配的智能体实例,若不存在, 则创建智能体实例并与角色匹配。
[0025]
本发明的另一方面,提出了一种基于角色的多智能体任务协 同消息传递的异常处理方法,基于上述的基于角色的多智能体任务协同 消息传递方法,该异常处理方法包括:
[0026]
步骤c10,若任务完成失败,所述任务实例生成任务失败消 息,并通过所述消息传递机制将所述任务失败消息发送至分层异常处理 器;
[0027]
步骤c20,基于所述任务失败消息对应的任务的重要性、异 常处理复杂度和异常产生时间确定异常优先级;
[0028]
步骤c30,按照异常优先级从高到低的顺序进行异常处理。
[0029]
在一些优选的实施例中,所述异常优先级为:
[0030]
根据任务重要性判断异常优先的等级,若所述任务失败消息 对应的任务为与关系,则异常优先级为1;若所述任务失败消息对应的任 务为顺序关系,则异常优先级为2;若所述任务失败消息对应的任务为或 关系,则异常优先级为3;
[0031]
若任务重要性相同,则根据异常处理复杂度判断异常优先的 等级,从异常处理复杂度低到高,异常优先级为3,4,

,n;
[0032]
若任务重要性和异常处理复杂度均相同,则异常产生时间越 早的任务失败消息
异常优先级更高;
[0033]
其中,所述异常优先级1,2,3,4,

,n,代表异常优先级从高到 低。
[0034]
在一些优选的实施例中,所述分层异常处理器包括智能体层 异常处理器、角色层异常处理器和任务层异常处理器;
[0035]
所述分层异常处理器按照智能体层-角色层-任务层的顺序 进行所述任务完成失败消息的异常处理。
[0036]
本发明的第三方面,提出了一种存储装置,其中存储有多条 程序,所述程序适于由处理器加载并执行以实现上述的基于角色的多智 能体任务协同消息传递方法以及基于角色的多智能体任务协同消息传递 的异常处理方法。
[0037]
本发明的第四方面,提出了一种处理装置,包括处理器、存 储装置;所述处理器,适于执行各条程序;所述存储装置,适于存储多 条程序;所述程序适于由处理器加载并执行以实现上述的基于角色的多 智能体任务协同消息传递方法以及基于角色的多智能体任务协同消息传 递的异常处理方法。。
[0038]
本发明的有益效果:
[0039]
(1)本发明基于角色的多智能体任务协同消息传递方法, 通过引入角色的定义与设计,可以减少每个智能体负责的任务数量,在 多智能体协商阶段让更少的智能体做出响应,减少了虚拟干扰,使得丢 失的数据包更少,大大提升了多智能体任务协同的效率和准确率,系统 的总体性能更优。
[0040]
(2)本发明基于角色的多智能体任务协同消息传递方法, 在多个智能体试图占用同一通信信道时,通过角色决定智能体的主导地 位,让不太占主导地位的agent避开更占主导地位的agent,避免了通信冲 突,也让更占主导地位的agent专注于自己的任务,从而进一步提升了多 智能体协同任务的效率和准确率。
[0041]
(3)本发明基于角色的多智能体任务协同消息传递方法, 消息异常处理具有智能体-角色-任务的层次性,并且根据任务的重要性、 异常处理复杂度和异常产生时间确定异常优先级,更适用于复杂环境下 的多智能体协同任务。
附图说明
[0042]
通过阅读参照以下附图所作的对非限制性实施例所作的详 细描述,本申请的其它特征、目的和优点将会变得更明显:
[0043]
图1是本发明基于角色的多智能体任务协同消息传递方法 的流程示意图;
[0044]
图2是本发明基于角色的多智能体任务协同消息传递的异 常处理方法的流程示意图。
具体实施方式
[0045]
下面结合附图和实施例对本申请作进一步的详细说明。可以 理解的是,此处所描述的具体实施例仅用于解释相关发明,而非对该发 明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有 关发明相关的部分。
[0046]
需要说明的是,在不冲突的情况下,本申请中的实施例及实 施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明 本申请。
基于agent调度状态的系统调度机制,调度机制对agent进行调度。
[0060]
步骤s10,基于智能体-角色-任务的多层关系构建消息传递 机制。
[0061]
进行消息传递机制的构建在于运用消息队列实现消息存储, 其中包括任务队列、角色队列和智能体队列。通过发布订阅模式实现智 能体之间的通讯。消息的发布者为一个向消息队列发布消息的应用;消 息队列用于保存消息知道将消息发送给订阅者。在订阅者取走消息之前, 消息一直存在消息队列中;信道是建立在tcp连接内的虚拟连接,不管是 发布消息、订阅队列还是接收消息,这些动作都是通过信道完成;消息 的订阅者为一个从消息队列中取得消息的应用。
[0062]
多智能体(agent)协调依赖于agent能够显式地彼此通信, 当多个agent在共享通信介质上同时通信时,这些系统可能变得不可靠, 引入角色的定义与设计,可以减少每个agent负责的任务数量,在多智能 体协商阶段让更少的agent做出响应,使得丢失的数据包更少,提高系统 的总体性能,即通过角色的设计减少虚拟干扰。
[0063]
步骤s20,获取事件消息,并通过所述消息传递机制将所述 事件消息发送至任务容器。
[0064]
多队列的集群系统通信接口从根任务实例出发,按照任务树 状关系,依次生成多个实例,并建立关系。从管理者角色出发,根据网 状图或者任务实例的分配需要依次生成多个role实例,并建立role实例之 间的关系。role实例会根据自身的能力申请,或通过rolecontainer(任务 容器)发起任务分配,完成任务到角色的动态映射。
[0065]
当环境中特定事件发生时,消息传递机制(多队列通信接口) 就会转发该事件给任务容器(taskcontainer)。
[0066]
事件消息包括共享智能体系统环境信息,敌方目标属性,敌 对双方态势,己方下级角色对上级角色的报告、支援和请求信息,以及 己方上级角色对下级角色的命令、通知和指示信息;敌方目标属性包括 敌方性质、数量、位置和状态;敌对双方态势为依据敌对双方现场信息 对当前或未来环境的预测。
[0067]
步骤s30,所述任务容器生成第一指令并发送至任务管理器; 所述第一指令为事件消息解析指令。
[0068]
本发明一个优选的实施例中,任务管理器可以通过行为树建 立任务分解后的任务解析关系。
[0069]
任务容器向任务管理器(taskorganization)申请对事件的 解析,并要求返回处理该事件的任务任务解析关系。
[0070]
步骤s40,所述任务管理器基于所述第一指令进行所述事件 消息的解析,生成任务实例和第二指令,并按照任务解析关系建立所述 任务实例之间的关系,保存任务实例的id;所述第二指令为任务实例执 行指令。
[0071]
任务容器负责按照任务解析关系,生成响应的任务实例, (task1,task2),每个任务实例创建的时候就会执行onstart操作,并 将自己的taskid等信息传递给任务容器进行登记。
[0072]
任务容器按照组成关系,建立任务实例之间的关系,包括通 知task实例注册线管任务发送的特定消息。
[0073]
步骤s50,所述任务管理器基于所述任务解析关系通过所述 消息传递机制将所述
第二指令和任务实例之间的关系发送至相应的角色。
[0074]
任务容器会通知角色容器,并完成任务到角色的映射。
[0075]
步骤s60,角色对应的智能体在上一任务执行完毕后,执行 当前第二指令对应的任务实例,并生成任务完成消息,通过所述消息传 递机制将所述任务完成消息发送至所述任务管理器。
[0076]
agent完成任务就会执行分配的任务的dotask操作,完成 后就会发布任务完成的消息。
[0077]
步骤s70,所述任务管理器基于所述任务完成消息和任务实 例的id删除对应的任务实例,完成事件执行中的消息传递。
[0078]
任务容器会接收该消息,删除响应的task实例,此时task 实例对象会调用onend操作,通知任务容器修正当前状态。其他需要处 理任务成功执行的有关任务模块,以及其他模块,会做出相应的操作。
[0079]
步骤s40和步骤s50之间还包括角色动态创建和智能体动态 匹配:角色动态创建,在接收所述任务管理器生成并发送的第三指令后, 角色管理器进行角色实例的动态创建;所述第三指令为角色实例生成指 令;智能体动态分配,在接收所述角色管理器生成并发送的第四指令后, 智能体管理器进行智能体实例的动态匹配;所述第四指令为智能体匹配 角色请求。
[0080]
角色管理器进行角色实例的动态创建,其过程为:
[0081]
在系统初始化之前,领域专家给出角色网状图,建立角色管 理器来表达角色之间的关系;在系统初始化时,创建角色容器 (rolecontainer)实例,动态管理role实例的生成。
[0082]
步骤s40a,若所述角色管理器中存在所述第三指令对应的 角色类型,则跳转步骤s40c;否则,跳转步骤s40b。
[0083]
本发明一个实施例中,角色管理器可以通过有向图管理角色 之间的任务解析关系。
[0084]
步骤s40b,所述角色管理器向角色管理器发送获取角色类 型请求,所述角色管理器基于所述任务解析关系中任务和角色之间的关 系生成角色类型并发送至所述角色管理器。
[0085]
在事件触发生成task任务时,任务容器生成task实例,并 向角色容器发起创建角色实例的请求。
[0086]
如果角色容器中不存在与任务匹配的角色实例类型,角色容 器向角色管理器发送一个获取角色类型的请求,角色管理器根据task任 务和role之间的关系向角色容器返回角色类型。
[0087]
步骤s40c,所述角色管理器基于所述角色类型生成角色实 例和智能体匹配角色请求,并将所述智能体匹配角色请求发送至智能体 管理器。
[0088]
如果角色容器中存在与任务匹配的角色实例类型,或已通过 角色管理器返回的角色类型,角色容器根据角色类型创建role实例,并 将结果(成功/失败)返回确认。
[0089]
role实例创建成功之后,角色容器向智能体容器发起agent 分配角色的请求。
[0090]
通过分析agent的调度状态,建立agent的状态转移模型, agent实例创建成功后,
就可以等待调度机制进行调度,agent依托分配 的role对task执行时,系统中每个agent都有五个调度状态:dead、 wait、ready、active和execute。
[0091]
当rolecontainer发送一个agent请求时,agentcontainer 内的agent实例触发,agent的调度状态由wait变为ready;如果 agentcontainer中未有与角色匹配的agent,创建agent实例,agent的 调度状态由dead变为ready。此时agent还要根据自身的状态决定是否 将调度状态转到active,如果agent本身处于可执行的状态即agent与 role匹配成功则agent的调度状态在触发后由ready变为active,否则 等待角色匹配,agent的调度状态一直处于ready状态。处于active调度 状态的agent会等待调度,若被调度则转入execute状态,否则等待调度。 转入execute状态后,agent去执行相应的任务,完成任务后将结果发送 到多队列通信接口,agent调度状态变为wait等待新一轮的触发调度执 行。如果任务在执行过程中出现异常,任务未完成放弃执行,agent调度 状态变为dead。
[0092]
agent处于active的调度状态时,需要等待系统进行调度, 此时并不是每个处于active状态的agent都会被调度,因为需要考虑任 务之间的相互关系,有些任务必须在一些任务之前完成,即如果agent 处于可调度的active状态,有的agent也必须在一些agent前调度。解 决方案是每个agent都给定一个优先级,对agentcontainer中优先级较高 的优先运行。
[0093]
智能体管理器进行智能体实例的动态匹配,其过程为:
[0094]
系统初始化时,创建智能体容器(agentcontainer)实例, 动态管理agent实例的生成。将角色role0分配给agent0实例,agent0 是一个能承担管理角色的agent实例。所有agent一开始的调度状态全部 为wait状态,等待被触发。角色容器向智能体容器发送一个匹配角色的 请求,智能体容器中所有agent调度状态调整为ready。
[0095]
步骤s40d,所述智能体管理器接收到所述第四指令后,将 所有wait状态的智能体的状态调整为ready。
[0096]
在任务执行过程中,一部分智能体的状态不是wait,而可能 是execute状态,这时候不考虑execute状态的智能体,仅将wait状态的 智能体的状态调整为ready。
[0097]
步骤40e,基于所述组成关系中角色和智能体之间的关系判 断所述智能体管理器中是否存在与角色匹配的智能体实例,若不存在, 则创建智能体实例并与角色匹配。
[0098]
如果agentcontainer中存在与角色匹配的agent实例,否则 创建一个agent实例,将其agent调度状态变为ready。
[0099]
步骤s40f,检测状态为ready的智能体是否为可执行智能体, 并检测结果为可执行智能体的状态调整为active。
[0100]
与角色匹配成功后,检测自身agent状态,如果在可执行状 态则调度状态变为active状态,返回给agentcontainer检测结果。
[0101]
步骤s40g,根据状态为active的智能体的运行前提和优先 级选择合适的智能体,并将其状态调整为execute;
[0102]
agent0根据各agent的运行前提和优先级选择合适的agent, 相应agent的调度状态变为execute。
[0103]
处于execute状态的agent执行相应的任务。
[0104]
agent任务执行完成或任务未完成放弃执行,将运行结果发 送给agent0,agent0
循环选择agent,直到这批子任务都被执行完。
[0105]
agent执行完所有的子任务,将运行结果发送给多队列通信 接口。
[0106]
如图2所示,本发明第二实施例的基于角色的多智能体任务 协同消息传递的异常处理方法,基于上述的基于角色的多智能体任务协 同消息传递方法,该异常处理方法包括:
[0107]
步骤c10,若任务完成失败,所述任务实例生成任务失败消 息,并通过所述消息传递机制将所述任务失败消息发送至分层异常处理 器;
[0108]
步骤c20,基于所述任务失败消息对应的任务的重要性、异 常处理复杂度和异常产生时间确定异常优先级;
[0109]
步骤c30,按照异常优先级从高到低的顺序进行异常处理。
[0110]
异常优先级定义方法为:
[0111]
根据任务重要性判断异常优先的等级,若所述任务失败消息 对应的任务为与关系,则异常优先级为1;若所述任务失败消息对应的任 务为顺序关系,则异常优先级为2;若所述任务失败消息对应的任务为或 关系,则异常优先级为3;
[0112]
若任务重要性相同,则根据异常处理复杂度判断异常优先的 等级,从异常处理复杂度低到高,异常优先级为3,4,

,n;
[0113]
若任务重要性和异常处理复杂度均相同,则异常产生时间越 早的任务失败消息异常优先级更高;
[0114]
其中,所述异常优先级1,2,3,4,

,n,代表异常优先级从高到 低。
[0115]
上述过程可以理解为:
[0116]

执行“顺序关系”任务时抛出的异常优先级相同;
[0117]

执行“与关系”任务时抛出的异常优先级高于


[0118]

执行“或关系”任务时抛出的异常优先级低于


[0119]

当异常任务重要性相同时,需比较处理异常复杂度,复杂 度越低,优先级越高;
[0120]

异常优先级相同时,按异常抛出时间进行响应及处理。
[0121]
本发明第三实施例的一种存储装置,其中存储有多条程序, 所述程序适于由处理器加载并执行以实现上述的基于角色的多智能体任 务协同消息传递方法以及基于角色的多智能体任务协同消息传递的异常 处理方法。
[0122]
本发明第四实施例的一种处理装置,包括处理器、存储装置; 处理器,适于执行各条程序;存储装置,适于存储多条程序;所述程序 适于由处理器加载并执行以实现上述的基于角色的多智能体任务协同消 息传递方法以及基于角色的多智能体任务协同消息传递的异常处理方法。
[0123]
所属技术领域的技术人员可以清楚地了解到,为描述的方便 和简洁,上述描述的存储装置、处理装置的具体工作过程及有关说明, 可以参考前述方法实施例中的对应过程,在此不再赘述。
[0124]
本领域技术人员应该能够意识到,结合本文中所公开的实施 例描述的各示例的模块、方法步骤,能够以电子硬件、计算机软件或者 二者的结合来实现,软件模块、方法步骤对应的程序可以置于随机存储 器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除 可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所 公知的任意其它形式
的存储介质中。为了清楚地说明电子硬件和软件的 可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及 步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案 的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来 使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明 的范围。
[0125]
术语“第一”、“第二”等是用于区别类似的对象,而不 是用于描述或表示特定的顺序或先后次序。
[0126]
术语“包括”或者任何其它类似用语旨在涵盖非排他性的包 含,从而使得包括一系列要素的过程、方法、物品或者设备/装置不仅包 括那些要素,而且还包括没有明确列出的其它要素,或者还包括这些过 程、方法、物品或者设备/装置所固有的要素。
[0127]
至此,已经结合附图所示的优选实施方式描述了本发明的技 术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然 不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域 技术人员可以对相关技术特征做出等同的更改或替换,这些更改或替换 之后的技术方案都将落入本发明的保护范围之内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1