一种基于Büchi自动机化简运行时验证监控器的方法与流程

文档序号:17222852发布日期:2019-03-27 12:11阅读:293来源:国知局
一种基于Büchi自动机化简运行时验证监控器的方法与流程

本发明涉及运行时验证技术领域,具体涉及一种基于büchi自动机化简运行时验证监控器的方法。



背景技术:

运行时验证(rv)是一种基于系统运行状态来检测异常发生的技术,其能够对正在运行的系统进行实时监控,一旦发现系统的行为违反某些属性规则,就会立即给予提醒或作出反应。在进行运行时验证时,监控器是对被验证系统进行检测的模块,它接收系统的运行踪迹,然后根据给定的属性,对系统行为是否满足给定属性进行检查判断,并给出一个结论。监控器在运行时验证过程中有着重要的作用,它的运行效率影响着整个系统验证的效率。

目前,监控器的构造方法有多种,其中基于自动机的监控器构造技术较为常见。büchi自动机是ω-自动机的一种,它将有限状态自动机扩展为能接受无限输入的自动机,即接受一个无限输入序列的自动机。büchi自动机是一个很好的替代和处理ω正则语言的方式,因为它们在布尔操作下是封闭的,所以它常被用在基于自动机的形式化验证方法中。在运行时验证中,使用时态逻辑描述的属性经常被转换成确定化的有穷状态自动机,büchi自动机在这个转换过程中被作为一个中间的媒介。然而,在这一转换过程中自动机的状态和迁移关系的数量非常大,会消耗大量的内存和时间,这有待进一步的化简改进。



技术实现要素:

本发明所要解决的是现有运行时验证工具javamop中以büchi自动机为基础进行验证时所存在的较大开销问题,提供一种基于büchi自动机化简运行时验证监控器的方法,其能够化简转换过程中的状态和迁移关系,减小监控开销。

为解决上述问题,本发明是通过以下技术方案实现的:

一种基于büchi自动机化简运行时验证监控器的方法,其具体包括步骤如下:

步骤1、将线性时态逻辑公式描述的属性转换为非确定büchi自动机;

步骤2、对于步骤2所得到的非确定büchi自动机的状态集合中的每个状态,判断以该状态开始时,非确定büchi自动机接受的语言是否为空:若为空,则对该状态进行冗余标记;否则,该状态不作标记;

步骤3、将步骤2所得到的有冗余标记的状态从非确定büchi自动机的状态集合中删除,得到初步简化的非确定büchi自动机;

步骤4、在步骤3所得到的初步简化的非确定büchi自动机中寻找互相满足公平模拟关系的状态对;

步骤5、对步骤4所得到的状态对进行合并,得到最终简化的非确定büchi自动机;

步骤6、将步骤5所得到的最终简化的非确定büchi自动机转化成非确定有限状态自动机,再对非确定有限状态自动机进行确定化后,得到确定性有限状态自动机;

步骤7、将步骤6所得到的确定性有限状态自动机作用于系统验证的监控器。

上述步骤1的具体过程如下:首先,将线性时态逻辑公式描述的属性转化为交错自动机;接着,将交错自动机转化成广义的büchi自动机;最后,把广义的büchi自动机转化为非确定büchi自动机。

上述步骤5在进行状态对的合并时,需要检查合并状态对后是否会改变初步简化的非确定büchi自动机接受的语言:如果接受的语言没有改变,则对该对状态对进行合并,并移除合并后多余的转移关系;否则,不进行状态对的合并。

与目前的运行时验证工具javamop相比较,本发明有益效果是:基于büchi自动机化简运行时验证中监控器的方法,该方法是在运行时验证工具javamop上做优化:先是对运行时验证过程中得到的büchi自动机的冗余状态进行判断标记,删除冗余状态;再查找büchi自动机中互相满足公平模拟关系的状态对,合并满足这一关系的状态对,并移除多余的迁移关系,且不改变自动机接受的语言。通过执行本发明中的操作,能够有效的减少自动机的内存开销,加速büchi自动机到确定性有限状态自动机的转化,使我们在对系统进行运行时验证时缩减验证开销。

附图说明

图1是一种基于büchi自动机化简运行时验证监控器的方法流程图。

图2是基于公平模拟化简自动机的例子,其中(a)是化简前的büchi自动机,(b)是化简后的büchi自动机。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照附图,对本发明进一步详细说明。

