法律状态公告日
法律状态信息
法律状态
2017-12-19
授权
授权
2015-06-24
实质审查的生效 IPC(主分类):G06F17/50 申请日:20150127
实质审查的生效
2015-05-27
公开
公开
技术领域
本发明属于Petri网的模型检测技术领域,尤其涉及一种基于MSVL的Petri 网模型检测方法。
背景技术
作为图形化和形式化的工具,Petri网被广泛的应用于建模和分析离散事件 系统。Petri网的图形能够将复杂的需求直观地表达出来,而模糊的文本描述或 者晦涩的数学符号则不能。除此之外,利用Petri网的数学理论能够对系统模型 的一些性质(例如可达性、安全性和活性)进行形式化分析。现有的Petri网分 析方法包括覆盖树方法、网化简方法和网展开方法等。除此之外,针对Petri 网现已提出多种模型检测方法,例如偏序模型检测、符号模型检测和限界模型 检测。这些方法可以验证用线性时序逻辑(LTL)和计算树逻辑(CTL)描述 的性质。虽然这两个逻辑能描述很广泛的性质,但是仍然难以满足实际应用的 需要。这是因为它们的描述能力都不是完全正则的。Petri网有顺序语意、并行 语意和最大并行语意等多种语意,然而现有的模型检测方法通常只验证顺序语 意的性质。因此,目前难以充分验证Petri网各种语意的完全正则性质。
投影时序逻辑(PTL)是区间时序逻辑(ITL)的扩展,可以用于描述和验 证并发系统。命题投影时序逻辑(PPTL)不仅具有完全正则表达能力,而且擅 长描述顺序和迭代行为。建模、仿真和验证语言(MSVL)是PTL的可执行子 集,不仅包含顺序语句、条件语句和循环语句,还具备并行语句和等待语句。 作为形式化程序设计语言,MSVL不但可以像一般的命令式程序设计语言一样 执行,而且可以像Promela语言一样建模并行系统,还可以利用统一模型检测 方法对PPTL描述的系统性质进行验证。除此之外,目前MSVL的支持工具 MSV已经实现,可以对MSVL程序进行仿真、建模和验证。
发明内容
本发明的目的在于提供一种基于MSVL的Petri网模型检测方法,旨在解 决现有的Petri网模型检测方法难以充分验证各种语意的完全正则性质的问题。
本发明的目的在于提供一种基于MSVL的Petri网模型检测方法,该基于 MSVL的Petri网模型检测方法首先利用现有的建模工具Workcraft建立Petri 网系统模型,然后使用转换工具PN3MSVL和PN4MSVL将Petri网系统转换成 顺序等价、并行等价或最大并行等价的MSVL程序;最后利用现有的MSVL 支持工具MSV对生成的MSVL程序进行仿真、建模和验证。
进一步,该基于MSVL的Petri网模型检测方法包括以下步骤:
步骤一:利用建模工具Workcraft建立Petri网系统模型;
步骤二:利用转换工具PN3MSVL和PN4MSVL将Petri网系统转换成顺序 等价、并行等价或最大并行等价的MSVL程序;
步骤三:利用MSVL支持工具MSV对生成的MSVL程序进行仿真、建模 和验证。
进一步,Workcraft、PN3MSVL、PN4MSVL和MSV已经集成到工具集 MSVToolkit中。
进一步,步骤二中PN3MSVL实现了顺序语意指导的转换;首先通过解析 g文件来构造Petri网系统Z=(P,T,W,M0),g文件由Workcraft建模生成;然后 将Z转换为顺序等价的MSVL程序并将显示在MSVToolkit的文本框内:
其中对每个变迁t∈T,gt≡∧q∈Pvq≥wqt和对每个库 所q∈P,mq=M0(q)是自然数;对每个库所wqt=W(q,t)和wtq=W(t,q)都是 自然数;另外,gT≡∨t∈Tgt。
进一步,步骤二中PN4MSVL实现了并行语意指导的转换和最大并行语意 指导的转换;首先通过解析g文件来构造安全的Petri网系统Z=(P,T,W,M0),g 文件由Workcraft建模生成;然后将Z转换为并行等价的MSVL程序或最大 并行等价的MSVL程序并将程序显示在MSVToolkit的文本框内:
其中gT的定义与MSVL程序中的相同,
进一步,步骤三中利用工具MSV分别对和进行仿真、建模和验 证。
进一步,利用MSV分别仿真执行和从而得到Z的一个最小步 字、步字和最大步字。
进一步,利用MSV分别构造和的范式图,从而得到Z在顺序语 意、并行语意和最大并行语意下的状态空间。
进一步,利用MSV分别验证和是否满足PPTL公式描述的完全 正则性质,从而判断Z的顺序语意、并行语意和最大并行语意是否满足该性质。
本发明实现了转换工具PN3MSVL和PN4MSVL,并将它们集成到工具集 MSVToolkit。PN3MSVL包含三个模块:Petri网系统获取模块、顺序语意指导 的转换模块和MSVL程序输出模块;PN4MSVL包含四个模块:Petri网系统获 取模块、并行语意指导的转换模块、最大并行语意指导的转换模块和MSVL程 序输出模块。利用PN3MSVL和PN4MSVL可以将Petri网系统转换为顺序等价 的MSVL程序、并行等价的MSVL程序和最大并行等价的MSVL程序。通过 MSV对生成的MSVL程序进行仿真、建模和验证,从而实现对Petri网各种语 意的分析和验证。因此,本发明解决了现有的Petri网模型检测方法难以充分验 证各种语意的完全正则性质的问题。
附图说明
图1是本发明实施例提供的基于MSVL的Petri网模型检测方法流程图;
图2是本发明实施例提供的工具集MSVLToolkit的用户界面。MSVLToolkit 不但集成了转换工具PN3MSVL和PN4MSVL,还包含Petri网系统的现有建模 工具Workcraft和MSVL的现有支持工具MSV。该图下部是利用PN3MSVL转 换实施例中的Petri网系统Z生成的MSVL程序
图3是本发明实施例提供的安全的Petri网系统Z;
图4是本发明实施例提供的利用工具PN4MSVL转换网系统Z生成的MSVL 程序
图5是本发明实施例提供的利用工具PN4MSVL转换网系统Z生成的MSVL 程序
图6是本发明实施例提供的利用工具MSV对程序的仿真结果;
图7是本发明实施例提供的利用工具MSV对程序和的仿真结果;
图8是本发明实施例提供的利用工具MSV对程序的建模结果;
图9是本发明实施例提供的利用工具MSV对程序的建模结果;
图10是本发明实施例提供的利用工具MSV对程序的建模结果;
图11是本发明实施例提供的利用工具MSV对程序验证性质时输出的反 例路径;
图12是本发明实施例提供的利用工具MSV对程序验证性质时输出的反 例路径。
具体实施方式
下面结合附图及具体实施例对本发明的应用原理作进一步描述。
现有工具MSV中的MSVL统一模型检测方法可以验证MSVL程序是否满 足PPTL公式描述的完全正则性质。基于MSVL的Petri网模型检测方法为了利 用工具MSV来验证Petri网的完全正则性质,需要将Petri网转换成等价的 MSVL程序。
Petri网是三元组N=(P,T,W),其中P和T是两个有限非空且不相交的集合, 分别称作库所集合和变迁集合;W:(P×T)∪(T×P)→N0是库所和变迁之间有权值 的流关系,N0表示自然数集合;Petri网的图形表示中库所和变迁分别使用正方 形节点和圆形节点表示,流关系则用节点之间的有向边表示;由节点x指向y的 边上标注的数字是边的权值W(x,y);边的权值为1,则省略标注;对x∈P∪T, 是x的前置集,表示x的后置集,是 x的因果集;
Petri网N=(P,T,W)的标识M为P的多重集;M(p)>0,则称在标识M下库 所p是标识的,或p有M(p)个托肯,图形表示中库所p包含M(p)个黑点;M(p)≥W(p,t),则称在标识M下变迁t是使能的,记为M[t>;M[t>,则变迁t 可以执行并产生标识M',记为M[t>M',其中M'(p)=M(p)+W(t,p)-W(p,t);在标识M下没有使能的变迁,则称M是死的;步 U是T的多重集;则称在标识M下步U是使能的, 记为M[U>;M[U>,则步U可以执行并产生标识M',记为M[U>M',其中
Petri网系统是四元组Z=(P,T,F,M0),其中(P,T,F)是Petri网,M0是Petri 网系统的初始标识;存在标识M1,M2,...,Mn满足M0[U1>M1[U2>...Mn-1[Un>Mn,则 称λ=U1U2...Un是步序列;最小步序列或最大步序列是只含最小步或最大步的步 序列;M0[λ>M表示从标识M0开始执行步序列λ并最终到达标识M;存在步序 列λ满足M0[λ>M,则称标识M是可达的;每个可达标识在每个库所中放置最 多k个托肯,则称网系统是k有界的(k-bounded);若k=1,则称网系统是安 全的。
若存在步序列λ=U1U2...Un满足M0[U1>M1[U2>...[Un>Mn,而且M是死标识, 则称有限序列α=M0M1...Mn是Σ的有限步字;若存在步序列λ=U1U2...满足 M0[U1>M1[U2>...,则称无限序列α=M0M1...是Σ的无限步字;以上两种情况中, 称α由λ导出;若步字α可以由最小步序列(最大步序列)导出,则称α是最小 步字(最大步字);网系统的并行语意由所有的步字构成,顺序语意(最大并 行语意)由所有的最小步字(最大步字)构成;
建模、仿真和验证语言MSVL是投影时序逻辑PTL的可执行子集;Prop是 可数的命题集合;V是可数的变量集合;B={true,false}代表布尔域;D表示所 有数据,包括整数、链表和集合。
MSVL的部分算数表达式和布尔表达式:
其中n是整数,x∈V是变量,f是函数。
MSVL的部分语句:
这里x,x1,...,xm是变量,e是算数表达式,b,b1,...,bn是布尔表达式,p,q,p1,...,pn代表MSVL程序;
表示在当前状态变量x的值等于表达式e的值,同时与x对应的命题 px置为真;x:=e表示在下一状态变量x的值等于表达式e的当前值,同时与x对 应的命题px置为真;顺序语句、条件语句以及循环语句和传统的命令式程序设 计语言相同;(b1→p1)[]...[](bn→pn)表示如果条件b1,...,bn都为假,那么程序中止, 否则任选bi为真的pi执行;p∧q表示程序p和q同时开始,并行执行,而且同时 结束;frame(x1,...,xm)表示如果没有碰到变量xi的赋值语句,那么xi的值保持不 变;skip表示区间上的单位时间,empty表示空操作;
集合V∪Prop上的状态s是二元组对每个变量x∈V,对其赋D中 的值,或者未定义;对每个命题p∈Prop赋真假值;区间σ=<s0,...,sn>是状态序 列,该序列可以是有限的,也可以是无限的;MSVL程序的最小模型由区间表 示;对每个MSVL程序,都可以构造一个图形,即范式图(NFG);它可以显 式地刻画MSVL程序的所有状态空间,并包含MSVL程序的所有最小模型;
命题投影时序逻辑(PPTL)具有完全正则表达能力,它的语法定义如下: 其中p∈Prop,Prop是可数原子命题集合; O、+和prj是基本时序操作符。PPTL的部分衍生公式:
Petri网系统的顺序语意(并行语意、最大并行语意)满足PPTL公式,当 且仅当顺序语意(并行语意、最大并行语意)中的每个步字都满足该公式;MSVL 程序满足PPTL公式,当且仅当该程序的每个最小模型都满足该公式;Petri网 系统Z=(P,T,W,M0)与包含变量{vq|q∈P}的MSVL程序是顺序等价的(并行等价 的、最大并行等价的),当且仅当对Z的每个最小步字(步字、最大步字)M0M1..., 该程序有最小模型<s0,s1,...>,满足对于h≥0,反之亦然;
本发明一种基于MSVL的Petri网模型检测方法是这样实现的,该基于 MSVL的Petri网模型检测方法首先利用建模工具Workcraft建立Petri网系统模 型,然后将该模型转换成等价的MSVL程序,为此本发明给出了分别由Petri 网系统的顺序语意、并行语意和最大并行语意指导的三种转换方法,并将它们 实现为转换工具PN3MSVL和PN4MSVL;本发明利用MSVL现有的支持工具 MSV对所述转换工具生成的MSVL程序进行仿真、建模和验证,从而实现对 Petri网系统各种语意的分析和验证;本发明解决了现有的Petri网模型检测方法 难以充分验证各种语意的完全正则性质的问题。
如图1所示,本发明一种基于MSVL的Petri网模型检测方法包括以下步 骤:
步骤一(S101):用建模工具Workcraft建立Petri网系统模型;
步骤二(S102):利用转换工具PN3MSVL和PN4MSVL将给定的Petri 网系统转换成顺序等价、并行等价或最大并行等价的MSVL程序;
步骤三(S103):利用MSVL的支持工具MSV对生成的MSVL程序进行 仿真、建模和验证;
进一步,Workcraft、PN3MSVL、PN4MSVL和MSV已经集成到工具集 MSVToolkit中;
进一步,步骤二中的PN3MSVL包含三个模块,Petri网系统获取模块、顺 序语意指导的转换模块和MSVL程序输出模块。
Petri网系统获取模块通过解析g文件来构造Petri网系统Z=(P,T,W,M0)。 其中,g文件由Workcraft建模生成。
顺序语意指导的转换模块将Z转换为如下所示的顺序等价的MSVL程序 并由MSVL程序输出模块将显示在MSVToolkit的文本框内:
其中对每个变迁t∈T,gt≡∧q∈Pvq≥wqt和对每个库 所q∈P,mq=M0(q)是自然数;对每个库所wqt=W(q,t)和wtq=W(t,q)都是 自然数;另外,gT≡∨t∈Tgt;MSVL程序中对每个库所q∈P有变量vq,该变量 用于记录库所q中的托肯数量;变量vq按照M0(q)进行初始化,并置于区间框架 语句中;vq的值在没有碰到vq的赋值语句的时候不断地继承到下一状态;针对 每个变迁t∈T,根据其使能规则和执行规则分别构造MSVL布尔表达式gt和 MSVL语句除此之外,引入布尔表达式gT,在当前标识下有使能变迁,则 gT成立,否则不成立;模拟Z的顺序语意,即每次随机选择一个使能变迁执 行,直到Z到达死标识;
进一步,步骤二中的PN4MSVL包含四个模块,安全的Petri网系统获取模 块、并行语意指导的转换模块、最大并行语意指导的转换模块和MSVL程序输 出模块。
安全的Petri网系统获取模块通过解析g文件来构造安全的Petri网系统 Z=(P,T,W,M0)。其中,g文件由Workcraft建模生成。
并行语意指导的转换模块将Z转换为如下所示的并行等价的MSVL程序 并由MSVL程序输出模块将显示在MSVToolkit的文本框内。
其中和另外, gT的定义和中的一样;MSVL程序中对每个库所q∈P有变量vq,该变量用 于记录库所q中的托肯数量;对每个变迁t∈T有变量vt,该变量用于标记变迁t 是否在当前标识下执行;因为原模型限定为安全的网系统,所以每个变迁同时 最多执行一次;vt的值为1则表示t在当前标识下执行,vt的值为0则表示不执 行;所有值为1的变量vt对应的变迁t组成当前标识下执行的使能步;布尔表达 式g1和g2分别确保每次随机选择的步是非空的和使能的;语句τP描述的是执行 一步对每个库所的影响;模拟Z的并行语意,即每次随机地选择一个使能步 执行,直到Z到达死标识;
最大并行语意指导的转换模块将Z转换为如下所示的最大并行等价的 MSVL程序并由MSVL程序输出模块将显示在MSVToolkit的文本框内。
其中g1与g2的定义和中的一样;模拟Z 的最大并行语意,即每次随机地选择一个最大使能步执行,直到Z到达死标识; if条件语句中增加的布尔表达式g3确保每次随机选择的步都是当前标识下的最 大步;
进一步,步骤三利用MSV的仿真模块分别执行和从而得到Z的 一个最小步字、步字和最大步字;
利用MSV的建模模块分别生成和的范式图,从而得到Z在顺序 语意、并行语意和最大并行语意下的状态空间;
利用MSV的验证模块分别验证和是否满足PPTL公式描述的完 全正则性质,从而判断Z的顺序语意、并行语意和最大并行语意是否满足该性 质。
实施例1:
本发明实现了转换工具PN3MSVL和PN4MSVL,并将它们集成到了工具 集MSVToolkit中,如图2所示;除此之外,该MSVToolkit还包含Petri网系 统的现有建模工具Workcraft和MSVL的现有支持工具MSV;方便起见,在 PN3MSVL和PN4MSVL的实际转换中对每个库所q(变迁t)引入同名变量q(t) 而非变量vq(vt);
如图3所示,其为该实施例中的Petri网系统Z;该实施例展示如何利用工 具MSV对Petri网系统的各种语意进行仿真、建模和完全正则性质的验证;
具体步骤:
步骤一:
点击MSVToolkit的按钮Workcraft调用Petri网系统的建模工具Workcraft 建立Z的模型,并将它保存到1.g文件中;
步骤二:
点击按钮Input选择1.g文件,点击按钮Output选择MSVL程序的输出路 径;
点击按钮PN3MSVL,调用转换工具PN3MSVL:首先Petri网系统获取模 块解析1.g文件构造Petri网系统Z,然后顺序语意指导的转换模块将Z转换成 顺序等价的MSVL程序最后MSVL程序输出模块将显示到MSVToolkit 的文本框,如图2下部所示;
勾选选项Safe Petri Net,点击按钮PN4MSVL调用转换工具PN4MSVL: 首先Petri网系统获取模块解析1.g文件构造安全的Petri网系统Z,然后并行语 意指导的转换模块将Z转换成并行等价的MSVL程序最后MSVL程序输 出模块将显示到MSVToolkit的文本框,如图4所示;
勾选选项Safe Petri Net和Max-step,点击按钮PN4MSVL调用转换工具 PN4MSVL:首先Petri网系统获取模块解析1.g文件构造安全的Petri网系统Z, 然后最大并行语意指导的转换模块将Z转换成最大并行等价的MSVL程序最后MSVL程序输出模块将显示到MSVToolkit的文本框,如图5所示;
步骤三:
点击按钮MSV调用MSVL的仿真、建模和验证工具MSV,将生成的MSVL 程序和分别输入到MSV中;
点击MSV的按钮Simulation调用仿真模块对MSVL程序和分别 进行仿真执行,得到Z的一个最小步字、步字和最大步字;如图6所示,程序的仿真执行得到Z的最小步字M0M1M2M3M4,其中M0={p0},M1={p1,p2}, M2={p1,p4},M3={p3,p4},M4={p5};如图7所示,程序和的仿真执行得 到Z的同一个步字(也是最大步字)M0M1M3M4;
点击MSV的按钮Modeling调用建模模块对MSVL程序和分别 进行建模生成其范式图,如图8-10所示;这些范式图分别展示Z在顺序语意、 并行语意和最大并行语意中的状态空间,分别包含Z在这些语意中所有步字;
点击MSV的按钮Verification调用验证模块验证MSVL程序和是 否满足性质(len2∧◇Q)+;true,其中Q定义为p4=1;该PPTL公式表示:存在n∈N0使得对每个0≤m≤n,性质Q在第2*m个到第2*(m+2)中的某个状态上成立;针 对程序和工具MSV分别输出了不满足该性质的执行路径(称反例路径), 如图11和12所示,因此和都不满足该性质;进而可知,Z的顺序语意和 并行语意都不满足该性质;工具MSV对MSVL程序验证该性质的结果是满 足,进而可知Z的最大并行语意满足该性质。
与现有技术相比,本发明具有如下优点以及显著效果:
可以利用MSVL的支持工具MSV分析Petri网系统的顺序语意、并行语 意和最大并行语意;
可以利用工具MSV验证Petri网系统顺序语意、并行语意和最大并行语 意的完全正则性质,而现有的Petri网模型检测技术难以充分验证各种语意的完 全正则性质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发 明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明 的保护范围之内。
机译: 一种基于实时模型的结构异常检测方法
机译: 一种基于实时模型的结构异常检测方法
机译: 一种基于实时模型的结构异常检测方法