基于偏序简化算法的无线传感网软件模型优化方法

文档序号:7799998阅读:194来源:国知局
基于偏序简化算法的无线传感网软件模型优化方法
【专利摘要】本发明给出一种基于偏序简化算法的无线传感网软件模型优化方法,该方法首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移系统,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式的问题。本发明方法能够用来优化无线传感网软件模型,有效缓解无线传感网软件模型检验中的状态空间爆炸问题。
【专利说明】基于偏序简化算法的无线传感网软件模型优化方法
【技术领域】
[0001]本发明涉及一种模型优化方法,主要利用模型检验技术来解决无线传感器网络软件的模型验证问题,属于计算机技术、无线通信、无线传感器网络、实时技术、分布式系统和验证技术的交叉技术应用领域。
【背景技术】
[0002]无线传感网是一种全新的信息获取和处理技术,能够协作地实时监测、感知和采集网络分布区域内各种环境或监测对象的信息,并对这些信息进行处理,获得详尽而准确的信息,传送给需要这些信息的用户。传感器网络可以使人们在任何时间、地点和任何环境条件下获取大量详实而可靠的信息,具有十分广阔的应用前景。
[0003]无线传感网的发展非常迅速,这使得应用在上面的软件也越来越广泛,伴随的软件验证问题也越来越多。传感网软件规模越来越大,致使系统复杂性也愈来愈高,除此之外,在很多的不同应用领域都对传感网软件有很高的性能要求。模型检验技术为保证应用于无限传感器网络中的软件性能提供了新的思路,其在协议验证领域和硬件领域都获得了很大的成功之后,也被用在有关软件验证问题的解决上。软件相对于硬件有着较高的复杂性,其状态空间规模也较大,有大量的学者致力于这方面的研究。为了及时地发现程序中潜在的问题,已经有人提出将模型 检验技术应用到源代码的分析中。建立模型和性质检验是模型检验中的两个重要的步骤,即第一步需要对待验证的软件进行建立模型,然后在通过穷尽搜索软件系统状态的方法来检验性质是否满足。
[0004]模型检验是一种自动验证有穷状态系统的技术,最早是由Clarke和Emerson在1981年提出的,模型检验方法可以在构建系统前对系统的安全性和可靠性进行验证,以尽早发现错误。模型检验实质是利用计算机的快速计算能力,通过穷举被检验系统的状态空间中的每一个状态来验证该系统满足特定的形式描述。在模型检验中涉及两种形式说明语言:一种是用于描述系统模型的模型描述语言,一般使用状态机进行表示,另一种是用于描述系统性质的性质说明语言,一般使用时序逻辑公式进行表示。模型检验的基本思想是用状态迁移系统(S)表示系统的行为,用模态/时序逻辑公式(F)描述系统的性质,这样“系统是否满足所期望的性质”就转化为数学问题“状态迁移系统S是否公式F的一个模型”,用公式表示为S|=F?。对有穷状态系统,这个问题是可判定的,即可以用计算机程序在有限时间内自动确定。模型检验已被应用于计算机硬件、通信协议、控制系统、安全认证协议等方面的分析与验证中,取得了令人瞩目的成功,并从学术界辐射到了产业界。
[0005]模型检验提供一个完整的系统属性验证框架,其优点是模型检验能达到完全自动化的程度,只需用有穷状态模型和逻辑公式分别将系统实现和待验证的系统规范描述出来,之后的判断过程则完全可以由模型检验工具自动完成,不需要人的参与;模型检验过程总会以“是”或“否”的结果中止,当以“否”的结果中止时,说明设计或系统不满足某个给定的性质。此时一个违反性质的行为反例将会被给出,此反例将对理解错误的真正原因和修正错误提供线索。利用模型检验的优点,对无线传感器网络的软件或协议进行验证,找出其可能存在的威胁和隐患。
[0006]TinyOS操作系统是无线传感网的主流操作系统。网络协议、传感器驱动、分布式服务器及数据识别工具是组成TinyOS的四个主要部分。良好的事件执行模型是促成良好的电源管理的主要因素,因此,该模型也使得时序安排具有灵活性。TinyOS已被应用于TinyOS的感应板和多个平台中的,且软件的应用也有了一定程度的发展,这与TinyOS系统本身的特征如事件驱动模式、组件化编程思想、轻量级线程技术以及主动消息通信技术等密切相关。然而,在传感器网络系统的深入研究就会发现,这些技术可以帮助提高传感器网络的性能,更充分发挥硬件的特性,降低其功耗,并简化应用程序开发过程。
[0007]NesC是一种表面线性传感网面向对象编程语目,NesC语目是对C语目的扩展,但与C语言不同的是它是组件化的且它的工作执行模式是基于事件驱动的。NeSC采用面向组件编程,并且支持在传感网上的应用开发。TinyOS是一种新型操作系统,它是由NesC语言编写的。大多数基于TinyOS操作系统的应用软件是用NesC,相比之前的编程语言NesC的传感网的开发和应用更方便。组件和接口分别是NesC语言中两个基础的概念。组件可以提供接口,与此同时,其他组件也可以使用这个组件的某些功能,其使用方法是通过引用相同接口声明。不同的组件通过这种方式来实现组件间的相互调用。配件是组件的一种,配件实质是用来描述不同组件接口之间的调用关系;模块的组件另一种定义形式,其主要描述具体实现,如组件中涉及到的接口定义等。以上就是NesC语言组件的两种定义形式,其性质和功能是不同的。而NesC中的接口与组件是不同的,它是组件的一个部分,接口可以理解为函数,也可以是理解为发生的事件,或者是程序或系统的命令,组件是通过接口来实现组件之间的相互衔接和相互联系。