一种基于büchi自动机化简运行时验证中监控器的方法,如图1所示,其具体包括步骤:

步骤1、使用现有的javamop验证工具中的方法将ltl(线性时态逻辑)公式描述的属性转换为非确定büchi自动机。

首先,将ltl公式描述的属性转化为交错自动机;接着,将交错自动机转化成广义的büchi自动机;最后,把广义的büchi自动机转化需要的非确定büchi自动机。

步骤2、对非确定büchi自动机中的状态进行冗余标记。

使用一个判空算法查找到非确定büchi自动机中的冗余状态并进行冗余标记。对于自动机中的每个状态q∈q(q是自动机的状态集),判断以这个状态q开始时büchi自动机接受的语言是否为空:如果接受的语言为空,即f(q)=true,则对büchi自动机接受语言为空的状态进行冗余标记,表示这些状态是冗余状态,将其移除后也不会影响自动机;如果接受的语言不为空,即f(q)=false,则保留这些状态,不进行标记。

步骤3、对非确定büchi自动机中有冗余标记的状态进行移除操作,得到初步简化的非确定büchi自动机。

运用rrs算法(冗余状态移除算法)执行移除操作,输入一个büchi自动机,对于有冗余标记的状态,即f(q)=true,将其从自动机状态集合q中移除,即执行q←q\{q},循环判断执行结束后得到一个初步简化后的büchi自动机。

步骤4、将非确定büchi自动机的冗余状态移除后,再利用公平模拟的相关算法在初步简化的非确定büchi自动机中寻找互相满足公平模拟关系的状态对(p,q)。

对一个büchi自动机,公平模拟关系表示为即状态q公平模拟于q'表示为q≤fq',当且仅当对任意ω=a1a2...,存在π=qa1q1a2...使得存在π'=q'a1q'1a2...且对任意的成立使得也成立,其中,a表示自动机中的执行动作,q表示自动机中的状态,a表示自动机,表示自动机a接受的语言。在büchi自动机中找到互相满足公平模拟关系的状态对(p,q),也就是是状态p和q满足q≤fp并且p≤fq。

步骤5、对初步简化的非确定büchi自动机中的相互满足公平模拟关系的状态对(p,q)进行合并,得到最终简化的非确定büchi自动机。

在对步骤4得到的状态对执行合并操作时,需要检查合并这些状态对后是否会改变自动机接受的语言:如果自动机接受的语言没有改变,则合并互相满足公平模拟关系的状态对,同时移除合并后多余的转移关系;如果自动机接受的语言发生改变,则不能合并这些状态。

在本实施例中,通过使用jurdzinskis算法来计算büchi自动机中满足公平模拟关系的状态,得到一个互相满足公平模拟关系的状态对的集合,也就是执行步骤4得到的结果,同时jurdzinskis算法也会检查合并这些状态对是否会改变自动机接受的语言。

图2给出了基于公平模拟关系化简自动机的例子,(a)是化简前的büchi自动机,(b)是化简后的büchi自动机。在这个büchi自动机中有两对状态是相互满足公平模拟的关系,即(q1,q4)和(q8,q9),因此我们可以合并q1和q4,q8和q9。在合并了状态对(q1,q4)和(q8,q9)之后,转移关系(q1,a,q3)对自动机接受的语言是多余的,可以被移除,之后状态q3和q5是不可达状态,也可被移除。

步骤6、执行完以上步骤2-5后得到最小化的büchi自动机,然后将其转化成非确定有限状态自动机,再进行确定化得到确定性有限状态自动机。

步骤7、将步骤6所得到的确定性有限状态自动机作用于系统验证的监控器。

本发明通过在büchi自动机转化为非确定有限自动机中间添加一个化简büchi自动机的过程,得到一个最小化的büchi自动机,再将最小化的büchi自动机转化为非确定有限状态自动机,最后确定化得到确定性有限状态自动机,这时得到的确定性有限状态自动机消耗的内存空间与化简中间büchi自动机之前相比要小很多,使得运用于系统验证的监控器执行开销减少。

需要说明的是,尽管以上本发明所述的实施例是说明性的,但这并非是对本发明的限制,因此本发明并不局限于上述具体实施方式中。在不脱离本发明原理的情况下,凡是本领域技术人员在本发明的启示下获得的其它实施方式,均视为在本发明的保护之内。

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