分析基于状态的系统模型的方法和设备的制作方法

文档序号:6418888阅读:175来源:国知局
专利名称:分析基于状态的系统模型的方法和设备的制作方法
技术领域
本发明涉及分析基于状态的系统模型的方法,该系统模型包括独立的权利要求1、11和29中陈述的一组自动机。
考虑到市场的许多产品部分包含的软件量不断增长,并且所述部分中产品越来越多地倾向于仅由包含的软件,而不是所用硬件的性能差别来区分,一般的软件设计在错误识别和消除以及短期开发期限方面将会提出更高的要求。
相关的许多例子之一可以体现在汽车工业。即使批量生产的汽车包括的专用微处理器的数量也不断增长。这些微处理器可以例如专用于控制ABS、燃料喷射、灯光控制、不同类型的监控、热控制、安全系统等等,许多不同的子系统经常必须通过常用协议来控制。
显然,软件控制单元的大规模出现导致了系统设计者的困境,因为总揽每个单元可能状态的每一方面相当困难,当然,跟踪所有使用的子系统间的协同作用更为复杂。应当提到的另一困难在于,大多数子系统由不同开发者或者开发小组设计,这些子系统之间的接口难以控制,因为没有为开发者提供有效的工具来对这种大型系统进行必要的分析,甚至没有对单个单元进行分析。
这会导致代价高昂并且非常重要的产品开发和发布时间的延迟。更为重要的是,一些产品甚至在包含固有的隐藏错误时就投入市场,这些错误在特定的未知条件下会被触发。
在安全性极为重要的系统中,这个问题当然非常严重,在这种系统中,一个故障甚至可能会对涉及该故障的人员造成伤害。
测试这类故障的一种方法是在生产设备之前,通过符号模型检查来检查其逻辑。该技术在分析和验证硬件系统中非常有效。但是,模型检查对其它类型的并发系统,例如软件系统而言是否是一个有效的工具尚未确定。
符号模型检查的效果可能并不突出的一个理由是,软件系统比硬件大,并且结构更不规则。例如,验证大型软件系统所报告的许多结果是用于线性结构,例如栈或管道,在表示成所谓的ROBDD,减序二进制判决图时,已知其转移关系的大小随着系统的大小线性增长。
另一方案在美国专利第5,465,216中描述,其中描述了一种自动设计验证方法。所描述的方法基本上承认了形式验证存在“状态爆炸问题”的缺陷,进一步得出各大系统的形式验证超出了目前形式验证技术的能力的结论。因此,上述专利描述了一种分解和减少系统模型的方式,而不是处理验证方法的方式。因此,描述的方法的缺陷在于,可能可得到的结果仅是部分性的,而不是详尽的。
基于上述ROBDD的一种更有希望的系统也利用了系统的结构,它由W.Lee等人在Tearing based automatic abstraction for CTL modelchecking给出,发表在1996年IEEE/ACM International Conferenceon Computer-Aided Design上,第76-81页,San Jose,CA,1996IEEE Comput.Soc.Press。这种技术使用了分区转移关系,利用贪婪启发方法选择转移关系的子集。对选择的每一子集而言,进行完整的定点递归。如果在这种递归之后无法证明公式,则选择更大的子集。如果公式非法,则只有在构造了完整的转移关系时(或者内存或时间用尽时),算法才终止。这种技术的缺陷在于,如果系统仅具有单个初始状态,就象嵌入软件系统的一般情况那样,那么它对剩余的每个自动机都实施涉及定点递归贪婪策略。贪婪策略减少到选择任意自动机,从而涉及外部的定点递归。
本发明满足形式验证和利用未减系统模型的需求,提供了一种在基于各大型状态的系统模型中执行理论模型“破损测试”的可能性。此外,所述模型的分析和验证可以在非减模型中实现的比率比现有技术分析和验证工具高得多。
如果分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,
所述自动机(M1,…Mn)的动态行为由各自动机(M1,…Mn)的所述状态之间的预定转移,以及所述自动机(M1,…Mn)之间的相关性(D)来定义,启动所述自动机(M1,…Mn)的至少一个自动机状态的初始集合(F),启动表示自动机(MI)子集状态条件的自动机状态目标集合(A),重复以下步骤,直至分析得到肯定终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…Mn),为目标集(A)扩展一组状态,这些状态通过转移可以到达前一目标集(A),而与没有包含在(MI)中的自动机无关,如果(A)包括初始状态集(F)中至少一个自动机状态,则肯定终止,否则为自动机(MI)的子集扩展自动机(M1,…Mn)的至少一个子集。
可以得到基于状态的系统模型的非常快速的分析。
因此,按照上述步骤,本发明处理基于状态的系统模型中可能状态A的给定调查集的动态扩展,使其扩展目前调查自动机或者自动机组中的状态。如果无法再扩展可能的状态A,即调查自动机中的所有状态都是可能的,或者如果剩余状态仅在满足其它自动机的特定条件时才可能,则调查自动机的数量增加,可能状态集得以扩展。这种循环过程可以继续,直至得到特定结果。所需结果可以例如是一种验证,验证给定自动机可以到达可能初始状态A的集合。
具体而言,本发明在完成所谓的可达性检查时,即验证初始自动机状态集可以到达特定所需或者未期情况时,提供了一种精确的结果。
实验结果表明,按照本发明的典型的所谓可达性检查的执行比现有技术方法要快得多。
此外,按照本发明,现在可以分析和验证包括的自动机数量极大的系统模型,因为不需要确定所有可能的全局状态矢量的计算。这一重要方面增加了生成非常大的基于状态的系统的可能性,因为现在可以建立系统的真实模型并进行完整的分析,然后才将产品投入市场,从而消除了将具有固有隐含错误的产品投入市场的风险。
因为市场的许多产品部分包含的软件量不断增加,并且所述部分中产品越来越多地倾向于仅由包含的软件,而不是所用硬件的性能差别来区分,一般的软件设计在错误识别和消除以及短期开发期限方面将会提出更高的要求。
本发明满足这种趋势的需求,因为本发明提供了一种在基于各大型状态的系统模型中执行理论模型“破损测试”的可能性。此外,所述模型的分析和验证可以在非减模型中实现的比率比现有技术分析和验证工具高得多。
应当注意,确定的测试条件类型在本发明范围内可以有许多变化。其例子可以是验证、可能的死锁指示,或者在需要时,可以是这种死锁的特定和精确检测。
本发明的另一优点是,逐步扩展前一搜索结果的基本组成结构使得以前得到的分析结果的重用是可能的。因此,即使系统模型中所有自动机的完整调查是必需的,也会得到许多优点,因为在进行分析时不需要进行不必要的计算。
基于中央单调性结果的证实,可以重用状态空间的以前计算的部分,而不需要象已知技术那样,在每次增加一个新自动机时,都必需重头开始。
即使需要所有的自动机,实验表明一次包括一个自动机的创新方法,即利用单调性特性,也比利用分区转移关系和早期变量量化执行所谓的常规定点递归快。
在分析系统模型的大量目标集合序列,(A1),…,(An)的可达性时,较后面的可达性问题最好重用较早问题的已经计算的结果。尤其是在目标集(Ai)的后向扩展中,可以在目标集(Ai)的当前扩展完全包含已经得到肯定结果的前一目标集(Aj)(j<i)的任何阶段给出早期的肯定判定。
应当强调,本发明并不限制系统“部件”的定义方式。本发明例如并不局限于简单的所谓平面状态系统模型。按照本发明,系统可以例如定义成层次状态事件系统,后者包括层次结构自动机和/或层次结构状态。记住这一点之后,本发明最好在平面系统模型中实现,这意味着层次系统最好应变换成平面模型,然后才进行按照本发明的分析。
按照本发明,系统模型中的状态可以例如包括离散的观察,程序变量或寄存器的值,或者时序电路的锁存器,连续和与时间相关的函数观察,例如温度、时间、速度、高度、位置。此外,前面提过,状态本身可以是提供所谓的层次系统模型的系统模型。
相关性来自转移到系统模型中其它自动机的条件。
转移条件或者是系统模型中其它自动机的当前状态条件,或者是系统模型中环境的当前状态条件。
此外,应当注意,可以在本发明范围内应用扩展条件或者判定条件的变化。
如果扩展至少状态机(M1,…,Mn)的一个子集的步骤包括将(MI)扩展状态机的至少一个子集,前一(MI)与该自动机子集相关,得到MI的非常有利的扩展。
本发明通过仅并入当前目的必需的自动机,即当前计算的转移与之相关的自动机,对给定系统模型进行分析。
因此,按照本发明的非常优选的一种实施例,为当前调查的MI扩展MI外的自动机将如下进行考虑对自动机MI的未扩展集合没有任何相关性的自动机目前不会提供进一步信息。因此,基于以上描述的本发明的优选实施例,自动机MI的调查集合的扩展优化为只有马上需要的自动机。因为可以执行许多现实应用的分析,而不需要评估系统模型中大量自动机,所以可以得到非常有价值的分析。
应当理解,大型系统模型的分析将从这种重要特性中获利更多,因为系统模型的必要计算空间将大大减小,避免了大量评估。
上述动态进行的扩展的一个重要方面是,在分析规模非常大的系统模型时,如果上述,只有在考虑相关性时,才会得到可用结果。引导测试实际上表明了利用标准PC上的适当资源如何实现现有技术下几乎不可能的验证。
本发明的另一重要方面是,可以消除或大大减少分析基于减少的状态的系统模型的困难,因为本发明可以处理未减系统模型。应当注意,本发明可以视为动态减少系统模型,其中仅动态确定和调查绝对必要的系统模型自动机。因此,本发明得益于通过经验表明的基于状态的系统模型的一般行为,即可能的实际分析或者验证只影响所有系统模型自动机的一部分。
应当注意,给定自动机中自动机状态的转移基本上仅受限于与特定转移相关联的相关性。因此,按照本发明的方法要求在任何时候都可以通过某个事件触发没有相关性的转移。
显然,如果在上述事件中确实存在条件,那么它们在需要时应当并入系统模型。
本发明的上述优选实施例得益于基于状态机的系统模型的结构,因为它处理了转移的特性基本上分为两种的情况。一些转移可以无条件激活,因为他们可能仅取决于特定的已知和总是可能的事件,而其它转移受特定条件限制,或者与其它自动机相关。
因此,按照上述实施例,本发明处理基于状态的系统模型中可能状态A的给定调查集的动态扩展,使其扩展目前调查自动机或者自动机组中的状态。如果无法再扩展可能的状态A,即调查自动机中的所有状态都是可能的,或者如果剩余状态仅在满足其它自动机的特定条件时才可能,则调查自动机的数量增加,可能状态集得以扩展。按照本实施例,应当注意,扩展仅涉及与当前调查的自动机有某种关联的自动机或一些自动机,即,如果它们与当前调查中的转移相关。这种循环过程可以继续,直至得到特定结果。所需结果可以例如是一种验证,验证给定自动机可以到达可能初始状态A的集合。
显然,上述优选实施例可以大大减少循环持续时间,因为该方法可以说是动态忽视了以下系统模型部分它包括与当前调查的转移和/或自动机无关的信息。
本发明提供的技术大大改进了例如对嵌入式反应系统进行符号模型检查的性能,前述系统利用状态/事件模型或者其它基于状态的模型,例如状态图建模。
因此,本发明改进了利用基于状态的模型的方便性,例如嵌入式反应系统的控制部分,包括较小的系统,例如蜂窝电话、高保真设备,汽车的车速控制,以及大型系统,例如火车模拟器,飞行控制系统,电话和通信协议。按照本发明的方法可以例如用于商业工具,通过以下方式辅助开发嵌入式反应软件允许设计者构造基于状态的模型,并且模拟或者运行一致性检查。该工具自动生成嵌入式系统的硬件的代码。一致性检查实际上是一种验证工具,它检查任何基于状态的模型应当具有的特性范围。生成的代码必须通过一些检查以例如确保正确,重要的是该模型是确定的。其它检查以告警形式发布,这些告警可以是设计错误,例如从来不曾走到的转移。
基于状态的模型可以极大。不同于传统模型检查,检查的数目最少与模型的大小成线性。本发明报告多达1421并发状态自动机的模型结果,即使更大的系统也可以容易地处理。对这样大小的系统而言,即使采用分区转移关系和后向递归,传统的符号模型检查技术仍然无效。
本发明使用组合技术,在确定验证任务满意程度时最初仅考虑少数几个自动机,如果需要,逐渐增加考虑的自动机数量。考虑的自动机最好利用系统结构的相关性分析来确定。
工业应用中许多基于大量状态的模型已经得到验证,甚至上述具有1421个并发自动机的模型也能通过适当的资源来验证。与已知分析工具相比,检查较小实例的效率得到改进,并且大幅度增加了可以验证的系统规模。
如果在为目标集(A)扩展一组状态的所述步骤中分析的结果是否定的,并且如果(MI)中的自动机都与(MI)之外的自动机没有关系,前述状态可以达到前一目标集(A),而与没有包含在(MI)中的自动机无关,则因为提供了按照本发明的方法,可以得到系统行为的合法估计,因为,如果因MI中没有自动机与MI之外的自动机相关而终止时,显然可以证实无法满足测试条件。因此,基于甚大规模状态的系统的设计者可以预测运行时可能出现的问题。
应当注意,否定终止在许多应用中当然是绝对必要的,因为确切的否定指示经常是极有价值的。在许多类型的分析中,这种否定指示实际上是用户所希望得到的。因此,否定自动终止本身极为重要,在进一步循环毫无意义时,如果某种自动终止集成在本发明的方法中,则该方法将更为有效和用户友好。然而,必须强调,也可以采用除此之外的其它优选终止条件。
另一方面,在涉及代表不希望的状态或者状态组合的测试条件的正控制时,本发明能够提供确切的信息。因此,如果按照本发明的方法证明在特定条件下无法得到特定状态或者状态组合,则显然可以假定这种情况不会在实际情况下出现,尽管在动态测试情况下,本发明实际上仅使用了系统模型的一部分。这种特性就处理应用的宽频谱而言相当重要,在前述应用中,差错,即不希望出现的状态,可能会引起严重的损伤或者混乱。
因此,应当强调,按照本发明的分析的否定和肯定终止都具有一定可信性,这在对系统模型进行测试时是一种极为有用和有价值的特性。本发明既提供了速度非常高的应用,又给出了精确和可靠的结果。
肯定或否定终止之后的信息可以调整,以表示任何所需的测试条件。本发明的本实施例的另一方面是在大量应用中,优化终止条件非常重要,因为在可能的情况下,应当避免不必要的循环。上述肯定和否定终止条件确保了可达性分析中计算了所有,但都是必要的循环。本领域中的技术人员能够将本发明的方法调整到其它所需分析目的。
如果在为目标集(A)扩展一组状态的所述步骤之后,如果向用户提供可视或者可闻指示,并且前述状态可以达到前一目标集(A),而与没有包含在(MI)中的自动机无关,(MI)中的自动机都与(MI)之外的自动机没有关系,则得到提供给用户的信息的便利环境。
应当注意,在希望有分析的快速交互处理时,用户友好的接口更为重要。不仅仅可以加快分析给定系统模型的处理,而且基于状态的系统模型的整个设计过程可以大大缩短。
如果在用户发出请求之后,分析终止,则可以得到更好的用户接口。这类接口例如在处理大规模系统中更为有利。同样,前面提过,应当强调,对户友好的接口的需求随着分析方法的能力增长。
如果将相关性(D)表示成定向图,则可以实现更为有利的实施例。
以定向图形式给出的表示,它是分析应用的宽频谱的非常方便和有利的方法,定向图本身是众所周知的用于表示任意对象间相关性的数据结构。
如果通过表示相关性的定向图的宽度优先遍历来确定自动机(MI)的增加集合,则可以实现更为有利的实施例,因为它导致了最小相关性闭合MI,从而能够实现快速终止。
这是因为它仅包括MI直接相关的自动机。
此外,该方法非常有利于计算。
如果将自动机状态集表示成减序二进制判决图(ROBDD),对这些状态的操作实现成对减序二进制判决图(ROBDD)的有效操作,则可以得到按照本发明的更为有利的实施例。
因此,可以得到计算一组状态的转移关系图的有效操作。应当注意,转移关系图的计算需要将转移关系表示成单个ROBDD,这有时会因为大规模的表示而出现问题。
在这些情况下,转移关系可以更为有效地表示成称为分区转移关系的较少关系的分离或者联合。
如果将转移关系表示成减序二进制判决图(ROBDD)的分区转移,则状态(A)集合由重复的定点递归来动态计算,可以得到本发明的简单和有效的操作,它通过本领域中众所周知的技术实现。
如果所述自动机(M1,…Mn)的动态行为由每一自动机(M1,…Mn)的所述状态之间的预定转移和所述自动机(M1,…Mn)之问的关系(D)定义,
对每一自动机(M1,…,Mi,…,Mn)而言,初始化自动机(MI)的一个子集,包括目前分析的自动机(Mi)初始化一组(Ai)活跃状态(Ai),所述活跃状态是当前分析的自动机(Mi)的自动机状态,这些状态独立于其它自动机,可以改变到所述自动机的其它可能状态(pS1Mi,…,pSkMi)重复以下步骤,直至分析终止,或者(MI)包括所有自动机(M1,…,Mn)为该组活跃状态(Ai)扩展一组状态,这组状态通过转移可以到达活跃状态(Ai)的前一集合,而与没有包含在(MI)中的自动机无关,和/或一组状态,它们通过转移可以改变(Mi)的状态,而与没有包含在(MI)中的自动机无关。如果(Ai)包括所述自动机(Mi)中的所有可能自动机状态,则分析肯定终止,否则将(MI)至少扩展自动机的某个子集,实现更为有利的实施例。
需要理解,本发明的本实施例为每个自动机提供了检测所有全局状态的可能性,即一组自动机状态,前述自动机可以在特定可能状态下改变状态。这些状态将被认为是按照当前术语的活跃状态。
此外,显然每个自动机的所有活跃状态的确定可以给出可能的固有陷门的指示,因为以下的自动机状态可能是危险状态,或者所谓的潜在死状态在该自动机状态下,给定自动机无法转移到其它状态。
但是,应当强调,可能的死状态并不一定表示不希望或者非法的状态。确定的状态实际上必然是重要的,如果它们能够从已知或者给定的初始系统条件到达。
如果本发明还包括以下步骤具有潜在死自动机状态(Adi)的每个自动机(MI)初始化所述自动机(M1,…,Mn)的自动机状态的初始集合(F),初始化表示自动机(MI)的潜在死自动机状态的自动机状态(Adi)的目标集,以及重复以下步骤,直至分析终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…,Mn)
将目标集(Adi)扩展一组状态,这些状态通过迁移可以到达前一目标集(Adi),而与没有包含在(MI)中的自动机无关,如果(Adi)至少包括初始状态集(F)中的至少一个状态,则肯定终止,否则将自动机(MI)的该子集扩展至少自动机(M1,…,Mn)的某个子集,得到所调查的系统模型的进一步的重要信息。
在本发明的上述实施例中,肯定终止的意义不是特别正确,因为现在确定了所调查的状态或者可能的死状态的组合可以实际到达。因此,可以判定死锁,并且包括确定的状态的自动机Mi无法改变状态,不管周围系统中发生了什么。
如果本发明的方法包括判定至少一个自动机(Mi),至少一个,最好是全部,可能的死自动机状态(Adi),在所述自动机(Mi)处于所述自动机状态(Adi)中任意一个时,这些状态将保持在同一死自动机状态(Adi)中,与可能的外部事件无关,具有潜在死自动机状态(Adi)的每个自动机(MI)初始化所述自动机(M1,…,Mn)的自动机状态的初始集合(F),初始化表示自动机(MI)的潜在死自动机状态的自动机状态(Adi)的目标集,以及重复以下步骤,直至分析终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…,Mn)将目标集(Adi)扩展一组状态,这些状态通过迁移可以到达前一目标集(Adi),而与没有包含在(MI)中的自动机无关,如果(Adi)至少包括初始状态集(F)中的至少一个状态,则肯定终止,否则将自动机(MI)的该子集扩展至少自动机(M1,…,Mn)的某个子集,因为检测出实际死锁,得到本发明的一种非常优选的实施例。
本发明提供了一种检测令人非常不快的错误类型的有力方法,因为死锁会引起系统,例如基于状态的系统,进入无尽的循环,至少也会导致用户过多的不合理的工作情况。
显然,系统模型中可达死锁的检测为系统设计者提供了极有价值的信息,因为未检测出的死锁错误如果由发行的产品的用户检测或经受,则会引起严重的损失。此外,应当强调,快速死锁检测,以及其他测试条件,例如上述验证分析,为市场提供了有效的工作工具,而市场对产品发行延迟和短设计阶段极其敏感。
下面结合


