王海洋,段振华,田 聪
1(西安电子科技大学 计算理论与技术研究所,陕西 西安 710071)
2(综合业务网理论及关键技术国家重点实验室(西安电子科技大学),陕西 西安 710071)
随着计算机软硬件系统的飞速发展,人工智能(artificial intelligence,简称AI)[1]理论与技术日益成熟,并且在计算机领域内得到了前所未有的重视,其应用领域在逐渐扩大及深入.其中,智能机器人越来越多地出现在人们的日常生活中,例如体育产业中的足球机器人、日常生活中的家用伺服机器人以及工业自动焊接机器人等.所以,保障AI产品的安全性和可靠性,是如今人们面临的刻不容缓的问题.模型检测(model checking)[2]是一种简单明了并且实现了自动化的、用于验证软硬件系统是否满足人们期望性质的技术.它已经广泛应用到各类软硬件系统的性能检测中,如运输控制系统、电子商务、航空航天领域.近年来,模型检测方法也已经应用到AI产品的性能检测中.模型检测是一种基于逻辑的、应用广泛的、对有限状态系统进行自动化程序验证的技术,最早由著名学者Clarke与Emerson以及Quielle与Sifakis于20世纪80年代分别提出.在模型检测中,系统S编码为迁移系统MS,要验证的性质规约P用逻辑公式φP表示,验证系统S是否满足规约P,转化为模型MS是否满足逻辑公式φP.其中,MS满足公式φP简写为MS|=φP.
验证AI产品的性能需要将其形式化规约,而MAS[2]是AI中应用广泛的分布式系统,它可以将大而复杂的系统描述成多个彼此可以互相协调通信的小而易管理的系统,从而完成各自的或者共同的目标.MAS在表达实际系统时,通过各智能体之间的通信、合作、互解、协调、调度、管理及控制来表达系统的结构、功能及行为特性.采用多智能体系统解决实际应用问题.该系统具有很强的鲁棒性和可靠性,并具有较高的问题求解效率.MAS已经广泛应用于各个领域,如智能机器人、交通控制、分布式预测、监控及诊断、分布式智能决策及虚拟现实.MAS引起了众多技术领域的广泛关注,因此,设计、实现及验证该系统的工具显得尤为迫切.特别是当MAS应用于安全验证相关领域时,验证其是否满足设计要求就显得尤其重要了.针对多智能体系统的模型检测方法的研究,已有学者取得了突出成果[4,5].
本文根据文献[6]中提出的 APTL模型检测方法实现了多智能体系统模型检测器 MCMAS_APTL,其用APTL公式表示MAS的性质用于检测MAS的性能.APTL公式不仅可以描述经典时序逻辑LTL公式可以描述的性质,而且可以描述与区间相关的顺序和循环性质以及开放系统和多智能体系统中的与合作和博弈相关的性质,因此,用APTL公式可方便描述多智能体系统的性质.
状态爆炸问题是模型检测过程面临的常见问题之一,即随着变量个数的增多,系统的状态空间呈指数级增长.在模型检测过程中,能够缓解空间爆炸问题的技术有二值判断图(BDD)[7]、抽象技术、限界模型检测、化简和假设-保证推理.MCMAS_APTL是基于APTL的多智能体系统的符号化模型检测器.它利用APTL公式表达多智能体系统的性质,借助工具 MCMAS[8]中的符号化多智能体系统模块符号化表示要验证的系统,进而验证模型是否满足给定的APTL公式.该工具不仅可以验证多智能体系统,还可用于验证普通的反应系统.
MAS的模型检测方法已引起众多学者的广泛关注并且进行了深入研究.文献[9]中提出了验证 MAS性质的限界模型检测方法,通过扩展CTL*得到包括认知模态的逻辑CTL*K.CTL*K可描述同步解释系统的性质,而且可描述时序和认知两个方面的性质.文献[10]提出了一个基于AUML状态机模型的MAS模型检测机制.文中利用了比较高效的模型检测工具MCMAS.它不仅可用于检测MAS的认知性质,而且可以检测MAS的智能体的行为是否正确或智能体之间的合作关系,但该文献不能检测MAS中智能体之间的博弈性质.文献[11]提出了一种自动生成控制器的机制,当输入一种机器人模型和任务环境以及一种任务或者机器人的行为后,该控制器就能保证机器人完成任务.该文献中的方法是首先创造一种符合规约LTL公式的控制器,其中,任务规约用LTL公式描述,如机器人的搜索、救援、覆盖面以及障碍躲避等.文献[12]提出了一种在语法层对智能体策略类型进行刻画的系统模型.它允许不同智能体具备不同的策略类型,研究了基于新模型的ATL模型检测方法并且开发了检测工具.文献[13]研究了下推多智能体系统的模型检测方法,引入了下推认知博弈结构作为模型,涉及到的时序逻辑为ATEL、ATEL*和AEMC.本文中的MCMAS_APTL工具利用了比较高效的模型检测工具MCMAS中的符号化表示系统部分,性质规约用APTL公式描述,其中,APTL公式简单易懂,表达能力强,APTL公式可以方便地描述多智能体系统的性质,所以该工具可方便地用于多智能体系统的性质验证.
本文第1节简单介绍交替投影时序逻辑语法、语义及其他基本概念.第2节阐述多智能体系统模型检测器MCMAS_APTL的框架和实现过程.第3节给出机器人足球赛模型检测实例.第4节对本文进行总结.
语法.APTL的语法定义如下:
令P为原子命题的可数集合,A为代理的可数集合.其中,p∈P,A⊆A,Pi(i=1,…,Pm),P和Q为 APTL 公式,○〈〈A〉〉(next)和prj〈〈A〉〉(projection)为基本的 APTL 时序操作符.
语义.为了定义APTL公式的语义,首先需要介绍并发博弈结构(concurrent game structure,简称 CGS)[6,8].CGS是一个七元组C=〈P,A,S,S0,l,Δ,τ〉,其中,P是原子命题的有穷非空集合;A是代理的有穷集合;S是状态的有穷非空集合;S0是初始状态的有穷非空集合;l:S→2P为标记函数,每个状态被原子命题集合的子集标记;Δa(s)是代理a∈A在状态s的可以做出决策的非空集合;ΔA(s)=Δa1(s)× ...×Δak(s)是代理集合A= {a1,...,ak} ∈ 2A在状态s的决策向量的非空集合;相应地,ΔA(s)简单表示为Δ(s),表示A中的代理的决策集合;一个决策da,表示代理a在决策d上的决策,dA表示代理集合A⊆A在决策d的决策.对于每一个状态s∈S和决策d∈Δ(s),τ(s,d)∈S将状态s和代理集合A的决策d映射到新的状态.fA为代理集合A在系统C中的一个策略,该策略使得系统生成多条以初始状态s0为起始状态的路径.定义out(s,fA)为以状态s为起始状态策略fA使得系统执行生成的所有的路径集合.详细讲解见文献[6].
根据CGS的定义,在P上定义了一个状态s,为P到B={true,false}的投影,即s:P→B.在一个CGS中,以状态s为起始节点的一条路径λ(s)满足APTL公式P,标记为λ(s)|=P.一个CGSC满足APTL公式P当且仅当所有以CGS的初始节点为起始节点的路径满足公式P,标记为C|=P.
关系定义如下:
·λ(s)|=p对于命题p∈P,当且仅当p∈l(s).
·λ(s)|=¬P当且仅当λ(s)|≠P.
·λ(s)|=P∨Q当且仅当λ(s)|=P或λ(s)|=Q.
·λ(s)|=○〈〈A〉〉P当且仅当|λ(s)|≥2,并且A存在一个策略fA,使得λ(s)∈out(s,fA),并且λ(s)[1,|λ|]|=P.
·λ(s)|=(P1,…,Pm)prj〈〈A〉〉Q当且仅当A存在一个策略fA,λ(s)∈out(s,fA),0=r0≤r1≤…≤rm≤|λ(s)|,使得λ(s)[ri-1,ri]|=Pi,0
a)rm<|λ(s)|,那么λ=λ(s)↓(r0,…,rm)·λ(s)[rm+1,…,|λ(s)|];
b)rm=|λ(s)|,那么λ=λ(s)↓(r0,…,rm).
APTL范式.将APTL公式转化为范式(normal form)[6]形式,是APTL模型检测中不可或缺的环节.接下来简单介绍APTL公式的范式和完全范式(complete normal form)的定义.
定义1(范式(normal form)).QP为APTL公式Q中的原子命题集合,公式Q的范式定义为
Qe为状态公式,为qk或¬qk,如果i≠j,则为 APTL 公式.
APTL公式的范式包含两部分:Qe∧ε为终止部分,若只有1个状态s0的路径满足公式Qe,则满足Qe∧ε;Qci∧Qi为非终止部分,公式Qci∧Qi的模型为一个生成树,其中,该生成树的根节点满足Qci.
定义2(完全范式(complete normal form)).QP为APTL公式Q中出现的原子命题组成的集合,Q的完全范式定义为,其中,为状态公式;为qk或¬qk;并且是原子命题的最小项,如果有n个原子命题,就有 2n个最小项m0,m1,…,是原子命题的最大项,也有2n个最大项.
文献[14]中的定理4已经证明,任意一个APTL公式都可以转化为范式.将公式Q转化为范式后,进一步可以转化为完全范式.如果Q的完全范式为,则¬Q的范式为.
模型检测是一种有效验证有限状态系统性质的技术.由于基于枚举的模型检测方法容易造成状态爆炸问题,所以在实际应用中会遇到很多问题.研究者们尝试解决该问题,提出了一些缓解模型检测过程中状态爆炸问题的有效方法,如抽象技术、限界模型检测以及基于BDD的符号模型检测.符号模型检测的核心思想是建立在将状态集合和迁移关系集合用布尔方程表示的基础上的,用布尔方程隐式地描述状态集合和迁移关系集合,比显式地利用枚举方式描述能够显著节约存储空间.符号化模型检测方法是以状态集合为操作对象,而不是单个状态.
符号化表示方法能够更加简洁地表示系统状态,本文利用二值判断图(binary decision diagrams,简称BDD)表示状态集合.通过对BDD操作,容易实现求状态集合的前驱状态集合、后继状态集合以及状态集合的合并等.符号化模型检测算法与枚举模型检测算法的基本搜索过程相似,本质区别在于,一般的模型检测中以单个状态为操作对象;而符号模型检测中以状态集合为操作对象,且借助 BDD等数据结构,已经有功能强大的操作工具包作为后续开发基础.
二值判断图(BDD).BDD表示布尔函数的有根无环有向图,内部节点标记对应公式中的变量,叶子节点标记为0或1.如图1所示为布尔函数的BDD.
Fig.1 BDD off( a, b, c, d)=a∧b∨c∧图1f( a, b, c, d)=a∧b∨c∧ 的BDD
一个布尔公式可由不同的BDD表示,为确保每个布尔公式对应唯一的BDD,对BDD有两种限制:(1)对布尔公式中的变量进行排序,如图1中布尔公式变量排序为a1.3 MCMAS
MCMAS是一种多智能体模型检测工具,MCMAS的框架结构如图2所示.
MCMAS具有成熟、高效的符号化技术,我们借助MCMAS中模型的符号化模块实现APTL模型检测工具MCMAS_APTL.MCMAS利用解释系统编程语言(interpreted system programming language,简称ISPL)描述要验证的系统,支持的逻辑为 CTLKD-ADC[8].将要验证的系统和一组公式输入 MCMAS,可计算出系统是否满足公式.如果公式不成立,则输出一条反例路径;否则,输出一条证据路径.
在MCMAS中要验证的程序形式化表示为解释系统(interpreted system)并用语言ISPL描述.ISPL程序将一种多智能体系统描述为包含多个智能体和环境的系统,对于 ISPL描述的智能体简单介绍如下.局部状态(local states)是智能体的私有内部状态,是由变量描述的,对于其他智能体是不可见的.智能体与其他智能体和环境的互动是通过将局部状态转化为公共可视化的变量完成的.智能体采取的动作(action)由智能体的局部协议(local protocol)决定.局部状态随局部演变函数变化,该类函数根据当前的局部状态和所有智能体的全局动作(joint action)给出可能的下一个局部状态(next local state).ISPL程序的结构是根据IS的语义给出的,并且可以广泛应用于描述多智能体系统.在程序中,环境用关键字Environment表示,Environment中的一些局部变量对其他智能体可见.
Fig.2 Architecture of model checking tool MCMAS图2 模型检测工具MCMAS的结构框架
从底层开发实现模型检测工具耗时、耗力,不可控因素较多,本文以开源工具为基础实现我们提出的模型检测器.鉴于MCMAS工具所具有的特性和优点,最终选择以MCMAS为基础实现APTL符号模型检测算法.
我们开发实现了用于验证多智能体系统的APTL符号模型检测器MCMAS_APTL.该工具借助了MCMAS的符号化表示模型.MCMAS_APTL的架构如图3所示.
Fig.3 Architecture of model checking tool MCMAS_APTL图3 模型检测工具MCMAS_APTL的结构框架
MCMAS_APTL采用 C++语言开发,由 3个模块组成,分别为:用布尔函数符号化表示解释系统模块;将APTL公式转化为范式模块;检查解释系统是否满足 APTL公式模块.第 1个模块是将解释系统符号化表示,该模块是借助工具MCMAS中的对应的部分;第2个模块是将APTL公式转化为范式;第3个模块是通过计算满足公式的状态集合验证输入的解释系统是否满足给定的APTL公式.
符号模型检测方法有效缓解状态爆炸问题的关键环节是用布尔方程符号化表示模型,进而用ROBDD高效地表示;后续整个检查过程操作都是在ROBDD上进行的.APTL符号模型检测方法是将多智能体系统模型化为解释系统后进行检测的.解释系统是Kripke结构的一种扩展,与CGS相比更适合MAS的建模.在CGS中系统只有全局状态这一概念,IS的全局状态是由内部所有智能体的局部状态组成.详细的比较见文献[6].
2.2.1 符号化表示解释系统
下面简单介绍符号化表示解释系统(interpreted system)的方法.给定一个解释系统.
· 编码一个智能体i(i∈N)的局部状态需要个布尔变量,编码系统的全局状态g为布尔向量,其中,.
· 一个智能体的协议可用局部状态和行为的布尔公式蕴含关系编码.是所有协议的布尔函数组合得到的整个系统协议布尔函数.
· 一个智能体的演变函数是由该智能体的局部变量和其他智能体行为以及环境的可视化变量组成的布尔函数表示,t(v,w,v′)为所有智能体演变函数的布尔函数组合得到的整个系统演变关系布尔函数.
解释系统IS的时序迁移关系可以用布尔方程Rt(g,g′)表示.该方程由所有代理的演变方程ti得到,即
该公式描述全局状态间的布尔关系,应用于时序逻辑操作符的计算.可达全局状态集合G可以用一个布尔公式表示,并通过求解的不动点得到.其中,Q为系统状态集合.τ的不动点可通过迭代计算τ(∅)得到[1].
2.2.2 APTL符号模型检测器的实现
定义3(满足性质的状态集合).对于一个APTL公式φ和解释系统,其中一条执行路径λ是系统IS中的非空状态序列,λ为有穷或者无穷路径.集合Sat(φ)⊆G包含了所有的至少有1条以其为初始节点的路径满足公式φ的状态:
其中,G为系统IS的全局状态集合,Paths(G)表示全局状态组成的所有的路径集合.
· 若Satv(¬φ)·S0v=0,则表明Sat(¬φ)和S0的交集为空,即不存在一条路径λ∈Paths(g0)(g0∈S0),使得λ|=¬φ.即IS中的所有执行路径满足公式φ;
· 如果Satv(¬φ)·S0v≠ 0,则说明在IS中至少存在1条以状态集合Sat(¬φ)∩S0中的状态为起始状态的执行路径λce,使得λce|=¬φ.
函数APTL_model_checking(bdd_parameters*para,char*φ)的伪代码如下所示.
其中,函数APTL_model_checking中的第1行是计算满足公式¬φ的状态集合的BDD,第2行是计算满足公式¬φ的状态集合与系统的初始状态集合的交集,para→in_st为表示系统的初始状态集合的BDD.
函数BDD cal_aptl_bdd(bdd_parameters*para,char*φ)计算满足APTL公式φ的状态集合的BDD,形参为系统模型的符号化表示参数和 APTL公式φ,返回的是表示满足公式φ的状态集合的 BDD.其中,“+”和“·”分别代表逻辑“或”和“与”,Satv(φ)为Sat(φ)的布尔方程.NF(φ)是将公式φ转化为范式的过程,是计算Satv(ϕ)的前驱状态函数.计算的不动点.
函数BDDcal_aptl_bdd(bdd_parameters*para,char*φ)中,第 2 行将公式φ转化为范式,其中,ψi≡φe∧ε或者ψi≡;第4行中,para→vec_reachRT为系统模型的迁移关系.函数cal_aptl_bdd首先将APTL公式φ转化为范式,后续分别处理各项ψi.
· 如果ψi≡φe∧ε,根据范式的定义,φe为状态公式,表示满足φe的状态集合,并且这些状态是有穷执行路径的最终状态.
最后,布尔方程Satv(φ)可以将所有的求“或”得到,即.
机器人足球赛[15]是多智能体系统的典型应用,其中涉及到了机器人之间的合作与竞争.在足球比赛过程中,同一个组的机器人合作,尽可能地将球踢入对方球门,而对方机器人会尽力阻止足球进入自己球队球门.这个过程要求机器人能够根据不同的情景选取不同的策略,其中的合作和博弈性质可以方便地用 APTL公式描述.所以,本文通过机器人足球赛的简单示例展示该工具的工作效果.
本节介绍机器人足球赛的策略模型.
3.1.1 足球场地模型
机器人足球赛场地为长方形,一般是长9 000mm、宽6 000mm.整个球场分为3个区域:前场、中场、后场,这3个区域是用直线分隔开的.足球场地模型如图4所示,场地被量化为长30个单位、宽20个单位,每个单位代表300mm.(x,y)坐标表示球场中的位置,中央点的坐标为(15,10),中圈的半径为3个单位长度.球门宽度为4个单位长度,两个球门线的坐标分别为(0,8),(0,12)和(30,8),(30,12).禁区宽为4个单位长度,长为8个单位长度.
Fig.4 Soccer field model图4 足球场模型
3.1.2 策略模型
由于机器人足球赛的参数随着比赛的进行而变化,所以机器人足球赛的路径规划问题比较复杂.在比赛中,足球机器人不仅要考虑本队的策略和规划,而且要考虑对方球队机器人可能的策略.所以在一个特定的场景下,可能有多个不同的最优选择.机器人足球赛的规则和人类足球赛规则类似.一般地,一个机器人可以采取的行动如下.
· 开球(kick off):在比赛开始时,一个机器人将球踢出.
· 防护(go to defend):机器人去防护对方球员.
· 靠近球(go to the ball):机器人靠近球.
· 截球(intercept the ball):当对方球员持球时,试图截取球.
· 传球(pass the ball to its teammate):当持球的机器人被对方球员拦截时,该机器人将球传给本队队员.
· 射门(shoot the ball into the goal):机器人球员试图将球踢入对方球门.
· 带球前行(go forward with the ball):机器人持球向距离对方球门近的地方前行.
在比赛过程的任意时刻,每一个机器人都能获取球的位置、两个球门的位置、自身的位置和其他机器人的位置.根据不同的情形,团队中的球员担当不同的角色,其中包括前锋(striker)、中场(midfielder)和后卫(defender).守门员与其他球员不同.在整场比赛过程中,守门员的角色不变,其程序也比较简单,仅是一直在寻找、发现和观察球的情况.当球靠近球门时,守门员试图将球踢出以防对方球队进球,并且试图将球踢到距离本队球门较远的位置.对于一场机器人足球赛,持球的球队采取攻击策略(attack tactic),对方球队采取防卫策略(defensive tactic).下面详细介绍包含两个球队A和B的足球赛策略,每队各有4名球员.
防卫策略(defensive tac tic).当足球在A队的中场或者后场时,A队采取防卫策略.如果A队没有队员持球,那么A队中距离球最近的队员试图截球,该球员作为后卫.距离对方球门最近的队员跑去中场并作为前卫,当本队球员截取到球后等待着传球.另外一个球员作为中场队员,并且试图去拦截对方球员的传球.该场景如图5(a)所示,红色队员属于A队,黄色队员属于B队.其中GK为守门员、S为前锋、M为中场、D为后卫.如果A队队员持球,持球的机器人作为中场队员且必须将球传给前锋.剩余的一个队员作为后卫并且停留在罚球点(penalty spot).当前锋得到球后采取新的策略,该队员将会有新的角色或者行为.该情形如图5(b)所示.
Fig.5 Role assignment in a defensive tactic图5 防卫策略中的角色分配
进攻策略(offensive tactic).当球在前场时,A队采取进攻策略.如果A队队员持球,持球队员作为前锋,距离本队球门最近的队员作为后卫且站在罚球点以防对方球员进球.另一个队员作为中场队员与前锋保持在一个水平线上并且在离对方球门近的地方,如果对方球员没有在球门和前锋之间拦截球,那么前锋将球踢向对方球门.如果对方球员试图拦截球,那么前锋将球传给中场队员,并选择新的策略.以上两种情形如图6所示.如果A队没有队员持球,A队中的前锋试图截球.后卫必须在后场以防对方球员进球.中场球员阻挡对方队员靠近自己区域以防对方队员之间传球.
Fig.6 Role assignment in a offensive tactic图6 进攻策略中的角色分配
首先,我们根据上述介绍的足球赛策略用 ISPL描述机器人足球赛过程;然后,用工具 MCMAS_APTL展示比赛过程并验证是否两个球队都有可能进球.球队分为红、黄两个队,每队有3名队员.足球场地模型如图4所示,守门员的活动区域为罚球区.
守门员可以采取的动作包括act_none、run、intercept和kick the ball.显然,act_none表示守门员不行动;run表示守门员前进;intercept表示守门员拦截对方球员进球;kick the ball表示守门员踢球.前锋和中场可以采取的动作包括 act_none、kick off、kick the ball、run、intercept、shoot、pass the ball、take a pass和 dribbling.kick off表示球员在比赛开始时开球;pass the ball表示球员将球传递给本队球员;shoot表示球员试图将球踢入对方球门;take a pass表示球员得到本队球员传的球;dribbling表示球员持球前行.
足球赛的模型描述为一个解释系统,红队包含3个代理(agent):r_gk、r_1和r_2,其中,r_gk为守门员;r_1和r_2根据实际情况有3个角色——前锋(striker)、中场(midfielder)和后卫(defender).黄队也有3个代理:y_gk,y_1和y_2,角色分配与红队类似.代理environment包含可视变量用于描述比赛过程中的环境.
以r_1为例介绍机器人的部分行为,kick off表示代理r_1在比赛开始时开球,代码如下所示.
其中,(Environment.ballx,Environment.bally)表示球的位置坐标,(Environment.red_gkx,Environment.red_gky)表示代理red_gk的位置坐标,其他类似.Vars中的state为代理r_1的状态变量,括号内为r_1的所有可能的状态取值.Actions为r_1的所有的行为动作.Protocol为r_1的协议,如,state=kick_off:{kickoff}表示当r_1的状态为kick_off时,其采取的行动为kickoff.Evolution是代理r_1的演变函数,例如代码中r_1的演变函数,当if后面的公式的值为真时,代理r_1的状态为kick_off;如果代理在某一状态时同时有多个if后面的公式的值为真,则代理的状态是在几个可能的状态中随机选取的.
行为passtheball表示代理r_1传球给队友r_2.如果r_1持球并且无法将球踢入对方球门,那么r_1采取passtheball行动,同时,对方球队队员会试图截球,passtheball的代码如下所示.
当y_1或者y_2持球并且条件对r_1有利,r_1可能采取intercept行为,该情况下ISPL代码如下所示:
对于该系统,原子命题集合AP={redscore,yellowscore},redscore表示红队进球得分,yellowscore表示黄队进球得分;代理分为两个组g1={r_gk,r_1,r_2}和g2={y_gk,y_1,y_2}.为了得到黄队进球得分的路径,我们给出APTL公式,如果黄队能够进球,会输出一条路径满足.其中,公式的语义为代理集合g2存在策略使得执行路径上存在状态满足原子命题公式yellowscore.如图7所示为一条满足公式的路径,其中,足球从中央点(15,10)经由曲线到达点(0,11),球到点(0,11)表明黄队已进球,该曲线为比赛过程中足球的运动轨迹.
另外,本文实现了一场每队有两名队员的机器人足球赛,球队的策略与第 3.1节介绍的策略类似.原子命题集合为表示红队得分进球,yellowscore表示黄队得分进球.系统包含两支球队分别为.
在球赛开始时,代理red_f开球.如果想要得到红队进球得分的一条路径,给出APTL公式,当红队进球得分时,MCMAS_APTL输出一条路径满足公式,如图8所示.
Fig.7 A path satisfies 图7 满足的路径
Fig.8 A path satisfies 图8 满足的路径
另外,本文实现了每个球队包含两个队员的实验,其中,模拟过程执行时间、可达状态数以及所用的BDD存储空间如表1中2×2这一行所示.与每个球队有两个球员的比赛相比,每个球队有3个球员的比赛所用时间明显增多,状态空间爆发式增长.这两种实验都是在2.93GHZ Intel Core i7,8GB RAM上完成的.实验结果表明,工具 MCMAS_APTL具有一定的实用性,但是要高效地验证复杂的多智能体系统,还需提高工具 MCMAS_APTL的性能.
Table 1 Performance of MCMAS_APTL for robotic soccer games表1 机器人足球赛在MCMAS_APTL上的执行
本文根据APTL符号模型检测算法实现了模型检测器MCMAS_APTL,将APTL模型检测算法实现并且融合到 MCMAS中,实现了一种基于 APTL的多智能体系统模型检测器.在实现 MCMAS_APTL时,借助了MCMAS的符号化系统模块,该部分可高效地符号化表示要验证的系统,从而提高了模型检测的效率.在工具MCMAS_APTL中实现了利用 APTL公式验证多智能体系统的时序性质.在未来的工作中,将会研究系统的认知性质并且实现对多智能体系统认知性质的检测.