一种基于行为树的分布式系统行为仿真分析工具的实现方法

文档序号:10655638阅读:299来源:国知局
一种基于行为树的分布式系统行为仿真分析工具的实现方法
【专利摘要】本发明公开了一种基于行为树的分布式系统行为仿真分析工具的实现方法:建立典型的行为树元素所对应图元的图形符号,设计实现对XML文档表述的行为树模型的仿真功能,设计实现基于XML的行为树模型的遍历算法,给出用户定义“行为在时间代价内是否可达性验证”的输入接口,设计用于记录遍历时间代价的变量,实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数。通过本发明的方法可实现基于行为树的图形化仿真分析工具,采用该方法实现的工具可实现系统建模,并为分布式系统的交互逻辑合理性、实时性和可靠性分析提供方法,具有模型简单、描述能力强、准确全面的特点。
【专利说明】
一种基于行为树的分布式系统行为仿真分析工具的实现方法
技术领域
[0001]本发明涉及系统建模与仿真分析技术领域,具体涉及分布式系统行为的形式化建模与分析工具的实现方法。
【背景技术】
[0002]随着计算机技术及通信技术的发展,各类装置的处理能力不断增强,它们除了处理本身的任务外还可为临近的其它装置提供服务,实现分布式功能。分布式系统可简化系统结构、提供系统综合应用信息的能力、从而提高系统的智能特性,分布式系统已成为工业领域的研究热点。
[0003]随着工业自动化技术的发展,分布式系统的应用越来越广泛。分布式系统一般需要通过多个的装置通过协作交互完成整体的分布式功能。在对装置间的配合关系进行分析前直接投入使用,可能会导致严重的系统故障。为了对分布式系统中多个装置协作交互的逻辑合理性、实时性和可靠性进行分析并实现模型系统的仿真运行,为分布式系统设计提供指导。研发能够完成分布式系统建模与仿真分析工具具有重要意义。它能够在很大程度上降低分布式系统的运行风险,缩短开发周期。
[0004]目前多数形式化分析工具对系统行为的建模过程十分复杂,不便于实现对分布式设备及其由其构成的分布式系统行为的建模与仿真分析。工程领域急需一种模型简单、描述能力强、易于实现系统仿真运行与验证分析的工具,以便对分布式系统的设计提供更全面准确的评价。
[0005]行为树模型具有较强的设备和系统行为建模能力,且具有严格的形式语义和良好的层次特性,可采用图形化的方法方便地实现装置及由其构成的分布式系统的建模与分析。但是,由于目前该模型方法的应用建模仿真领域尚处于起步阶段,目前已有的行为树仿真工具多仅能对简单的需求模型进行仿真运行与验证,无法完成复杂分布式系统中同步、状态、实时性和概率特性等问题描述和分析,尚缺乏基于行为树的分布式系统行为仿真分析工具,因此研究一种用于指导此类工具实现的方法具有重要意义。

【发明内容】