【发明内容】

[0008]技术问题 :本发明提出一种基于偏序简化算法的无线传感网软件模型优化方法,主要用来优化无线传感网软件模型,缓解模型检验中的状态空间爆炸问题。
[0009]技术方案:本发明所述的一种基于偏序简化算法的无线传感网软件模型优化方法,首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式来判断系统性质。本发明采用的偏序简化算法主要结合偏序简化算法和on-the-fly算法思想,基于偏序简化算法的无线传感网软件模型优化方法具体步骤如下:
[0010]步骤1、建立无线传感网软件模型。所述模型用四元组(S,S0,R,L)的形式来描述,S代表状态集合;S0代表初始状态集合;R表不状态迁移,对任意一个a e R,a— S>--S,从S中选取状态SO和状态sl,sO e S,sl e S,a (sO, sl)表示状态sO和状态sl之间存在状态迁移a,也可以表示为sl= a (sO)或者sO a sl ;L是一个赋值函数,用来表示状态对原子命题的赋值。
[0011]步骤2、定义状态P可发生迁移的集合为E(p),p e S,状态P要发生迁移后下一状态集合为F(p),且F(p)G E (p)。从当前状态P开始的路径被定义为pO a Opl a 1-, p e S,
PO e SO,状态p被初始化为状态p0,该路径解释为从状态pO开始经过迁移a O到达状态Pl,以此进行直至到达最终状态。[0012]步骤3、选定E (p)中的某一状态作为状态P的下一状态,所述节点状态的下一状态集合需满足四个条件如下:
[0013](l)F(p)为空,当且仅当E(p)为空;
[0014](2)从状态P开始的每条路经,依赖于F(p)中某些迁移的迁移,不能在E (P)中的迁移执行之前执行;
[0015](3)如果状态P没有全部扩展,对任意的一个a e E (ρ) , α不可见;
[0016](4)模型状态图不允许这样一个循环存在:循环中变迁α可以发生,但α不属于循环中的任何状态P的F (ρ)。
[0017]步骤4、设置无线传感网软件模型中的各个状态所要满足的性质L(m),m为S中的任一状态。
[0018]步骤5、软件执行产生状态S。s不具有唯一性,它可以表示同一节点的不同状态,也可以表示不同节点之间的状态。
[0019]步骤6、依此判断所有E (S)的合法性以及是否为空集。此步骤是要排除产生中断等不合法的状态,保证模型检验过程的执行。若E(S)为空,则表明s没有后继状态,跳出循环,执行步骤10。
[0020]步骤7、选定状态s的后继状态t,t e E (s)。本发明采用深度状态搜索来寻找E (S)的子集下一状态集合,寻找满足的后继。
[0021]步骤8、判断状态t的合法性以及是否满足步骤4中设定的性质,若合法,则执行下一步骤,否则放弃状态t,返回步骤6。
[0022]步骤9、输出优化的模型状态序列,上述步骤执行后得到状态s的迁移序列f (S),f(S) E F(S),所述f (S)中遍历状态的次序是固定且不含重复路径。
[0023]步骤10、生成优化的模型,该模型是无线传感器网络的软件状态迁移系统。将需验证的性质用逻辑公式表示出来后,对建立模型的状态空间进行搜索,验证是否满足相关性质。
[0024]有益效果:本发明所述的一种基于偏序简化算法的无线传感器网软件模型优化方法,分析与应用相关的软件是否满足要求,分析能力强、可读性高,能尽早发现软件存在的缺陷和不正确性,其采用的形式化方法可以验证复杂系统。具体来说,本发明所述的方法具有如下的有益效果:
[0025]1、本发明所述的基于偏序简化算法的无线传感网软件的模型优化算法包括初始条件设置、性质满足条件设置、运行进程产生并选择下一状态,选择状态中的迁移集,最终产生优化的模型。
[0026]2、本发明所述模型检验方法中的抽象模型生成模块实现将被检测的无线传感网软件转换为一种形式化的状态自动机模型。
[0027]3、本发明所述的偏序简化算法是应用于模型的整个生成过程中,包含无线传感网软件的网络模型以及节点中,得到其优化的模型,相比传统的偏序简化算法时间复杂度较低。
[0028]4、本发明所述的偏序简化算法将状态之间产生的路径进行偏序简化,提高了无线传感器的模型生成效率。【专利附图】

