-
多Agent系统中,责任一般是Agent为了满足某些要求而执行的动作[1],如“社会保障管理条例规定企业在成立之日起的20个工作日内,需持营业执照到当地社会保险经办机构办理社会保险登记”。责任或是Agent被要求保持的某种状态[2],如“养老保险缴费人员必须处于参保状态”。责任政策约束其所属领域内Agent间的交互行为,可被视为系统设计中的高层“需求规格”或“交互策略”[3]。在多Agent系统中,建模和验证多Agent间的交互策略有助于正确设计Agent间的交互行为,提高系统的正确性和可靠性[4]。文献[5]在计算机科学领域提出研究规律政策的观点,文献[6]开创了关于分布式系统中的政策研究方向,并提出了“规律控制的交互(law-governed interaction,LGI)”,由此激发了该领域的深远研究与大量实践工作。尽管LGI模型曾被成功用于多Agent系统的各种研究与应用领域,但该模型使用低层抽象信息描述系统中的交互行为,使其逐渐不能满足复杂系统的设计需求。为此,多种责任政策的形式化语言和方法被相继提出,在开发人工制度[7]、验证程序通信[8]、建模Agent交互[9]等研究领域得到了广泛的应用,这些方法可被分为三类:1) 设计政策执行语言,如文献[10]。这类语言可对政策进行简单的描述和解释,但由于缺乏形式语义,所以不能对其进行形式分析或性质验证。2) 设计政策分析语言,如文献[11-12]。它们允许对政策进行形式化定义与分析,但是这类方法没有定义政策语言执行与管理的动态操作语义,不能作为自动验证技术的形式化基础。3) 文献[13]直接给出了策略模型的验证方法,但是没有研究策略模型的形式语义,使策略模型不易被理解和解释,无法建模更为复杂的交互策略。针对上述问题,本文提出一种多Agent交互策略模型检测方法,旨在弥补上述两类方法的不足。该方法中的责任政策框架语言既可以对政策进行描述和解释,又允许对政策进行形式化定义与分析,最终支持使用自动化工具执行验证分析。
-
责任政策描述了多Agent之间的交互策略,即Agent被允许或禁止保持某种状态或执行某些活动,并关联着一些条件集合,这些条件以环境的形式存在于责任描述中,描述系统状态以及政策的应用规则。因此,在定义责任政策语言前,先定义责任政策环境。与责任相关的环境主要有基于状态的环境和基于事件的环境。基于状态的环境声明政策中责任的状态环境,基于事件的环境声明责任被激活、失效、违反或履行的时刻。基于状态的责任环境表达式为:$Cs(\text{A}{{\text{g}}_{1}},\text{A}{{\text{g}}_{2}},\varphi )\leftarrow {{p}_{1}},{{p}_{2}},\cdots ,{{p}_{n}}$,其形式语义定义为当命题公式${{p}_{1}},{{p}_{2}},\cdots ,{{p}_{n}}$为真,Ag1向Ag2承诺$\varphi $时所在的环境$Cs$有效。基于事件的环境则描述了基于状态的环境开始有效和终止有效的时刻,其被声明为$\text{start}(Cs)$和$\text{end}(Cs)$。责任政策的环境表达式如下:
$$\begin{align} & Cs::=\text{true}|\text{false}|c|Cs\wedge Cs|Cs\vee Cs|\neg Cs|[C{{s}_{1}},C{{s}_{2}}] \\ & Ce::=\text{start}(Cs)|\text{end}(Cs)|Cs\wedge Ce|Ce\wedge Cs \\ & C::=Cs|Ce \\ \end{align}$$ 式中,$C$表示责任政策的环境表达式;$Cs$是基于状态的环境表达式;$Ce$是基于事件的环境表达式;$c$是用户定义的基于状态的环境标识符;$[C{{s}_{1}},C{{s}_{2}}]$表示一个区间,其声明基于状态的环境在$C{{s}_{1}}$为真时开始有效,在$C{{s}_{2}}$为真时终止有效。
定义 1 责任(Obligation)。责任是一个六元组$\text{Obligation=}(N,\text{debtor},\text{creditor},\varphi ,Ca,Cv)$,其中,N是责任标识符,debtor责任的发起方,debtor是责任的接收方,$\varphi $是声明责任内容的逻辑公式,Ca是责任的激活环境,Cv是责任的违反环境。责任被声明后,debtor将向creditor传递由$\varphi $表示的事实或需要执行的动作,Ca和Cv分别声明了责任被激活和违反的环境。
定义 2 责任政策语言(obligation policy language,OPL)。 $\text{OPL}=(A,O,C,\text{Action},R,\text{sta})$是一个六元组,其中,A是政策中所有Agent的集合,$\forall A{{g}_{i}}\in A$,$i\in N$,$A{{g}_{i}}$既可以是责任的$\text{debtor}$也可以是$\text{creditor}$;O是政策中所有责任的集合;C是政策环境的集合;$\text{Action}=\text{Ac}{{t}_{o}}\bigcup \text{Ac}{{t}_{c}}$是政策动作的集合,$\text{Ac}{{\text{t}}_{o}}=\{\text{create},\text{active},\text{fulfil},\text{violate},\text{deactivate}\}$是责任操作动作的集合,$\text{Ac}{{\text{t}}_{c}}$是责任内容中动作的集合,即责任内容中$\text{debtor}$承诺执行的动作;$R$是责任政策执行需满足的时序性质集合。$\text{sta}:O\to A$是一个责任分配函数,给出每个责任所归属的Agent。
-
模型检测(model checking)[14] 是一种自动验证有穷状态并发系统的形式化技术。在验证过程中,系统被建模为具有Kripke语义结构的状态迁移系统,系统规范被声明为模态/时序逻辑公式,当模型满足规范时验证算法给出肯定答案,否则算法会将导致错误结果的事件序列作为反例返回给用户,为系统漏洞定位和改进提供帮助。基于模型检测技术验证多Agent交互策略,首先要将交互策略模型转换为模型检测器的输入模型,本文选用基于Kripke结构作为输入的NuSMV作为模型检测工具验证交互策略。
-
NuSMV以模型描述程序和时态逻辑规范文本作为输入。若规范成立,则输出为真,否则显示一个轨迹,该轨迹解释规范为假的原因。NuSMV输入模型由一个或多个模块组成,其中一个模块必须被声明为主模块,每个模块都可由三部分组成:变量的声明、变量赋值以及性质声明。模块内部声明变量并对变量赋值,赋值操作通常给出变量的初始值,而变量下一个值是关于变量当前值的表达式。NuSMV建模语言的具体语法可参照文献[14]。
本文基于OPL的操作语义,将其转换为NuSMV 的输入模型,转换过程中每个Agent被转换为输入模型的一个独立模块,并在主模块中初始化。各Agent的责任被建模为对应模块中的枚举变量,枚举值为责任的各个状态。各Agent的责任所关联的环境变量被转换为模块参数变量及其内部中的枚举变量和布尔变量,与责任状态相关的责任操作则被转换为状态演化的推理规则,这种迁移关系定义在各模块的ASSIGN部分,责任的内容动作被转换为迁移条件定义在模块的NEXT语句部分。
-
本文采用计算树逻辑CTL声明系统应满足的关键性质,CTL的语法定义如下:
定义 5 令p为原子命题,通过Backs-Naur范式定义CTL公式$\phi $为:
$$\begin{align} & \phi :=\bot |T|p|(\neg \phi )|\phi \wedge \phi |\phi \vee \phi |\phi \to \phi \\ & |\text{AX}\phi |\text{EX}\phi |\text{AF}\phi |\text{EF}\phi |\text{AG}\phi |\text{EG}\phi | \\ & \text{A }\!\![\!\!\text{ }\phi \text{U}\phi \text{ }\!\!]\!\!\text{ }|\text{E }\!\![\!\!\text{ }\phi \text{U}\phi \text{ }\!\!]\!\!\text{ } \\ \end{align}$$ 式中,路径量词A表示沿着所有路径(无一例外);E表示沿着至少(存在)一条路径(可能);时态算子X、F、G、U分别为下一个状态、未来某个状态、所有未来状态和直到。
系统被期望满足的性质主要包括安全性和活性性质,系统的安全性被描述为坏事$\phi $一定不会发生,其CTL公式形式为AG$\neg \phi $,系统的活性被描述为前提$\psi $成立时好事$\varphi $会经常发生,其CTL公式的形式为AG($\psi \to $AF$\varphi $)。
The Method of Model Checking Policy of Multi-Agent Interaction
-
摘要: 提出一种基于模型检测的多Agent交互策略验证方法,首先通过责任政策语言建模多Agent的交互策略,基于责任政策语言的操作语义将政策模型转换为模型检测器NuSMV的输入,利用时态逻辑声明表征策略冲突的系统性质,然后利用模型检测器NuSMV自动验证政策模型对性质的可满足性,并根据模型检测器产生的反例分析交互策略中的各种错误。该方法可提高交互策略的验证效率,确保多Agent系统设计的正确性。Abstract: A verification method of multi-agent interaction policy is proposed based on model checking. The model of system is specified with obligation policy language and it is converted to the input model of model checker NuSMV based on its operational semantics, the properties of system depending on different types of policy conflicts are represented with temporal logic, and the violations of properties are detected by using NuSMV model checker, which can provide the counterexample and trace it back to the errors in interaction policy. The result shows that the method can improve the efficiency of verifying interaction policy, and it ensures the correctness of the design of Multi-Agent systems.
-
Key words:
- formal method /
- model checking /
- multi-agent system /
- NuSMV /
- policy model
-
[1] LOIZOS M, DAVID P C, PFEFFER A. Specifying and monitoring economic environments using rights and obligations[J]. Autonomous Agents and Multi-Agent Systems, 2010, 20(2):158-197. doi: 10.1007/s10458-009-9089-6 [2] XU Dian-xiang, SANFORD M, LIU Zhao-liang. Testing access control and obligation policies[C]//International Conference on Computing, Networking and Communications. San Diego, CA, USA:IEEE Computer Society, 2013:540-544 [3] BALDONI M, BAROGLIO C. Constitutive and regulative specifications of commitment protocols:a decoupled approach[J]. Acm Transactions on Intelligent Systems and Technology, 2013, 4(2):1-25. http://cn.bing.com/academic/profile?id=2055419109&encoded=0&v=paper_preview&mkt=zh-cn [4] 董孟高, 毛新军, 常志明, 等. 自适应多Agent系统的运行机制和策略描述语言SADL[J]. 软件学报, 2011, 22(4):609-624. doi: 10.3724/SP.J.1001.2011.03762 DONG Meng-gao, MAO Xin-jun, CHANG Zhi-ming, et al. Running mechanism and strategy description language SADL for self-adaptive MAS[J]. Journal of Software, 2011, 22(4):609-624. doi: 10.3724/SP.J.1001.2011.03762 [5] MINSKY N H, ROZENSHTEIN D. A law-based approach to object-oriented programming[C]//Proceedings on Object-Oriented Programming Systems, Languages and Applications. New York, NY, USA:Applied Intelligence, 1987:482-493. [6] MINSKY N H, UNGUREANU V. Law-governed interaction:a coordination and control mechanism for heterogeneous distributed systems[J]. ACM Transactions on Software Engineering Methodology, 2000, 9(3):273-305. doi: 10.1145/352591.352592 [7] FORNARA N, COLOMBETTI M. Specifying and enforcing norms in artificial institutions:a retrospective review[C]//Proceedings of the 9th International Workshop on Declarative Agent Languages and Technologies. Taipei, Taiwan, China:Springer, 2012:117-119. [8] EI-MENSHAWY M, BENTAHAR J. Reducing model checking commitments for agent communication to model checking ARCTL and GCTL[J]. Autonomous Agents and Multi-Agent Systems, 2013, 27(3):375-418. doi: 10.1007/s10458-012-9208-7 [9] YOLUM A P. Constraint satisfaction as a tool for modeling and checking feasibility of multiagent commitments[J]. Applied Intelligence, 2013, 39(3):489-509. doi: 10.1007/s10489-013-0428-6 [10] DOUGHERTY D J, FISLER K, KRISHNAMURTHI S. Obligations and their interaction with programs[C]//Proceedings of 12th European Symposium on Research in Computer Security. Dresden, Germany:Springer, 2007:375-389. [11] CRAVEN R, LOBO J, MA J, et al. Expressive policy analysis with enhanced system dynamicity[C]//Proceedings of the 4th International Symposium on Information, Computer, and Communications Security. New York, USA:Association for Computing Machinery, 2009:239-250. [12] ELRAKAIBY Y, CUPPENS F, CUPPENS-Boulahia N. Formalization and management of group obligations[C]//IEEE International Symposium on Policies for Distributed Systems and Networks. London, England:Springer, 2009:158-165. [13] 吴丹, 危胜军. 基于模型检测的策略冲突检测方法[J].电子科技大学学报, 2013, 42(5):745-748. http://www.cnki.com.cn/Article/CJFDTOTAL-DKDX201305020.htm WU Dan, WEI Sheng-jun. Policy conflict detection method based on model checking[J]. Journal of University of Electronic Science and Technology of China, 2013, 42(5):745-748. http://www.cnki.com.cn/Article/CJFDTOTAL-DKDX201305020.htm [14] CHRISTEL B, JOOST-PIETER K. Principles of model checking[M].[S.l.]:MIT Press, 2008. [15] ZHANG Tao, HUANG Shao-bi, HUANG Hong-tao. Specification and verification of policy using raise and model checking[C]//International Conference on International Conference on BioMedical Engineering and Informatics. Shanghai, China:[s.n.], 2011.