[0006]本发明要解决的技术问题是提供一种基于行为树的分布式系统行为仿真分析工具的实现方法,适用于指导实现分布式系统的形式化建模与仿真分析工具的实现,通过该方法可实现基于行为树的图形化仿真分析工具,采用该方法实现的工具可实现系统建模,并为分布式系统的交互逻辑合理性、实时性和可靠性分析提供方法,具有模型简单、描述能力强、易于实现系统仿真运行与验证分析、准确全面的特点。
[0007]为解决上述技术问题,本发明所采取的技术方案如下。
[0008]—种基于行为树的分布式系统行为仿真分析工具的实现方法,建立典型的行为树元素所对应图元的图形符号,每种图元设计两种颜色用于区分当前运行节点和非运行节点,定义各图元的属性及其取值范围,并给定各图元的XML节点;设计实现对XML文档表述的行为树模型的仿真功能,给出行为树定义的模型搜索策略;设计实现基于XML的行为树模型的遍历算法,并实现指定行为的可达性验证;给出用户定义“行为在时间代价内是否可达性验证”的输入接口,设计用于记录遍历时间代价的变量,在遍历中计算该时间代价,并实现指时间定代价下用户指定行为的可达性验证;实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数。
[0009]作为本发明的一种优选技术方案,该方法包括如下步骤:
步骤1:建立行为树元素所对应图元的图形符号,每种图元设计两种颜色用于区分当前运行节点和非运行节点,定义各图元的属性及其取值范围,并给定各图元的XML节点。
[0010]步骤2:设计基于GEF的图形编辑接口,使用户能够自由从给定的图元中选择若干图元进行组合以完成分布式系统的图形模型设计;
步骤3:将用户设计的图形模型转化为用XML文档表述的行为树模型,设计保存功能,按需将转化模型保存为XML文件;
步骤4:设计实习XML模型文件的打开功能,根据XML文档恢复原行为树图形模型;
步骤5:设计实现对XML文档表述的行为树模型的仿真功能,给出行为树模型的搜索策略;
步骤6:定义运行轨迹的链表结构及其记录方法,用于记录系统的仿真运行轨迹及变量取值;根据系统的运行轨迹给出基于行为树图形模型的动画演示;
步骤7:设计实现基于XML的行为树模型的遍历算法,实现指定行为的可达性验证;
步骤8:实现系统模型的死锁验证方法,实现系统的死锁验证;
步骤9:给出用户定义“行为在时间代价内是否可达性验证”的输入接口,设计用于记录遍历时间代价的变量,在遍历中计算该时间代价,并实现指时间定代价下用户指定行为的可达性验证;
步骤10:设计用于记录遍历时间代价的变量,在遍历中计算指定行为的最小时间代价;步骤11:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口,给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量;
步骤12:设计实现模型中行为定义的外部java编程接口,使仿真工具能够调用用户自定义的函数。
[0011]作为本发明的一种优选技术方案,所述步骤2包含以下步骤:
步骤2-1:设计基于GEF的图形编辑接口,图形编辑接口允许用户从给定的图元中通过鼠标拖拽实现图形模型编辑,并通过点击图元对其属性进行设置,拖入图元后仿真工具记录该元素到图元数组中;
步骤2-2:设计实现图形中图元间的连接关系,图元间的父子关系可通过将图元连接在一起实现设置,两个图元连接后仿真工具记录该连接关系到连接关系数组中。
[0012]作为本发明的一种优选技术方案,所述步骤5包含以下步骤:
步骤5-1:将模型所对应的XML文档读入内存,从行为树的root类型节点开始扫描,根据其节点的控制类型决定待扫描的下一节点,运行中利用行为链表记录已发生的原子行为序列;
步骤5-2:若节点的控制类型为顺序关系,则将其下的所有子节点放入待扫描队列; 步骤5-3:若节点的控制类型为一般选择关系,则检查其子节点的原子行为是否在已运行的原子行为序列中;若有一个子行为的原子行为在序列中,则选择该子树执行;若多个子行为的第一个原子行为都在已运行的序列中,则选择其原子行为先发生的子行为执行;若所有子行为的第一个原子行为均未发生,则该行为的执行陷入阻塞状态;
步骤5-4:若节点的控制类型为条件选择关系,则需要检查状态面板中变量的取值状态是否满足条件,满足条件执行相应的行为,不满足条件则执行其它相应行为;
步骤5-5:若节点的控制类型为并行关系,则同时启动多个线程分别运行其多个子节点,多个子节点中相同名称的事件要同步运行;
步骤5-6:若节点的类型为原子行为,则直接执行相应的原子行为动作;
步骤5-7:每一步均需记录状态面板中变量的变化。
[0013]作为本发明的一种优选技术方案,所述步骤7包含以下步骤:
步骤7-1:针对用户指定的行为,对父节点的可达性进行验证,并对父节点执行情况下执行该行为的可达性进行验证;
步骤7-2:若待验证行为的父节点不是root节点,则重复步骤7-1直到root节点,并输出指定行为的可达性及其可达路径中的一条。
[0014]作为本发明的一种优选技术方案,所述步骤8包含以下步骤:
步骤8-1:按照步骤7的思路,若在外界条件变化的情况下存在不可达的行为,则认定系统中存在死锁;
步骤8-2:按照步骤7的思路,若系统运行中存在死循环,则认定系统中存在死锁。
[0015]作为本发明的一种优选技术方案,所述步骤9包含以下步骤:
步骤9-1:给出用户定义“行为在时间代价内是否可达性验证”的输入接口,接收用户输入的验证目标及时间代价;
步骤9-2:从root开始运行,对于可能出现的各种情况进行仿真运行并记录运行所用时间,若在指定时间内未到达指定目标,则提前终止该仿真路径,进行其它的路径尝试;
步骤9-3:若找到一条符合条件的运行路径,则终止运行,输出该路径;若搜索完所有可能的路径仍未找到符合条件的路径,则输出目标不可达。
[0016]作为本发明的一种优选技术方案,所述步骤10包含以下步骤:
步骤10-1:当系统中到达某一目标的路径唯一,按照尽快执行的原则,即并行处理中各个线程中的行为尽快启动且延时行为尽量并行运行,对系统进行仿真运行,计算其运行的时间代价,并记录到相应的数组中;
步骤10-2:当系统中到达某一目标的路径很多,乃至存在无限循环的情况,则需要对所有路径进行计算,若在指定时间内未到达指定目标,则提前终止该路径的计算。
[0017]作为本发明的一种优选技术方案,所述步骤11包含以下步骤:
步骤11-1:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口;
步骤11-2:给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量。
[0018]作为本发明的一种优选技术方案,所述步骤12包含以下步骤:
步骤12-1:设计实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数; 步骤12-2:设计提供动态链接库的调用接口,运行用户在原子行为中调用的动态链接库中的函数;
步骤12-3:提供运行结果的传输方法,自定义函数的运行结果要指定传输到状态面板中的变量;
步骤12-4:在对XML模型进行仿真运行的过程中,若遇到采用用户自定义函数定义的原子行为,则调用该自定义函数并将结果记录到状态面板中。
[0019]采用上述技术方案所产生的有益效果在于:本发明用于指导实现分布式系统的形式化建模与仿真分析工具的实现,通过该方法可实现基于行为树的图形化仿真分析工具,采用该方法实现的工具可实现系统建模,并为分布式系统的交互逻辑合理性、实时性和可靠性分析提供方法,具有模型简单、描述能力强、易于实现系统仿真运行与验证分析、准确全面的特点。本发明的方法不仅能够指导基于行为树的分布式系统图形化建模工具的实现、还能指导所建模型的仿真运行与模型中可达性、实时性和可靠性的验证分析。方法采用java语言及Eclipse的GEF插件开发图形编辑器,并可对图形所对应的行为树模型进行遍历仿真和计算分析,因此本发明可对模型仿真软件设计提供指导,对分布式系统的工程设计具有重要意义。
【附图说明】
[0020]图1为模型仿真工具中行为树基本图元的示意图。
[0021]图2为在给定图元的基础上按需建立的系统行为树模型。
[0022]图3为图2所示行为树模型转化后的XML文档结构图。
【具体实施方式】
[0023]实施例1、本发明的主体实施步骤。
[0024]本发明所述方法的基本思路是,首先提供一种行为树图形编辑器,用于采用图形化的方法建立装置及系统的模型;将系统模型转化为XML文档,文档中包含模型中的所有节点及其相互关系;对XML文档进行搜索和仿真,根据行为树的控制逻辑选择执行路径,同时在执行过程中假定被搜索的过程即行为的执行过程,并对执行后的结果进行记录。在需要对模型进行可达性、实时性和可靠性分析时,需要采用固定的搜索策略(深度优先或广度优先等算法)来验证是否模型中的每个节点均可达,并输出相应的验证结果,为分布式系统设计提供帮助;其主体实施步骤包括:
步骤1:建立典型的行为树元素所对应的图元、设计基于GEF的图形编辑接口,让用户可以自由进行模型设计;
步骤2:将用户设计的图形模型转化为用XML文档表述的行为树模型;
步骤3:实现对XML文档表述的行为树模型的仿真功能,其仿真执行逻辑参照行为树的定义,并记录相应的仿真执行结果;
步骤4:设计实现基于XML的行为树模型的遍历算法,用于验证特定行为的可达性及实时性和可靠性等问题的计算;
步骤5:实现用户仿真验证的输入和输出接口。
[0025]其中,步骤I包括以下步骤: 步骤11:给出行为树的基本元素所对应的图元(包括一种叶子节点和条件选择、事件选择、顺序及并发等四种子树及一个状态面板),用于完成分布式系统的装置及系统行为建模。
[0026]步骤12:采用java语言及GEF插件完成基于上述图元的图形编辑器,为用户提供可自由编辑的建模环境。
[0027]其中,步骤2包括如下步骤:
步骤21:根据行为树中相关图元的定义建立行为树模型的XML约束,并生成相关XSD文件。
[0028]步骤22:根据用户所绘制的行为树模型,将用户所建模型中的图元一一对应到XML元素上,实现模型图到XML文件的转换。
[0029]其中,步骤3包括以下步骤:
步骤31:采用JDOM对XML模型文件进行读取和解析,识别其中的各类行为树节点。
[0030]步骤32:从XML所描述的行为树模型中的根节点开始仿真执行行为树模型,根据根节点的类型控制其后续执行路径(节点与执行路径间的对应关系需要参照行为树中基本元素的定义)。
[0031]其中,步骤4包括以下步骤:
步骤41:按深度优先算法建立行为树模型中各行为的可达性验证方法,并采用java语言对其进行实现。
[0032]步骤42:实现深度优先搜索算法,计算从根节点开始仿真运行到某个节点的最短时间,并将其记录到内置的数组中。
[0033]步骤43:实现广度优先搜索算法,计算从根节点到任意节点的全局可靠性,并将其记录到内置的数组中。
[0034]其中,步骤5包括以下步骤:
步骤51:采用java语言实现用户仿真验证接口,该接口用于接收用户仿真运行或验证指令,在验证指令中增加设定验证目标的对话框。
[0035]步骤52:实现仿真及验证输出接口,用于向用户输出特定目标的运行结果。
[0036]实施例2、本发明的详细实施步骤。
[0037]下面结合附图,对本发明的优选实施方式作详细说明。
[0038]本发明的目标是提供一种基于行为树的分布式系统行为仿真分析工具的实现方法,以解决基于行为树模型的仿真验证工具的实现问题。模型仿真工具要提供的是图形化的建模接口,首先需要给出行为树的基本图元,如图1所示,另外还需要通过说明的方式给出各种图元的用法及其相互关系。在给定图元的基础上,用户可根据系统实际建立系统的行为树模型,示例模型如图2所示。仿真工具要对模型进行仿真和验证分析,系统需要将图形化的模型转化为XML文档结构,以便程序对模型进行仿真运行与验证分析,将图2中的行为树模型转化为XML文档后如图3所示。在图3所示XML文档的基础上可根据行为树的定义,进行仿真运行与分析验证。仿真运行与分析验证设计需要设计相应的搜索方法。
[0039]本发明基于行为树的分布式系统行为仿真分析工具的实现方法,其详细实施步骤如下:
步骤1:建立典型的行为树元素所对应图元的图形符号,每种图元设计两种颜色用于区分当前运行节点和非运行节点,属性及其取值范围,并给定各图元的XML节点。
[0040]步骤2:设计基于GEF的图形编辑接口,让用户可以自由从给定的图元中选择若干图元进行组合以完成分布式系统的模型设计。
[0041]步骤3:将用户设计的图形模型转化为用XML文档表述的行为树模型;并设计保存功能,例如保存模型为Sysl.XML文件。
[0042]步骤4:实现模型文件的打开功能,根据XML文档恢复原行为树图形模型。
[0043]步骤5:实现对XML文档表述的行为树模型的仿真功能,给出行为树模型的搜索策略。
[0044]步骤6:定义运行轨迹的链表结构及其记录方法,用于记录系统的仿真运行轨迹及变量取值;可根据系统的运行轨迹给出基于行为树图形模型的动画演示。
[0045]步骤7:设计实现基于XML的行为树模型的遍历算法,并实现指定行为的可达性验证。
[0046]步骤8:实现系统模型的死锁验证方法,实现系统的死锁验证。
[0047]步骤9:给出用户定义“行为在时间代价内是否可达性验证”的输入接口;设计用于记录遍历时间代价的变量,在遍历中计算该时间代价,并实现指时间定代价下用户指定行为的可达性验证。
[0048]步骤10:设计用于记录遍历时间代价的变量,在遍历中计算指定行为的最小时间代价。
[0049]步骤11:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口;给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量。
[0050]步骤12:实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数。
[0051 ]其中,其中,步骤I包括以下步骤:
步骤11:建立典型的行为树元素(原子节点、条件选择、一般选择、顺序、并行和状态面板)所对应图元的图形符号,设计每种元素的属性及其取值范围;每种图元设计两种颜色用于区分当前运行节点和其它节点,用于在仿真运行中使用。
[0052 ]步骤12:建立各图元、属性与相应的XML节点、属性间的对应关系。
[0053]其中,其中,步骤2包括以下步骤:
步骤21:设计基于GEF的图形编辑接口,图形编辑接口允许用户从给定的图元中通过鼠标拖拽实现模型编辑,并可通过点击图元对其属性进行设置,拖入图元后仿真工具记录该元素到图元数组中。
[0054]步骤22:设计实现图形中图元间的连接关系,图元间的父子关系可通过将图元连接在一起实现设置,两个图元连接后仿真工具记录该连接关系到连接关系数组中。
[0055]其中,步骤3包括以下步骤:
步骤31:在图形编辑完成后,可顺序扫描图元数组及连接关系数组,并根据每个图元所对应的XML格式进行组装,形成完整的XML文档。
[0056]步骤32:点击保持模型按钮可存储模型所对应的XML文件。
[0057]其中,步骤4包括以下步骤: 步骤41:实现XML模型文件的打开功能,工具后台打开XML文件,根据XML文件中的图元及其相互关系生成模型的行为树图形表示。
[0058]步骤42:将生成的图形显示在图形编辑窗口,并根据窗体大小,调整图形在编辑窗口的位置,以便用户对模型进行编辑。
[0059]其中,步骤5包括以下步骤:
步骤51:将模型所对应的XML文档读入内存,从行为树的root类型节点开始扫描,根据其节点的控制类型决定待扫描的下一节点,运行中需要一行为链表记录已发生的原子行为序列。
[0060]步骤52:若该节点的控制类型为顺序关系,则将其下的所有子节点放入待扫描队列;
步骤53:若该节点的控制类型为一般选择关系,则检查其子节点的原子行为是否在已运行的原子行为序列中。若有一个子行为的原子行为在序列中,则选择该子树执行;若多个子行为的第一个原子行为都在已运行的序列中,则选择其原子行为先发生的子行为执行;若所有子行为的第一个原子行为均未发生,则该行为的执行陷入阻塞状态;
步骤54:若该节点的控制类型为条件选择关系,则需要检查状态面板中变量的取值状态是否满足条件,满足条件执行相应的行为,不满足条件则执行其它相应行为。
[0061]步骤55:若该节点的控制类型为并行关系,则同时启动多个线程分别运行其多个子节点,多个子节点中相同名称的事件需要同步运行。
[0062]步骤56:若该节点的类型为原子行为,则只需执行相应的原子行为动作即可。
[0063]步骤57:每一步均需记录对状态面板中的变量的变化。
[0064]其中,步骤6包括以下步骤:
步骤61:采用链表结构记录系统的运行轨迹,同时记录系统的仿真运行轨迹及其变量的取值变化;
步骤62:用户点击轨迹仿真按钮后,可根据记录的系统运行轨迹给出基于行为树图形模型的动画演示。
[0065]其中,步骤7包括以下步骤:
步骤71:针对用户指定的行为,对父节点的可达性进行验证,并对父节点执行的情况下执行该行为的可达性进行验证。
[0066]步骤72:若待验证行为的父节点不是root节点,则需要重复步骤71直到root节点,并输出指定行为的可达性及其可达路径中的一条。
[0067]其中,步骤8包括以下步骤:
步骤81:按照步骤7的思路,若在外界条件变化的情况下存在不可达的行为,则认定系统中存在死锁。
[0068]步骤82:按照步骤7的思路,若系统运行中存在死循环,则认定系统中存在死锁。
[0069]其中,步骤9包括以下步骤:
步骤91:给出用户定义“行为在时间代价内是否可达性验证”的输入接口,接收用户输入的验证目标及时间代价。
[0070]步骤92:从root开始运行,对于可能出现的各种情况进行仿真运行并记录运行所用时间,若在指定时间内未到达指定目标,则提前终止该仿真路径,进行其它的路径尝试。[0071 ]步骤93:若找到一条符合条件的运行路径,则终止运行,输出该路径;若搜索完所有可能的路径仍未找到符合条件的路径,则输出目标不可达。
[0072]其中,步骤10包括以下步骤:
步骤101:当系统中到达某一目标的路径唯一,按照尽快执行的原则(即并行处理中各个线程中的行为尽快启动,且延时行为尽量并行运行),对系统进行仿真运行,计算其运行的时间代价,并记录到相应的数组中。
[0073]步骤102:当系统中到达某一目标的路径很多时(包含有无限循环的情况),则需要对所有路径进行计算,若在指定时间内未到达指定目标,则提前终止该路径的计算。
[0074]其中,步骤11包括以下步骤:
步骤111:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口;
步骤112:给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量。
[0075]其中,步骤12包括以下步骤:
步骤121:实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数。
[0076]步骤122:提供动态链接库的调用接口,运行用户在原子行为中调用,动态链接库中的函数。
[0077]步骤123:提供运行结果的传输方法,自定义函数的运行结果需要指定传输到状态面板中的变量。
[0078]步骤124:在对XML模型进行仿真运行的过程中,若遇到采用用户自定义函数定义的原子行为,则调用该自定义函数并将结果记录到状态面板中。
[0079]依据本方法能够完成基于行为树的分布式系统仿真分析工具,所实现的工具有模型编辑、模型仿真及可达性、实时性和可靠性计算等功能,能够分布式系统的设计提供指导。同时,该方法不仅给出了工具的实现过程,还给出了仿真运行的搜索过程及验证分析相关的搜索过程。由于该工具基于行为树图形元素实现,其建模简单,可有效降低分布式系统分析的工程复杂度,对分布式系统的交互结构设计具有重要意义。
[0080]上述描述仅作为本发明可实施的技术方案提出,不作为对其技术方案本身的单一限制条件。
【主权项】
1.一种基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于:建立典型的行为树元素所对应图元的图形符号,每种图元设计两种颜色用于区分当前运行节点和非运行节点,定义各图元的属性及其取值范围,并给定各图元的XML节点;设计实现对XML文档表述的行为树模型的仿真功能,给出行为树定义的模型搜索策略;设计实现基于XML的行为树模型的遍历算法,并实现指定行为的可达性验证;给出用户定义“行为在时间代价内是否可达性验证”的输入接口,设计用于记录遍历时间代价的变量,在遍历中计算该时间代价,并实现指时间定代价下用户指定行为的可达性验证;实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数。2.根据权利要求1所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于该方法包括如下步骤: 步骤1:建立行为树元素所对应图元的图形符号,每种图元设计两种颜色用于区分当前运行节点和非运行节点,定义各图元的属性及其取值范围,并给定各图元的XML节点; 步骤2:设计基于GEF的图形编辑接口,使用户能够自由从给定的图元中选择若干图元进行组合以完成分布式系统的图形模型设计; 步骤3:将用户设计的图形模型转化为用XML文档表述的行为树模型,设计保存功能,按需将转化模型保存为XML文件; 步骤4:设计实习XML模型文件的打开功能,根据XML文档恢复原行为树图形模型; 步骤5:设计实现对XML文档表述的行为树模型的仿真功能,给出行为树模型的搜索策略; 步骤6:定义运行轨迹的链表结构及其记录方法,用于记录系统的仿真运行轨迹及变量取值;根据系统的运行轨迹给出基于行为树图形模型的动画演示; 步骤7:设计实现基于XML的行为树模型的遍历算法,实现指定行为的可达性验证; 步骤8:实现系统模型的死锁验证方法,实现系统的死锁验证; 步骤9:给出用户定义“行为在时间代价内是否可达性验证”的输入接口,设计用于记录遍历时间代价的变量,在遍历中计算该时间代价,并实现指时间定代价下用户指定行为的可达性验证; 步骤1:设计用于记录遍历时间代价的变量,在遍历中计算指定行为的最小时间代价;步骤11:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口,给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量; 步骤12:设计实现模型中行为定义的外部java编程接口,使仿真工具能够调用用户自定义的函数。3.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤2包含以下步骤: 步骤2-1:设计基于GEF的图形编辑接口,图形编辑接口允许用户从给定的图元中通过鼠标拖拽实现图形模型编辑,并通过点击图元对其属性进行设置,拖入图元后仿真工具记录该元素到图元数组中; 步骤2-2:设计实现图形中图元间的连接关系,图元间的父子关系可通过将图元连接在一起实现设置,两个图元连接后仿真工具记录该连接关系到连接关系数组中。4.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤5包含以下步骤: 步骤5-1:将模型所对应的XML文档读入内存,从行为树的root类型节点开始扫描,根据其节点的控制类型决定待扫描的下一节点,运行中利用行为链表记录已发生的原子行为序列; 步骤5-2:若节点的控制类型为顺序关系,则将其下的所有子节点放入待扫描队列; 步骤5-3:若节点的控制类型为一般选择关系,则检查其子节点的原子行为是否在已运行的原子行为序列中;若有一个子行为的原子行为在序列中,则选择该子树执行;若多个子行为的第一个原子行为都在已运行的序列中,则选择其原子行为先发生的子行为执行;若所有子行为的第一个原子行为均未发生,则该行为的执行陷入阻塞状态; 步骤5-4:若节点的控制类型为条件选择关系,则需要检查状态面板中变量的取值状态是否满足条件,满足条件执行相应的行为,不满足条件则执行其它相应行为; 步骤5-5:若节点的控制类型为并行关系,则同时启动多个线程分别运行其多个子节点,多个子节点中相同名称的事件要同步运行; 步骤5-6:若节点的类型为原子行为,则直接执行相应的原子行为动作; 步骤5-7:每一步均需记录状态面板中变量的变化。5.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤7包含以下步骤: 步骤7-1:针对用户指定的行为,对父节点的可达性进行验证,并对父节点执行情况下执行该行为的可达性进行验证; 步骤7-2:若待验证行为的父节点不是root节点,则重复步骤7-1直到root节点,并输出指定行为的可达性及其可达路径中的一条。6.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤8包含以下步骤: 步骤8-1:按照步骤7的思路,若在外界条件变化的情况下存在不可达的行为,则认定系统中存在死锁; 步骤8-2:按照步骤7的思路,若系统运行中存在死循环,则认定系统中存在死锁。7.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤9包含以下步骤: 步骤9-1:给出用户定义“行为在时间代价内是否可达性验证”的输入接口,接收用户输入的验证目标及时间代价; 步骤9-2:从root开始运行,对于可能出现的各种情况进行仿真运行并记录运行所用时间,若在指定时间内未到达指定目标,则提前终止该仿真路径,进行其它的路径尝试; 步骤9-3:若找到一条符合条件的运行路径,则终止运行,输出该路径;若搜索完所有可能的路径仍未找到符合条件的路径,则输出目标不可达。8.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤10包含以下步骤: 步骤10-1:当系统中到达某一目标的路径唯一,按照尽快执行的原则,即并行处理中各个线程中的行为尽快启动且延时行为尽量并行运行,对系统进行仿真运行,计算其运行的时间代价,并记录到相应的数组中; 步骤10-2:当系统中到达某一目标的路径很多,乃至存在无限循环的情况,则需要对所有路径进行计算,若在指定时间内未到达指定目标,则提前终止该路径的计算。9.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤11包含以下步骤: 步骤11-1:给出用户定义“行为的全局最大、最小可靠性计算”的输入接口; 步骤11-2:给出行为树模型的可靠性建模与相应的记录变量,在遍历中计算行为的全局发生可靠性并记录到相应变量。10.根据权利要求2所述的基于行为树的分布式系统行为仿真分析工具的实现方法,其特征在于所述步骤12包含以下步骤: 步骤12-1:设计实现模型中行为定义的外部java编程接口,使得仿真工具能够调用用户自定义的函数; 步骤12-2:设计提供动态链接库的调用接口,运行用户在原子行为中调用的动态链接库中的函数; 步骤12-3:提供运行结果的传输方法,自定义函数的运行结果要指定传输到状态面板中的变量; 步骤12-4:在对XML模型进行仿真运行的过程中,若遇到采用用户自定义函数定义的原子行为,则调用该自定义函数并将结果记录到状态面板中。
【文档编号】G06F17/50GK106021816SQ201610441100
【公开日】2016年10月12日
【申请日】2016年6月20日
【发明人】熊海军, 朱永利, 张琦, 王晓辉
【申请人】华北电力大学(保定)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1