本发明的不同例子,但本发明并不局限于此,在附图中图1-4说明了本发明的一种实施例的基本自动机;图5说明了图2-4的自动机之间具有相互相关性的自动机组合;图6-8说明了本发明实施例的第一例子;图9-10说明了本发明实施例的第二例子;图11和12说明了本发明实施例的第三例子;图13说明了按照本发明的一种实施例的系统模型中死锁的检测方法;图14-20说明了如何通过层次系统模型的变换得到扩展状态系统模型;图21-24说明了本发明的基本算术特性;图25说明了在消除前信号的消除,以及图26说明了在消除后信号的消除。
以下第一部分描述通过简单术语和

了本发明的基本特性。基本原理和特性将通过玩具火车的系统模型来说明。
第二部分将详细处理本发明的理论背景。详细的第二部分面向本发明的一个例子,该例子被描述为一个状态事件系统。但是,应当强调,本发明可以用于任何基于状态的系统。
现在参看图1,描述一个小例子以说明本技术的关键方面。该例子包括一个玩具火车,门和信号。火车的控制被描述为具有3个并行状态系统的控制系统。在图1中,或者示出了火车1,具有3个按键2、3、4,它们可以以4种方式从外部作用。一个按键2安置于火车顶部。如果按下,系统将此命令理解为“开足马力”。另两个按键3、4安置于火车下。它们可以单独或者作为单个单元激活(火车的灵感来自LEGOA/S的电池驱动的DUPLO玩具火车)。在与火车同一方向上按下左侧的按键3,系统将视该命令为“左转”。在与火车同一方向上按下右侧的按键4,系统将视该命令为“右转”。如果同时按下按键3、4,该命令将被视为“”。
如图2所示,火车1具有3个工作状态停止,缩写为ST;前进,FW;和后退,BW。这些状态是可以改变的,就象标记成to,le,ri,ri,le,to bo和to bo的箭头所示。这些箭头可以认为表示转移,to,le,…,等表示触发相关转移,使得火车1改变状态的事件。
图3所示的门具有两种可能位置或者状态上,标记有UP或者下,标记为DO。这两个状态可以通过命令或者所谓的事件“up”和“do”来改变。
图4所示信号具有两种状态停止,标记为R,或者开动,标记为G。这两种状态可以通过事件“开”和“关”来改变。
总之,整个系统包括关联在一起的图2所示的火车,图3所示的门,和图4所示的信号。系统的3个状态11、12和13在图5中相互关联,如果门12是下,DO,火车可以仅从“停止,ST”到“前进,FW”或者“后退,BW”。因此,相应转移表示为DO,le(DO)和riDO,其中to DO表示在门12位于状态DO,下时,如果事件to发生,即顶部按键2被激活,则发生转移。火车系统11转移到状态DO的符号可以看成是一种条件或者保护。同样,信号13只有在门处于可接受状态,分别为“UP”或者“DO”时才会改变。
图5中示出了上述例子。
本发明分析的目的是找出由许多状态系统组成的系统是否可以从其初始状态到达给定(希望或者不希望)的目标状态。
在DUPLO系统情况下,例如找出火车是否能够前进相当有趣。这种问题可以通过详细查看整个系统的全局状态来回答。对DUPLO系统而言,总共有12个全局状态,这些状态由火车的3个本地状态,门的两个本地状态,以及信号的两个状态的可用组合组成。“开始”状态设置为(停止,ST;上,UP;红,R),问题是,我们是否能将系统改变成状态,例如(FW,?,?)(“?”表明门和信号的状态无关紧要。)
对全局状态的分析表明该问题的答案是肯定的,由以下全局状态序列证明(ST,UP,R)-do→(门向下)(ST,DO,R)-to→(火车开动)(FW,DO,R)这是所需的目标状态。
但是,以上所用的传统方法并不理解,因为它一般需要构造和搜索全局状态,后者随着状态系统的数量指数增长如果有100个具有两个状态的系统,则全局状态空间为2100个状态。
按照本发明的方法基于组合和渐进技术。该技术是组合的,因为开始时分析基于有限数量的状态,并且包括只在绝对需要时才使用附加的自动机。在状态机之间预先计算的相关性分析之后,将这些包括在内。
在DUPLO火车例子中,调查整个系统是否可以到达某个允许火车前进的状态。显然,这种能力取决于火车,这正是为何我们的分析从火车开始的原因。
现在参看图6,最初调查的状态可以认为是目标集80,它由图6表示成(FW;?;?)。
此外,可以看出,状态从“BW”改变到“FW”是有条件的,只以状态“BW”为条件,而不是门的状态或者信号的状态。因此,目标集80可以扩展到81,同时包括图7所示的BW和FW。
但是,仍然无法得出火车是否可以从“ST”到达“FW”或“BW”。观察到火车的转移仅取决于门12,条件“DO”,因此分析在包括门12之后继续,如图8所示。
火车+门根据已进行的分析,足以将系统带到目标状态(FW,?,?)或者(BW,?,?)中的一个,因为火车自身将能够到达所需目标状态,而与图5的门12和信号13无关。这当然基于基本条件所有事件在任何时刻都是可能的。显然,系统的全局状态(ST,DO,?)独立于图5的信号13,可以到达状态(FW,DO,?)和(RW,DO,?),从而到达新的目标状态。这还意味着系统(ST,UP,?)中可用的所有状态都可以安置于所需的目标状态,如同(ST,UP,?)-do→(ST,DO,?),而与图5的信号13无关,如同图8通过扩展的目标集82所示。
现在初始状态包括在目标集82中,FW可以认为是可达的,因为全局状态系统的初始状态(ST,UP,R)位于目标集合中,我们可以得出火车可以前进,而不需包括信号的状态系统。
利用上述本发明的简单实施例,表明了基于特定问题的完整分析是自动机11中给定状态是否可达,而不包括所有自动机11、12和13,不需要计算所有可能的全局状态。
同样需要注意,信号13没有调查,尽管它与门12有关联,即on(DO)和off(UP)。
显然,如果系统模型包括数量非常大的自动机和自动机状态,这种组合方法有明显的好处。
现在参看图9,描述了本发明实施例的另一例子。该系统模型基本上与图5的系统相同,但是现在火车14和信号16具有改进的相关性或者保护条件。
前一DUPLO例子的变型提供了火车的一种改进型,因为火车14现在具有从ST到BW的转移ri(UP)。现在可以假定从“ST”到“BW”的状态改变因某种原因取决于门15位于“UP”状态(由新条件“UP”给出)。同样,本发明的方法检查系统模型是否能让火车从全局状态系统的初始状态(ST,UP,R)前进,FW。
类似于前述例子,分析开始于火车自身,因为目标状态显然仅取决于该组成部分。
火车与前面相同,我们看到系统的所有状态(BW,?,?)-独立于门15和信号16-可以到达全局目标状态(FW,?,?),即图10的目标集83。从ST到FW的改变和从ST到BW的改变显然与门15有关,因为从ST到FW的改变取决于门15向下,DO,而从ST到BW的改变取决于门15向上,UP。这导致语义相关,因为门必须在状态UP或者DO,所以不管门15的状态如何,总能满足这种语义相关。因此,分析结果导致目标集83的扩展成目标集84。这意味着在该情况下,火车可以前进,而不包括系统的门或信号,因为目标集84现在包括全局状态系统的所需初始状态(ST,UP,R)。
在上例中,目标集的扩展受到了将转移限制到状态FW和BW的“相关性和”调查的影响,从而不再需要并入自动机15和16。
现在参看图11的原DUPLO系统的第三变型,其中火车17和信号19的模型完全对应于图5中火车11的所述模型。该改进现在面向门从“UP”到“DO”的变化,这出于某种原因由处于“FW”状态的火车决定,即转移do(FW)。目标状态仍然相同可以让火车前进,即可以从开始状态(ST,UP,R)到达全局状态(FW,?;?)吗?如同第一分析的情况一样,从火车自身和包括FW的目标集85开始。同样,如果门18和信号19的状态都没有检查,只能直接导出火车可以从状态(BW,?,?)到达目标状态。为了能够导出火车17可以从状态“ST”到达“FW”,或者到“BW”,我们将再次在分析中包括门18,因为从ST到FW或BW的所有转移都取决于状态DO的门。
火车+门现在参看图12,在包括门18并将目标集扩展到目标集86之后,显然组合(ST,DO,?)的所有状态都可以到达所需状态,而与图11的信号19无关。同时,状态(ST,UP,?)代表了开始或者初始条件,无法改变到扩展目标集86中的(ST,DO,?),因为影响火车“FW”,即do(FW)的转移的门18的条件显然没有满足。并且显然将图11的信号19考虑在内并不直接或间接解决这个问题,因为火车17或者门18的状态都不取决于该信号。因此,可以得出不包括该信号,目标状态就无法到达。
上述方法可以简洁地表示如下给定具有开始状态s1,…,sk的多个自动机系统M1,…,Mk。
问题系统能够到达给定目标状态?方法1.假定A表示显然能够到达目标状态的全局状态系统。
2.包括目标集中直接涉及的系统(将这些称为I)。
3.独立于仍未包括的系统,说明能够到达A中状态的所有全局状态。这些状态被称为BI*(A)。
4.如果BI*(A)包括全局开始状态,本发明在这里终止,结论是肯定的。
5.如果I中的系统没有涉及外部系统,本发明在这里终止,结论是否定的。
6.在所有其它情况下,在涉及的情况下将这些系统加入I,目标状态A被替换成BI*(A),该方法从步骤3重复。
死锁组合方法可以用于访问调查之外的其它目的。可以表明,进一步检查系统模型以确定是否存在死锁。系统中的全局死锁是不管什么命令或行为,系统都无法改变自动机状态的全局状态。死锁可能发生在系统到达某个状态,其中不再有自动机状态的任何转移。它还可以发生在实际转移出本地自动机状态之外的情况,因为这些状态与没有满足的需求/条件相关。
更精确的术语是本地锁,其中一个或多个自动机无法独立于其它自动机状态的改变方式改变其状态。更精确地说,全局状态s是自动机I的本地死锁,不管系统遇到什么事件,它仍留在同一状态。该概念在图13中解释。
图13示出了火车的另一变型。火车21连接到门22。火车21到状态“ST”的转移分阶段,取决于门22是否下,DO。门22的阶段可以较少,只是在火车停止时,从“UP”到“DO”,即转移到do(ST)。
火车,门全局状态(FW,UP)是门22的本地死锁。不管什么事件,门22都无法将其状态改变到“DO”。这是因为从状态“UP”到状态“DO”的转移要求火车21处于状态“ST”。同时,所有到状态“ST”的转移都取决于门位于“DO”状态。自然,这只有当火车处于“ST”等状态时才会发生。换句话说门22有死锁。火车21在该状态没有死锁,因为火车可以通过命令“ri”和“le”在状态“FW”和“BW”之间切换。因此,状态(BW,UP)也是该门的本地死锁。
为了利用测试方法来定位任何本地死锁。因为方法开始时计算自动机I中活跃的状态,这些状态没有死锁。更确切地说,如果全局状态序列s1,s2,…,sk中s=s1,意味着特定事件使得全局状态sj能够通过转移改变到sj+1,而s1和sk具有不同的本地状态,则全局状态s对自动机i而言是活跃的。换句话说,存在这样一种状态转移序列,使得自动机i在某一点改变状态。
以下解释的方法描述了如何确定对自动机MI而言活跃的全局状态。这些自动机状态称为Ai。未在Ai中的状态机集合构成了Mi的可能死锁。它们仅仅是可能的死锁,因为它们可以无法从“开始”状态到达。这是否可能可以利用基于相关性分析的状态系统的上述组合和渐进分析来判定。
按照本发明计算自动机Mi的活跃状态的一种测试方法。
给定一组状态自动机M1,…,Mk,以及其中选定的一个自动机Mi。
问题为自动机Mi计算活跃的全局状态。
方法
1.以A表示全局状态的未知集合。
2.包括第一自动机I。然后,以I为调查的该组自动机的符号,开始为I={i}3.在一个或多个状态中,独立于该时刻未包括的自动机,计算所有这样的全局状态,它们能够促成自动机I的状态改变,或者改变到A中的某个状态。结果是A1i*(A)。
4.如果A1i*(A)包括所有全局状态,则调查到此终止。(这意味着对自动机Mi而言,所有状态都是活跃的,因此不会有死锁)。
5.如果情况并非如此,并且如果I中的自动机不涉及I之外的自动机,结果是A1i*(A)。
6.如果不是,I有许多新的自动机加入,这些自动机涉及I中转移自动机的条件/要求,则将A赋值等于A1i*(A),方法从3之后重复。
为了确定自动机是否具有“实际”死锁,意味着有一个死锁并且可以到达的状态,则第一步是使用上面提到的测试方法以发现自动机i的活跃状态Li。下一步骤是发现该集合中未包含的状态之一是否可达。如果将其组合,则会有以下方法。
按照本发明确定可达本地死锁的一种方法。
给定一组状态自动机M1,…,Mk问题自动机M1,…,Mk之一是否有本地死锁?方法1.利用该方法计算活跃状态集,可以确定每个自动机的集合;Ai。必须对所有自动机重复步骤2、3和4。
2.以A表示未在A1中的全局状态集合。这些是自动机Mi的可能死锁。
3.利用确定给定目标状态可达性的方法,确定从“开始”状态是否可以到达A。如果答案是肯定的,则状态机具有可达本地死锁,给出的结果是肯定的。
4.如果不是,则结果是否定的。
在上面的例子中,该方法具有以下序列。首先,检查门的本地死锁。至此仅包含了编号为2的自动机,即门,这就是原因,利用第二方法,可以发现L{2},2*(φ) = {(?, DO)}.
现在包括自动机1,发现L{1,2},2*({?,DO)} = {(?,DO),(ST,UP)}.
这是门活跃状态的最终结果。这意味着门的不活跃的全局状态数量是{(FW,UP),(BW,UP)}。
现在需要发现这些状态中的一些是否可达。它们都可以从给定情况到达;因此,门22在这两种状态下都有本地死锁。
火车21的计算有所不同。第一步是仅包括火车,发现活跃状态是、L{2},2*(φ)={(ST,?),(FW,?),(BW,?)}.
这包括了所有状态,计算的结果表明火车没有死锁。
利用本领域众所周知的定点递归,计算集合L{i},1*(A),和BI*(A)的情况一样。
上述系统模型可以认为是米利机的并发版本的状态/事件模型,即,它包括固定数量的并发有限状态机,这些状态机具有成对的输入事件和输出行为,它们与自动机的转移相关联。该模型是同步的每个输入事件在锁定步骤中由所有自动机予以响应;总输出是单个自动机的输出行为的多集合并集。自动机之间的进一步同步可以通过关联保护条件和转移来实现。保护条件是其它自动机的本地状态情况的布尔组合。通过这种方式,一个自动机中进行的转移可以作为其它自动机本地状态的条件。如果自动机没有针对特定输入事件的转移,它就不进行任何状态改变。
参看图1到图12,很明白状态空间的某个子集可以利用减序二进制判决图(ROBDD)来表示。这在R.E.Bryant,“Graph-basedalgorithm for Boolean function manipulation”中描述,该文发表在1986年IEEE Transactions on Computers,第8卷,编号C-35,页677-691。
测试ROBDD的这种子集是否为空及其相等性,以及执行该组操作的并集和交集的有效操作是众所周知的,在上述Bryant的文章中有相关描述。此外,Bryant还描述了计算一组状态的转移关系图的有效操作。转移关系图的计算需要将转移关系表示成单个ROBDD。因为大量的表示,有时这会引起一些问题。这种情况下,转移关系可以更有效地表示成分离或者联合的较小关系,称为分区转移关系,这在J.RBurch,E.M.Clarke和D.E.Long的文章“Symbolic ModelChecking With Partitioned Transition Relations”中解释。该文出现在1991年8月的Proceedings of 1991 Int.Conf.On VLSI,A.Halas andP.B.Denyer。
许多基于状态的系统模型最好可以设计和描述成所谓的层次系统模型。
下面将描述这种类型的系统模型的优选变换,因为本发明最好针对所谓的基于状态的平面系统模型。
现在参看图14,给出了层次系统模型的基本特性。
火车,门,信号在图14中,前两个状态“FW”和“BW”被替换成单个新的更为抽象的状态“GO”。图14所示的控制系统提供了火车行为的更为抽象的描述,这种情况下,将会遇到一个近视的,无法区分火车前后的人。
同时,通过将状态“GO”改进为状态系统的形式,可以维护火车31的原描述,前述状态系统包含状态“FW”和“BW”。这导致了DUPLO火车的层次描述,如图15所示。
火车,门,信号。
除了状态系统改进为两个新状态“FW”和“BW”,三个原状态转移“GO”也需要分别由特性“FW”和“BW”作为结果状态来改进。最后,门32从“UP”转移到“DO”将其状态改进为“FW”。
状态系统和自动机状态系统包括一组自动机M1,…,Mn。
状态机M包括一组状态S1,…,Sk以及许多转移Si→Sj。
DUPLO火车的抽象版本是具有单个状态机的状态系统,火车31,其中有两个状态“ST”和“GO”,之间总共有5种转移,如图14和15所示。
为了不引起任何混淆,选择没有层次平面状态系统作为呼叫状态系统。
层次状态系统和自动机层次状态系统,HSys,包括一组层次自动机HM1…HMn。
层次状态机HM包括许多层次状态HS1,…,HSk,以及其间的许多转移Hsi→Hsj。
层次状态HS本身是层次或者简单状态系统。
DUPLO火车的层次版本是具有一个单状态自动机的层次状态系统31,它具有两个层次状态“ST”和“GO”,其间有5个转移。状态“ST”是简单的,而“GO”本身是一个层次状态系统,具有两个状态“FW”和“BW”,其间有两种转移。“FW”和“BW”都是简单状态。
层次状态和状态自动机根据它们所到达的层次深度指派了特定层次。在层次版本的DUPLO火车中,状态“ST”和“GO”在两个层次上都出现,而状态“FW”和“BW”位于第二层。
应当注意,平面状态系统构成了层次状态系统的特殊情况,其中所有状态都是简单的,或者说,其中所有状态都位于第一层。
层次状态系统的扩展层次状态系统与平面状态系统相比,给出了更加紧凑和结构化的描述。但是,任何层次状态系统也能够扩展到平面状态系统,在平面状态系统中可以应用组合和渐进分析的创新方法。
扩展包括下面提到的扩展处理的连续执行,直至生成了平面状态系统。
扩展处理-状态现在参看图16,在n(Ln)层初始化Hsys为实际的层次状态系统。扩展处理的开始点位于n之外的另一层的层次状态S,它本身是由许多层次自动机M1,…,Mn组成的另一层次状态系统,位于n+1层。
现在参看图17,扩展处理包括将S层自动机M1…Mn的状态S的状态改变为简单状态。在执行扩展处理之后,完成图17所示控制系统。
因此,扩展处理减少了层次状态的数量(减1),通过重复减少步骤,最终结果将是这样一种层次状态系统,其中所有状态都是简单的,也称作平面状态系统。
扩展处理-转移此时,转移包括在扩展处理中。转移一般与特定条件,或者保护条件相关,在进行该转移之前,这些条件必须得到满足。这些条件可以是部分影响整个系统所在环境中行为发生,部分影响其它状态系统中其它正常自动机的命令/要求。在扩展处理期间,可以通过不同方式修改这些命令/要求,以确保在扩展处理之前,存在层次状态系统之间正确的关系/连接。这种改进的例子在图18中给出。
参看图19,考虑给出的情况,在其中加入所示的转移和条件/需求。这种情况下,需求/条件是a、b、c和d。
显然,迄今只能发生S中自动机(M1,…,Mn)的转移,例如从A到B的转移,控制系统M实际上位于状态S(不是S1或者S2)。为了确保同一原理应用于从A到B的转移,将条件/需求扩展到bS。
M中从S1到S的转移可以通过不同方式选出S中需要激活的子状态;例如,应当选出子自动机M1的状态X。为了确保在S1扩展到S时也执行状态X,可以在X中加入从M1中所有其它状态的转移,限制S1a,它正是进行从S1→S的转移所需的。
M中从S到S2的转移给出了与S中子状态相关的条件/需求,如果需要进行转移,则这些子状态必须活跃。例如,一种条件/需求可以是自动机M1位于状态Y。为了确保扩展后应用相同原则,从S到S2的转移的相关条件/需求可以扩展为cY。
在层次M的自动机中,存在其条件/需求包括状态A的转移。在扩展之后,必须确保不仅仅M1位于状态A,而且自动机M位于状态S。
在转移条件/需求的给定修改下,变换处理的结果可以如图20所示。
层次DUPLO火车的扩展下面将通过图20的DUPLO火车说明扩展的效果。应当注意,从状态“ST”到“GO”的转移非常明确地指出了“GO”的哪些子状态必须激活。扩展的唯一明显的对象是状态“GO”,它是唯一的非简单状态。扩展处理的结果如下火车,门,“GO”,信号给定层次控制系统,Hsys。
结果等价/类似的平面状态系统,Sys。
方法1.假定S是n层上的状态,它本身是由许多层次自动机M1,…,Mk组成的层次状态系统。
2.实现S的扩展,这意味着对S层上的自动机M1,…,Mk进行必要的转移改进和需求。
3.如果所有状态都是简单的,停止。
4.如果不是,从1开始重复处理。
在许多应用中,考虑这样的系统模型较为有利,这些系统模型包含许多范围在有限域内的变量。这些变量的值可以通过赋值,作为转移行为的一部分在转移条件中测试和处理。利用本领域众所周知的变量编码技术以及对它们的操作(例如参见Allan John Hu的博士论文,Techniques for Efficient Formal Verification Using Binary DecisionDiagrams,Department of Computer Science,Stanford University,1995年12月,编号CS-TR-95-1561)可以容易地改进本发明,使其应用于这类系统。这种改进可以包括查看每个变量,因为自动机针对变量的每个可能值都有一个状态。为变量赋值可以通过该自动机的转移实现,其它自动机中涉及该变量的条件可以实现为该自动机上的同步条件。这样,本发明提到的所有方法都可以直接应用于改进的模型。
在其它应用中,考虑涉及定时器集合的系统模型相当有用。定时器的值随时间减小,或者在时钟频率所确定的离散步骤中减小,或者通过全局时间连续减小。在这种时间扩展系统模型中,转移可以由超时事件to-t激活,该事件在定时器t值到达0时发生。同时,作为转移行为的一部分,可以设置定时器值。可以容易地改进本发明,通过引入各定时器作为具有状态T0,T1,…,Tmax的自动机T,其中max是指派给定时器t的最大值,使其应用于定时系统。自动机T具有以下基本转移Ti+1-tick[]/→Ti
对i=1..max-1,其中’tick’是表示经过一个时间单位的新事件。超时转移A1-to-t[g]/a→A2被替换成以下转移A1-to-t[gT1]/a→A2对to-t事件的响应被替换成对定时器自动机T位于状态T1所提供的tick的响应(因此,在状态TO中,只有在tick事件之后)。定时器设置转移A1-E[g]/a,t=n→A2被替换成A1-E[g]/a→A2此外生成了以下形式的转移Tj-E[gA1]/→Tn对所有j=0..max。本发明所提供的所有方法可以直接应用于改进的模型,对离散和连续的定时器都能给出正确的分析,这在本领域众所周知(例如参见E.Asarin,O.Maler,A.Pnueli,On Discretization ofDelays in Timed Automata and Digital Circuits,Proc.CONCUR’98,Lecture Notes in Computer 1466,1998)。
在其它应用中,允许内部事件(有时称为信号)非常有用,这些事件由一些自动机产生,由其它自动机作出响应。具有内部事件/信号的系统模型可以理解成具有不同的解释。在一种解释中,需要理解信号的发送和响应是瞬时的。在这种解释下,信号存在的效果可以通过改进的模型得到,在该模型中已经消除了信号。通过信号改进转移可以得到这种改进,或者增加转移使得它们通过外部事件和状态同步的条件得到类似效果。作为消除信号的一个例子,考虑具有外部事件E和信号S的系统,如图26所示。通过将B1到B2的转移中S的出现替换成EA1,从A1到A2的转移中消除S的生成,可以得到一种行为相同但没有信号的系统模型。
这种方法在系统模型中出现若干信号的情况下容易出现。其推广可以描述如下。为以下转移中组合的每次出现增加一个转移A1-E[g]/Sa→A2B1-S[h]/b→B2,其中E是某个外部事件,S是信号,g和h是条件,a和b是在进行转移时需要完成的行为序列。增加的行为如下生成将从B1的转移中S条件替换成E条件,g和A1B1-E[gA1h]/b→B2。
重复增加转移,在生成对时,将新转移考虑在内,直至不再有新转移生成。增加了所有可能的转移之后,取消信号所保护的所有转移,在生成一个或多个信号的所有转移中,消除这些信号。最终的系统模型并不包含任何信号,本发明的方法可以应用于分析该系统模型。
在另一种解释中,信号可以在多个自动机之间通过信号内部队列通信。这种内部队列中的信号需要在系统模型对任何外部事件作为反应之前予以响应。然后,将信号视为任一其它外部事件如果内部队列不空,在队列前端的信号是唯一允许的事件。所有外部事件都被抑制。如果内部队列为空,则抑制信号,选通所有外部事件。
信号的内部队列可以限制为具有给定的最大长度。可以如下得到该对列的效果首先在系统模型中加入许多实现该队列的模型,然后消除所有的信号生成,改进转移。信号S在A1到A2的转移中发送的条件是外部事件E,它可以通过队列的变化来建模,这种变化在队列的尾部增加表示S的元素。如果队列非空,只选通对应于队列中第一元素的事件。如果队列为空,则选通所有外部事件。事件的选通和抑制可以如下得到结合事件预测和自动机系统模型上的队列第一元素。完成这些步骤之后,本发明的所有方法可以应用于最终的系统模型。
现在考察本发明实施例的基本特性的更为具体的解释,下面将更为彻底地讨论本发明的某些方面。
状态/事件系统由输入事件字母E和输出字母表O上的n个自动机M1,…,Mn组成。每个自动机Mi是本地状态、初始状态和一组转移的三元组(SnSOnTi)。转移组是关系Ti⊆Si×E×Gi×M(O)×Si]]>其中M(O)是输出的多个集合,Gi是没有包含到自动机I的引用的果护条件的集合。这些保护条件根据以下布尔表达式的简单语法生成 原子谓词lj=p读作“自动机j位于本地状态p”,tt代表了真保护条件。该状态/事件系统的全局本地状态集是本地状态集的乘积S=S1xS2x…xSn。保护条件在S上直接解释对任何s∈S,如果s的第j个分量是p,则s︱=lj=p正确,即sj=p。标记g[sj,lj]表示sj是lj的替换,根据sj是否等于p,sj=p形式的原子命题的出现被替换成tt或 考虑全局状态s,转移关系中的所有保护条件都可以评估。我们定义转移关系的一种版本,其中已评估了保护条件。这种关系表示成 表明自动机i在接收输入事件e时,从si转移到s’i,生成输出o。
比较正式的表示是 两个自动机可以组合成一个自动机。更一般地说,如果MI和MJ是自动机I和J的两个不相交集合,I,J⊆{I...,n}]]>,我们可以将其组合成一个MIJ=MIxMJ=(SIJ,(S0IJ),TIJ),其中SIJ=SIxSJ并且S0IJ=(S0I,s0J)。转移关系TIJ是SIJxExGIJxM(O)xSIJ的一个子集,其中GIJ是组合自动机的保护条件。通过TIJ的构造,保护条件GIJ将不包含到I∪J中自动机的任何引用。为了定义TIJ,我们引入谓词idle 它对这样的状态成立在接收输入事件e时,状态sJ中不选通MI中的转移。转移关系TIJ是由以下推理规则定义(符号+表示多集合并集)。 这些规则表明状态/事件系统的同步行为。第一规则表示了TI和TJ中存在具有输入事件e的选通转移,TIJ的最终转移表示了e的同步。如果TI或TJ中都没有选通的转移,则出现其它两种情况。
图21示出了两种状态/事件自动机和相应的并行组合。保护条件应当采用以下形式Ij=p,简单地写成状态[p],因为位置Ij得自状态的名字。小箭头表明了初始状态。r的引用是对未示出的第三自动机的状态的要求。
所有n个自动机的完全组合产生了米利机,其中转移 定义为 一致性检查按照本发明的一致性检查可以是一种可达性特性。例如,可以执行“冲突转移”的检查,即检查同一本地状态中是否选通两个或多个转移,导致了不确定性。这可以如下简化为可达性的问题考虑具有相同本地状态si和输入事件e的转移的所有保护条件个g1和g2对。如果全局状态可达,并且满足(IJ=si)^g1^g2,则会发生冲突。
这种检查可以简化为可达性检查。其它检查,例如从未选通的转移的检查和从未到达的状态的检查,生成了许多可达性检查,这在转移数量t上呈线性。在最坏情况下,冲突转移的检查导致大量的可达性检查,这在转移数量上呈平方上升。但是,实际上很少有转移具有相同的初始本地状态和输入事件,从而实际上生成的检查数量远比t小。
其它类型的一致性检查简化为缺少本地死锁的检查。如果系统能够到达某个状态,其中一个自动机对所有输入事件都永远处于空闲状态,则发生本地死锁。对n个自动机的每一个作这种检查。总共至少有t-n个检查需要执行以验证状态/事件系统,这与常规的模型检查相差很大,后者一般仅验证若干关键特性。
按照本发明的方法尝试通过在检查保护条件之间进行隐式检查来减少可达性检查的数量。如果保护条件g1隐含另一保护条件g2,那么显然如果g1可达,则g2也可达。为了使用这种信息,所有保护条件必须以其满足状态空间的规模来降序存储。通过这种方式,首先检查最特别的保护条件,对需要检查的每个新保护条件而言,它与所有已经检查(并可达1的保护条件相比较。如果新条件包括其中之一,则判定它是可满足的。实验表明,这种方式可以消除按照现有技术工具的可达性检查的40%到94%。
ROBDD表示本节描述如何利用减序二进制判决图来表示状态集和转移关系。
为了构造转移关系T的ROBDD ,我们首先构造每个自动机Mi的本地转移关系 。ROBDD变量表示输入事件、当前状态、下面的状态的编码。这些变量如下排序第一‖E‖变量编码输入事件E(‖E‖表示[log2︱x︱]),表示成VE。然后,2‖Si‖变量Vi,l,V’i,l,....,Vi,‖si‖,V’i,‖si‖编码自动机i的当前(未处理变量)和后面的状态(处理过的变量)。自动机i的转移关系 构造成3个变量上的ROBDD谓词。转移 (si,e,g,oI,s’i)∈Ti的ROBDD构造为si,e,g和s’i的ROBDD编码的与。(输出没有编码,因为它们对系统的可达状态没有影响。)si,e和s’i的编码很简单,保护条件g的编码通过将自动机Mj的所有原子谓词lJ=p转换为当前状态变量上的ROBDD谓词,然后执行保护条件的布尔操作来实现。自动机i的所有转移的编码可以从单个转移的编码的析取得到。 其中 是输入事件e的ROBDD编码, 是输入事件e的ROBDD编码, 和 分别是当前状态si和下一状态S’i的ROBDD编码。
为了正确编码全局转移关系T,我们需要处理没有选通Ti转移的情况。在这些情况下,我们希望自动机i停留在它的当前状态。我们通过否定自动机i的所有保护条件(包括输入事件),构造ROBDD negi,表示没有选通转移 ROBDD equi编码自动机i没有改变状态,要求下一状态与当前状态相同 自动机i的本地转移关系是 完全转移关系的ROBDD 是本地转移关系的与 组合后向可达性现有技术递归的问题一般可以通过后向可达性分析来解决。验证任务是确定是否能满足保护条件g。我们不再计算可达状态空间,检查g在该集合中某处是否合法,而是开始处理其中g是合法的状态集,并且在后向递归中计算可以到达满足g的某个状态的状态。目的是确定初始状态是否在这些状态之中。我们的新颖点在于,以组合方式执行后向递归,仅考虑最少数量的自动机。最初,只考虑g中提到的自动机。后来将包括这些相关的自动机。
注意到与前向递归相比,在执行大量的可达性检查时,这种方案具有明显的缺陷不是仅一个定点递归就能构造可达性状态空间R(然后很一般地验证特性),而是检查的每个特性都需要一个新的定点递归。但是,实验表明,如果采用组合后向递归,即使非常大的模型也能完成每个定点递归,而前向递归甚至对中等规模的模型都无法完成R的构造。
为了形式化后向组合技术,需要一种相关性概念的语义版本。对自动机I⊆{I,...,n}]]>的一个子集而言,两个状态s,s’∈S是I等价的,写作s=Is’,如果对所有的i∈I,sj=si’(这里的数用于表示另一状态,与后面的状态无关)。如果全局状态S的子集P仅受某一索引集I中分量的限制,则P可以视为以I为序。这导致以下定义S的子集P是I排序的,如果对所有s,s’∈S, 在图22中,该图是表示BI(g)的效果的一个例子。如果X是保护条件IJ=p,Y是保护条件IK=q,j,k∉I]]>,则从si的转移看来取决于I外部的自动机Mj和Mk。但是,保护条件X, X,Y和 Y一起覆盖了所有的可能性,因此,通过选择e1、e2或e3,状态si可以到达g,而与自动机Mi和Mk的状态无关。
图23说明了从实际例子中取来的9状态机之间的相关性。从一个自动机Mi到另一自动机Mi的箭头表明Mi中存在转移,其保护条件取决于自动机Mj中的状态。
作为例子,考虑仅涉及自动机1和3的保护条件g。对任何包含1和3的I而言,g所定义的状态集是I排序的。该定义的另一理解是集合P是I排序的,如果它在补中独立于自动机 从I排序集合g中,我们如下完成后向可达性计算包括不论I^]]>中自动机的状态如何都能到达g的状态。一种由函数BI(g)给出的后向步骤如下定义 通过将BI(g)定义为I排序,集合BI(g)是这样一组状态,这些状态不论I^]]>中的自动机如何,都能够在某个输入事件e激励下到达g中的状态。注意到BI(g)在g和I中都是单调的。图22表明了自动机状态si如何被包含在BI(g)中,尽管它在句法上似乎与I之外的自动机相关。
通过递归BI的应用,现在可以计算BI应用下包含g且关闭的状态的最小集。这是最小的定点μX.g∪BI(x),我们将其称为BI*(g)。注意到P56L14变成可以到达g的状态的所需集合。
如果I中没有自动机与I之外的自动机相关,则索引I的集合称为相关性闭合。严格地说,如果对所有i∈I,状态s’,s,si,输入事件e和输出o, ,并且s'=ls隐含 则I是相关性闭合的。
集合BI*(g)的基本特性通过以下引理捕获
引理1(组合可达性引理)。假定g是S的I排序子集。对自动机I,J,I⊆J]]>的所有子集而言,以下成立 引理的结果以以下方式应用。为了检查保护条件g是否可达,首先考虑g中句法上提到的自动机,I1的集合。显然,g是I1排序的。然后计算B*I1(g)。如果初始状态S0属于B*I1(g),则通过(ⅰ)S0∈B*(1…n)(g),因而g可从S0到达,我们终止。如果不是,我们增加I1中自动机转移中保护条件在句法上提到的自动机,将I1扩展到较大的自动机集I2。然后,重用B*I1(g),以(ⅱ)纠正的B*I2(B*J1(g))来计算B*I1(g)。如此继续,直至在一个集合中发现S0,或者索引集Ik相关性闭合。在后一种情况下,(ⅲ)B*IK(g)=B*(1,…,n)(g)和g是不可达的,除非s∈B*IK(g)。
作为例子,假定在图22的例子中应当确定保护条件P57L13是否可达。初始索引集是I1={1,3}。如果这不足以表示g是可达的,则使用第二索引集I2={1,3,7,2}。因为该集合是相关性闭合的,g当且仅当初始状态属于B*J2(B*J1(g))时才可达。
上述构造基于后向递归。也可以定义前向递归的BI对称版本。但是,这种定义无法利用相关性信息,因为s0只对I={1,...,n)是I排序的。因此,所有自动机都在第一定点递归中考虑,将其简化到现有技术方法中提到的完整的前向递归。
看上去,BI(g)的定义需要全局转移关系的知识,因此不象能产生任何可计算的优点。但是,下面将会解释,这可以利用ROBDD避免,孚致了有效的BI(g)计算。ROBDD 表示了一个从ROBDD 表示的状态的后向递归,它可以根据定义(1)立即构造 (2)
其中 等于 ,V中的所有变量替换为它们的最初版本。这对避免构造全局转移关系 而言是必要的。这通过将 写成 ,并且 ,其中 来完成。这使得我们能够将V’I的已有量化推进到 ,因为g是I排序的,从而独立于V’I中的变量。因为 是重言式, 公式(2)简化为 它仅使用I中自动机的本地转移关系。每个Ti仅指向V’i中未处理的变量,允许单独为每个自动机进行早期的变量量化 该等式有效地计算了定点递归中的一步,构造 注意,已有的量化可以以任意次序执行。我们选择了自动机出现在输入中的次序,但改进性能的其它次序也可以存在。
本地死锁检测在检查本地死锁的过程中,采用了类似于后向可达性的构造。为了使组合后向引理可以应用,采用的活跃自动机的表示是具有本地死锁的精确对称。换句话说,如果总有这样的情况存在,则自动机是活跃的存在一种方式,使得自动机移动到新的本地状态。严格地说,如果存在这样一种状态序列,s1,s2,…sk,s=si,并且 (对某些e和o成立),使得ski≠slk,则状态机i的全局状态s是活跃的。如果所有可达状态都是活跃的,则自动机i是活跃的。图24中给出了具有本地死锁的状态/事件系统的简单例子。
图24示出的状态/事件系统具有本地死锁。全局状态s=(P2,q1)对右边的自动机不是活跃的,因为对所有输入事件,保护条件P1保持为假。状态s是可达的(例如通过最初接收e1),从而右侧的自动机具有本地死锁。
将检查划分成两部分。首先,计算自动机i的所有活跃状态L*i的集合。其次,我们检查所有可达状态位于L*i。直接但是不很有效的方法是计算两个集合,检查其包含性。但是,按照本发明的组合构造的优点用于这两部分检查的后向可达性。
类似于BI(g)的定义,L1,I(X)定义为这样的状态集合,这些状态对i∈I的自动机而言直接活跃,而与I之外的自动机无关,或者它们导致X中的状态(这些是假定的自动机i的活跃状态) 注意到比较定义(1),唯一的区别是附加的状态立即活跃的可能性,即si≠s″i。自动机i的活跃的状态机集合独立于i之外的自动机,它是集合L*I,1(φ),其中L*I,1(Y)是由L*I,1(Y)=μX.Y∪LI,1(X)定义的最小定点。
当Y是I排列时,引理1的3个特性还对L*I,l(Y)成立。如果I是相关性闭合的,则它符合引理的特性(ⅲ)的,L*I,1(φ)等于L*(1,…,n),i(φ),它正是自动机i的活跃状态集。这给出了一种有效的方式来计算I的不同选择的集合L*I,1(φ)。开始时I1等于{i},接着以较大的Ik’s进行后向可达性。唯一的区别在于终止条件。一种可能的终止情况是对某些k来讲L*IK,1(φ)是否等于S。在这种情况下,根据引理的单调性特性(ⅰ),可达性状态集合包含在L*IK,1(φ)中并不重要。之后,自动机i活跃,从而不会有本地死锁。其它终止情况是在Ik相关性闭合时。我们必须检查是否存在不在L*IK,1(φ)中的可达性状态。这通过组合g=S\L*IK,1(φ)的后向可达性检查来完成。
引理1的证明首先直接从定义观察到BI(g)在I和g上都是单调的,即,对任何 采用最小定点的操作也是单调的,因此,对任何I和J,I⊆J]]>,我们从(1)中B*J(g)=μX.g∪Br(X) μX.g∪BJ(X)=B*J(g)只要在自动机I的索引集合中B*I(g)是单调的,这是引理的(i)。
为了证明引理的(ⅱ),首先从B*I(g)的定义观察到g B*I(g),因此利用单调性B*I(_)和B*(g)得出B*J(g) B*J(B*J(g)) B*J(B*J(g))=B*J(g)最后等式得出B*I(g)是定点的。我们证明了引理的(ⅱ)。
为了证明(ⅲ),首先注意到包含 由(ⅰ)成立。因此,集中到另一包含 ,采用以下定点归纳原理(归于David Park) 回忆F(X) X的集合X称为X的预固定点,我们可以将这表示成“pY.F(Y)是F的最小预定点,因此,如果X是F的另一预定点,则它必须包括最小值”。我们必须证明g∪BJ(B*J(g)) B*J(g)
以证明(ⅲ)。注意到通过定义g B*I(g),得到进一步简化,我们仅需要证明 (如果集合x和y包含在第三集合z中,那么z中还包含最小上界x∪y。)现在假定s是BJ(B*I(g))\g中的某个状态。然后通过BJ(_)的定义,以下成立s′∈S.s=ls′ ,且 s’’∈B”(g) (3)为了检查s是否在B*I(g)中,必须证明以下成立s’∈S.s=ls’ ,且s’’’∈B*l(g) (4)我们证明了对所有满足s=Is’,e,o的s’,存在s’’’,使得 且s’’’∈B*I(g)。现在,如果s’使得s=Is’,我们可以使得s’’’=s’’,(4)然后从(3)开始,至此结束。如果s’不满足s=Is’,但是s≠Is’,我们如下继续。定义 如下 从该定义中可以得出, 和 ,即通过(3),存在e,o和 ,使得 和s”∈B*l(g)。因为I是相关性闭合的,并且 ,得出对所有的i∈I, 因此,对所有i∈I,存在s’’’使得 。因为B*I(g)是I排序的,得出s’’’∈B*I(g),证明(4)。
应当注意,本发明可以实现为计算机程序或者计算机程序的一部分,该程序可以载入计算机的内存并执行。计算机程序可以利用任何数据存储或者数据传输介质分发。存储介质可以是磁带、光盘、激光唱盘(CD或CD-ROM)、小盘、硬盘、软盘、铁电存储器、电可擦除可编程只读存储器(EEPROM)、闪存、EPROM、只读存储器(ROM)、静态随机存储存储器(SRAM)、动态随机存储存储器(DRAM)、铁电存储器、光存储器、电耦合设备、智能卡等等。传输媒介可以是网络,例如局域网(LAN)、广域网(WAN)或其任意组合,例如Internet。网络可以包括有线或无线通信链路。通过网络,本发明的软件实施例(即程序)或其一部分可以借助网络传送程序来分布。
权利要求
1.一种分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,所述自动机(M1,…Mn)的动态行为由各自动机(M1,…Mn)的所述状态之间的预定转移,以及所述自动机(M1,…Mn)之间的相关性(D)来定义,启动所述自动机(M1,…Mn)的至少一个自动机状态的初始集合(F),启动表示自动机(MI)子集状态条件的自动机状态目标集合(A),重复以下步骤,直至分析得到肯定终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…Mn),为目标集(A)扩展一组状态,这些状态通过转移可以到达前一目标集(A),而与没有包含在(MI)中的自动机无关,如果(A)包括初始状态集(F)中至少一个自动机状态,则肯定终止,否则为自动机(MI)的子集扩展自动机(M1,…Mn)的至少一个子集。
2.根据权利要求1的基于状态的系统模型的分析方法,其中为自动机(MI)的扩展自动机(M1,…Mn)的至少一个子集的步骤包括为自动机(MI)的扩展自动机的至少一个子集,前一(MI)与该子集相关。
3.根据权利要求2的基于状态的系统模型的分析方法,其中如果在为目标集(A)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则分析否定终止,前述状态组可以达到前一目标集(A),而与没有包含在(MI)中的自动机无关。
4.根据权利要求2-3的基于状态的系统模型的分析方法,其中如果在为目标集(A)扩展一组状态的所述步骤之后,目标集(A)完全包含以前考虑的已经得到肯定终止的目标集(B),则分析肯定终止,前述状态组可以达到前一目标集(A),而与没有包含在(MI)中的自动机无关。
5.根据权利要求1-4的基于状态的系统模型的分析方法,其中如果在为目标集(A)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则向用户提供一种可视或者可闻指示,前述状态组可以达到前一目标集(A),而与没有包含在(MI)中的自动机无关。
6.根据权利要求1-5的基于状态的系统模型的分析方法,其中分析应用户请求而终止。
7.根据权利要求1-6的基于状态的系统模型的分析方法,其中相关性(D)表示为定向图。
8.根据权利要求1-7的基于状态的系统模型的分析方法,其中通过表示相关性的定向图的宽度优先遍历来确定自动机(MI)的增加集合。
9.根据权利要求1-8的基于状态的系统模型的分析方法,其中将自动机状态集表示成减序二进制判决图(ROBDD),对这些状态的操作实现成对减序二进制判决图(ROBDD)的有效操作。
10.根据权利要求1-9的基于状态的系统模型的分析方法,其中转移表示成减序二进制判决图(ROBDD)的分区转移关系。
11.根据权利要求1-10的基于状态的系统模型的分析方法,其中状态(A)集合由重复的定点递归来动态计算。
12.一种分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,所述自动机(M1,…Mn)的动态行为由每一自动机(M1,…Mn)的所述状态之间的预定转移和所述自动机(M1,…Mn)之间的相关性(D)定义,对每一自动机(M1,…,Mi,…,Mn)而言,初始化自动机(MI)的一个子集,包括目前分析的自动机(Mi),初始化一组(Ai)活跃状态(Ai),所述活跃状态是当前分析的自动机(Mi)的自动机状态,这些状态独立于其它自动机,可以改变到所述自动机的其它可能状态(pS1Mi,…,pSkMi),重复以下步骤,直至分析终止,或者(MI)包括所有自动机(M1,…,Mn),为该组活跃状态(Ai)扩展一组状态,这组状态通过转移可以到达活跃状态(Ai)的前一集合,而与没有包含在(MI)中的自动机无关,和/或一组状态,它们通过转移可以改变(Mi)的状态,而与没有包含在(MI)中的自动机无关,如果(Ai)包括所述自动机(Mi)中的所有可能自动机状态,则分析肯定终止,否则将(MI)至少扩展自动机的某个子集。
13.根据权利要求11的基于状态的系统模型的分析方法,其中为(MI)扩展自动机的至少一个子集的步骤包括为(MI)扩展自动机的至少一个子集,前一(MI)与该子集相关。
14.根据权利要求12-13的基于状态的系统模型的分析方法,其中如果在为活跃状态集(Ai)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则分析否定终止,前述状态组可以通过转移达到活跃状态(Ai)的前一集合,和/或一组状态,它们通过转移可以改变(Mi)的状态,而与没有包含在(MI)中的自动机无关。
15.根据权利要求13的基于状态的系统模型的分析方法,其中如果在为活跃状态集(Ai)扩展一组状态的所述步骤之后,活跃状态集(Ai)完全包含以前考虑的已经得到肯定终止的活跃状态集(Aj),则分析肯定终止,前述状态组可以通过转移达到活跃状态(Ai)的前一集合,和/或一组状态,它们通过转移可以改变(Mi)的状态,而与没有包含在(MI)中的自动机无关。
16.根据权利要求12-15的基于状态的系统模型的分析方法,其中相关性(D)表示为定向图。
17.根据权利要求12-16的基于状态的系统模型的分析方法,其中通过表示相关性的定向图的宽度优先遍历来确定自动机(MI)的增加集合。
18.根据权利要求12-17的基于状态的系统模型的分析方法,其中将自动机状态集表示成减序二进制判决图(ROBDD),对这些状态的操作实现成对减序二进制判决图(ROBDD)的有效操作。
19.根据权利要求12-18的基于状态的系统模型的分析方法,其中转移表示成减序二进制判决图(ROBDD)的分区转移关系。
20.根据权利要求12-19的基于状态的系统模型的分析方法,其中状态(A)集合由重复的定点递归来动态计算。
21.根据权利要求12-20的基于状态的系统模型的分析方法,其中为每个自动机(Mi)确定一组潜在的死自动机状态(Adi)作为可能的自动机状态,这些状态不在活跃自动机状态(Ai)的确定集合中。
22.根据权利要求21的基于状态的系统模型的分析方法,其中该方法还包括以下步骤具有潜在死自动机状态(Adi)的每个自动机(MI)初始化所述自动机(M1,…,Mn)的自动机状态的初始集合(F),初始化表示自动机(M2)的潜在死自动机状态的自动机状态(Adi)的目标集,以及重复以下步骤,直至分析终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…,Mn),将目标集(Adi)扩展一组状态,这些状态通过迁移可以到达前一目标集(Adi),而与没有包含在(MI)中的自动机无关,如果(Adi)至少包括初始状态集(F)中的至少一个状态,则肯定终止,否则将自动机(MI)的该子集扩展至少自动机(M1,…,Mn)的某个子集。
23.根据权利要求22的基于状态的系统模型的分析方法,其中为(MI)扩展自动机(M1,…Mn)的至少一个子集的步骤包括为(MI)扩展自动机的至少一个子集,前一(MI)与该子集相关。
24.根据权利要求22或23的基于状态的系统模型的分析方法,其中如果在为目标集(Adi)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则分析否定终止,前述状态组可以达到前一目标集(Adi),而与没有包含在(MI)中的自动机无关。
25.根据权利要求22或23的基于状态的系统模型的分析方法,其中如果在为目标集(Adi)扩展一组状态的所述步骤之后,目标集(Adi)完全包含以前考虑的已经得到肯定终止的目标集(Adj),则分析肯定终止,前述状态组可以达到前一目标集(Adi),而与没有包含在(MI)中的自动机无关。
26.根据权利要求22-24的基于状态的系统模型的分析方法,其中如果在为目标集(Adi)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则向用户提供一种可视或者可闻指示,前述状态组可以达到前一目标集(Adi),而与没有包含在(MI)中的自动机无关。
27.根据权利要求22-26的基于状态的系统模型的分析方法,其中相关性(D)表示为定向图。
28.根据权利要求22-27的基于状态的系统模型的分析方法,其中通过表示相关性的定向图的宽度优先遍历来确定自动机(MI)的增加集合。
29.根据权利要求22-28的基于状态的系统模型的分析方法,其中将自动机状态集表示成减序二进制判决图(ROBDD),对这些状态的操作实现成对减序二进制判决图(ROBDD)的有效操作。
30.根据权利要求22-29的基于状态的系统模型的分析方法,其中转移表示成减序二进制判决图(ROBDD)的分区转移关系。
31.根据权利要求22-30的基于状态的系统模型的分析方法,其中状态(Adi)集合由重复的定点递归来动态计算。
32.一种分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,所述自动机(M1,…Mn)的动态行为由各自动机(M1,…Mn)的所述状态之间的预定转移,以及所述自动机(M1,…Mn)之间的相关性(D)来定义,为至少一个自动机(Mi)判定至少一个,最好是全部,潜在的死自动机状态(Adi),在所述自动机(Mi)处于所述自动机状态(Adi)中任意一个时,这些状态将保持在同一死自动机状态(Adi)中,与可能的外部事件无关,具有潜在死自动机状态(Adi)的每个自动机(MI)初始化所述自动机(M1,…,Mn)的自动机状态的初始集合(F),初始化表示自动机(MI)的潜在死自动机状态的自动机状态(Adi)的目标集,以及重复以下步骤,直至分析终止和/或如果自动机(MI)的子集包括所有所述自动机(M1,…,Mn),将目标集(Adi)扩展一组状态,这些状态通过迁移可以到达前一目标集(Adi),而与没有包含在(MI)中的自动机无关,如果(Adi)至少包括初始状态集(F)中的至少一个状态,则肯定终止,否则将自动机(MI)的该子集扩展至少自动机(M1,…,Mn)的某个子集。
33.根据权利要求32的基于状态的系统模型的分析方法,其中为(MI)扩展自动机(M1,…Mn)的至少一个子集的步骤包括为(MI)扩展自动机的至少一个子集,前一(MI)与该子集相关。
34.根据权利要求33的基于状态的系统模型的分析方法,其中如果在为目标集(Adi)扩展一组状态的所述步骤之后,(MI)中的自动机都与(MI)之外的自动机没有关系,则分析否定终止,前述状态组可以达到前一目标集(Adi),而与没有包含在(MI)中的自动机无关。
35.根据权利要求33的基于状态的系统模型的分析方法,其中如果在为目标集(Adi)扩展一组状态的所述步骤之后,目标集(Adi)完全包含以前考虑的已经得到肯定终止的目标集(Adj),则分析肯定终止,前述状态组可以达到前一目标集(Adi),而与没有包含在(MI)中的自动机无关。
36.根据权利要求32-35的基于状态的系统模型的分析方法,其中相关性(D)表示为定向图。
37.根据权利要求32-36的基于状态的系统模型的分析方法,其中通过表示相关性的定向图的宽度优先遍历来确定自动机(MI)的增加集合。
38.根据权利要求32-37的基于状态的系统模型的分析方法,其中将自动机状态集表示成减序二进制判决图(ROBDD),对这些状态的操作实现成对减序二进制判决图(ROBDD)的有效操作。
39.根据权利要求32-38的基于状态的系统模型的分析方法,其中转移表示成减序二进制判决图(ROBDD)的分区转移关系。
40.根据权利要求34-39的基于状态的系统模型的分析方法,其中状态(Adi)集合由重复的定点递归来动态计算。
41.一种分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,所述自动机(M1,…Mn)的动态行为由各自动机(M1,…Mn)的所述状态之间的预定转移,以及所述自动机(M1,…Mn)之间的相关性(D)来定义,考虑定义良好的方法B,针对给定自动机集合(MI)的转移来扩展自动机集合,其中这种方法B是定义良好的,只要一旦B应用于自动机集合(MI)以扩展包含另一自动机状态集合Y的自动机状态集合X,所述集合X的扩展包含了将B针对(MI)应用于所述集合Y上得到的扩展,以及一旦(MI)和(MJ)是自动机集合,(MJ)至少包含(MI)的自动机,则将B针对(MJ)应用于自动机状态集合X上得到的扩展至少包含将B针对(MI)应用于所述集合X上得到的扩展,初始化所述自动机(M1,…,Mn)的自动机状态的初始集合(F),初始化表示自动机(MI)的子集状态情况的自动机状态(A)的目标集,以及重复以下步骤,直至分析终止或(MI)包括所有自动机(M1,…,Mn),(a)至少一次在(MI)上利用所述方法B扩展目标集(A),最好一直到目标集(A)与前一(A)相同,(b)将(MI)扩展自动机的某个子集。
42.根据权利要求41的基于状态的系统模型的分析方法,其中在至少一次在(MI)上利用所述方法B扩展目标集(A),最好一直到目标集(A)与前一(A)相同的所述步骤之后,如果目标集(A)至少包含(F)中的一个状态,则分析终止。
43.根据权利要求41或42的基于状态的系统模型的分析方法,其中在至少一次在(MI)上利用所述方法B扩展目标集(A),最好一直到目标集(A)与前一(A)相同的所述步骤之后,如果目标集(A)包含所有自动机状态,则分析终止。
44.根据权利要求42-43的基于状态的系统模型的分析方法,其中在至少一次在(MI)上利用所述方法B扩展目标集(A),最好一直到目标集(A)与前一(A)相同的所述步骤之后,如果(MI)中的自动机都与(MI)之外的自动机没有关系,则分析终止。
45.根据权利要求41-44的基于状态的系统模型的分析方法,其中在(MI)上利用所述方法B扩展目标集(A)的所述步骤之后,如果目标集(A)完全包含以前考虑的已经得到肯定终止的目标集(B),则分析肯定终止。
46.根据权利要求42-45的基于状态的系统模型的分析方法,其中在至少一次在(MI)上利用所述方法B扩展目标集(A),最好一直到目标集(A)与前一(A)相同的所述步骤中的扩展受限于一组自动机,前一(MI)与该自动机相关。
47.执行按照权利要求1-46的方法的计算机。
48.其内容导致计算机执行按照权利要求1-47的方法的计算机可读介质。
全文摘要
本发明涉及一种分析基于状态的系统模型的方法,前述系统模型包括一组自动机(M1,…Mn),每个所述自动机包括至少一个可能的状态(pS1Mi,…,pSkMi),在任一时刻,每个自动机都处于其组成状态之一,所述自动机(M1,…Mn)的动态行为由各自动机(M1,…Mn)的所述状态之间的预定转移,以及所述自动机(M1,…Mn)之间的相关性(D)来定义。本发明的许多重要优点之一是,许多实际的基于状态的系统模型的分析可以不需要评估系统模型中的数量巨大的自动机。
文档编号G06F11/36GK1295686SQ9980455
公开日2001年5月16日 申请日期1999年3月26日 优先权日1998年3月27日
发明者亨里克·里尔伯格, 亨里克·豪尔加德, 约恩·伯·林德-尼尔森, 亨里克·雷夫·安德森, 金·古德斯特兰德·拉尔森, 卡尔·杰林·克里斯托福森, 格尔德·伯尔曼 申请人:Iar系统有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1