【附图说明】
[0029]图1是偏序简化算法过程示意图。
[0030]图2是基于偏序简化算法的无线传感网软件模型优化方法流程示意图。
【具体实施方式】
[0031] 下面对本发明附图的某些实施例作更详细的描述。
[0032]根据图2,本发明所述的是一种基于偏序简化算法的无线传感网软件模型优化方法,该方法建立在模型检验技术的基础上,将算法应用在无线传感网中的RFC6206Trickle协议上,并借助工具NesCOPAT。【具体实施方式】为:
[0033]1、用四元组表述RFC6206Trickle模型,该模型表示协议的状态迁移,并定义状态满足性质SensorNetwork | =OAllupdated,初始化运行条件。
[0034]RFC6206Trickle协议用一个四元组的形式(S,SO, R,L),其中S代表状态集合,SO代表初始状态集合,R表示状态变迁关系,对任意一个a e T,a^SxS, a (sO, sl)表示sO和sl之间存在变迁关系a,也可以为Sl=a (sO)。L:S —2AP是一个赋值函数,用来表示状态对原是命题的赋值。定义状态s能够发生跃迁的集合为possible(s),ample (s)是possible(s)的子集。从状态s开始的路径被定义为n=sO a Osl α 1...,其中s=sO,对任意的状态都成立。该实现过程是通过模型检验器NesCOPAT来实现,之后选择amplc(s)^possiblc(s),首先要定义协议中的状态需要满足的条件
[0035](1) CO: ample(s)=0,当且仅当possibic(s)=0;
[0036](2)C1:从s开始的每条路经,依赖于ample(S)中某些变迁的变迁,不能在ample (S)中的变迁执行之前执行;
[0037](3) C2:如s没有全部扩展,对任意的一个a e ample (s), α不可见;
[0038](4)C3:状态图中不允许这样一个循环存在,循环中变迁α可以发生,但α不属于循环中的任何状态s的ample (S)。此外,设置状态所要满足的程序性质。其具体的设置方法可以通过添加s的判定条件实现。
[0039]2、寻找当前状态的下一状态s
[0040]执行RFC6206Trickle协议确定性的进程产生状态S,这里的s是指当前状态的下一状态,s不具有唯一'I"生,可以有多种状态选择。
[0041]3、确认选定s的迁移集
[0042]检查所有s能够发生的变迁对每一个含有状态s的状态迁移进行判断,本算法是采用深度状态搜索来寻找 possible (s)的子集 ample (s),#amplc(s)possiblc(s) ^后继。判断后继状态s所在的迁移是否是合法,若是则执行下一步骤,否则放弃S。通过选择可变迁子集,即将某些状态的次序固定,以减少重复验证本质上相同的路径,属性的正确性检查在简化了的状态空间和全状态空间中得以保持。
[0043]4、设定函数的性质
[0044]本发明采用的RFC6206Trickle协议使用NesC编码实现的,将其设置执行函数,将其标记为将执行函数设置为事件函数,所述事件函数是指函数被调用时才需要执行的函数。[0045]5、根据算法生成模型
[0046]将算法使用在RFC6206Trickle协议的节点和网络模型上,生成优化的状态模型。所述模型是无线传感器网络的软件状态迁移系统,这是模型检验最终需要的模型。
【权利要求】
1.一种基于偏序简化算法的无线传感网软件模型优化方法,首先将无线传感网软件用模型表示,该模型用来描述节点以及节点之间的状态迁移,然后用偏序简化算法对所得的软件模型进行优化,之后用时序逻辑公式来表示无线传感网软件所需要满足的属性或性质,将对无线传感网软件的验证转化为验证软件模型是否满足公式来判断系统性质;采用的偏序简化算法主要结合偏序简化算法和on-the-fly算法思想,基于偏序简化算法的无线传感网软件模型优化方法具体步骤如下: 步骤1、建立无线传感网软件模型。所述模型用四元组(S,S0,R,L)的形式来描述,S代表状态集合;S0代表初始状态集合;R表示状态迁移,对任意一个a e R,aGSxS,从S中选取状态SO和状态sl,sO e S,si e S,a (sO, si)表示状态sO和状态si之间存在状态迁移a,或表示为sl= a (sO)或者sO a sl ;L是一个赋值函数,用来表示状态对原子命题的赋值; 步骤2、定义状态P可发生迁移的集合为E(p),P e S,状态P要发生迁移后下一状态集合为F(p),且F(P)G E (p),从当前状态P开始的路径被定义为pO a Opl a I..., p e S,PO e SO,状态p被初始化为状态p0,该路径解释为从状态pO开始经过迁移a O到达状态Pl,以此进行直至到达最终状态; 步骤3、选定E (P)中的某一状态作为状态P的下一状态,所述节点状态的下一状态集合需满足四个条件如下: (1)F(p)为空,当且仅当E(p)为空; (2)从状态P开始的每条路经,依赖于F(p)中某些迁移的迁移,不能在E(P)中的迁移执行之前执行; (3)如果状态P没有全部扩展,对任意的一个ae E (p), a不可见; (4)模型状态图不允许这样一个循环存在:循环中变迁a可以发生,但a不属于循环中的任何状态P的F (P); 步骤4、设置无线传感网软件模型中的各个状态所要满足的性质L(m),m为S中的任一状态; 步骤5、软件执行产生状态S。s不具有唯一性,它可以表示同一节点的不同状态,也可以表示不同节点之间的状态; 步骤6、依此判断所有E(S)的合法性以及是否为空集,此步骤是要排除产生中断等不合法的状态,保证模型检验过程的执行;SE(s)为空,则表明s没有后继状态,跳出循环,执行步骤10 ; 步骤7、选定状态s的后继状态t,t e E(s);本方法采用深度状态搜索来寻找E(s)的子集下一状态集合,寻找满足的后继; 步骤8、判断状态t的合法性以及是否满足步骤4中设定的性质,若合法,则执行下一步骤,否则放弃状态t,返回步骤6 ; 步骤9、输出优化的模型状态序列,上述步骤执行后得到状态s的迁移序列f (s) Hs)[F(s),所述f(s)中遍历状态的次序是固定且不含重复路径; 步骤10、生成优化的模型,该模型是无线传感器网络的软件状态迁移系统;将需验证的性质用逻辑公式表示出来后,对建立模型的状态空间进行搜索,验证是否满足相关性质。
【文档编号】H04W16/18GK103888958SQ201410117790
【公开日】2014年6月25日 申请日期:2014年3月26日 优先权日:2014年3月26日
【发明者】陈志 , 岳书珍, 岳文静, 朱彦沛 申请人:南京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1