状态 space 最先进模型跳棋的大小
State space size of state of the art model checkers
现代模型跳棋的近似最大状态 space 是多少,例如 NuSMV。
我不需要确切的数字,但需要一些状态大小值,其中 运行 时间仍然可以接受(比如几周)。
除了符号模型检查之外,还有哪些改进可以提高该限制?
答案千差万别,除其他因素外,还取决于:
- 使用什么模型校验算法
- 系统的表示方式
- 模型检查器(或其他工具)是如何实现的
- 该软件 运行 在什么硬件上(以及并行化等)。
我不会提及一些具体的州数,而是会指出一些相关因素(我在下面使用 "specification" 作为 "model" 的同义词):
符号或枚举:符号算法的缩放比例与枚举算法不同。此外,对于同一问题,已知的符号算法和枚举算法的计算复杂度通常存在差异。
枚举在行为上是相对可预测的,因为具有 N
个状态的状态 space 很可能比状态 space 花费更短的时间来枚举1000000 * N
个状态。
基于 binary-decision diagrams (BDD) 的符号方法的行为方式(几乎)与根据规范可到达的状态数无关。主要是规范的编码中会出现什么样的布尔函数。
例如,涉及乘数的规范将导致 BDDs that are exponentially large in the number of bits 表示状态,因此大小与状态数成线性关系(假设可达状态比使用的位数呈指数增长)代表这些州)。在这种情况下,状态 space 和 2^50
状态可能会被禁止进行符号分析。
换句话说,重要的不仅仅是状态的数量,而是系统动作对应的布尔函数的种类(TLA+中的动作对应于其他形式主义中的转移关系)。此外,选择不同的编码(整数位编码)会对 BDD 大小产生影响。
Symmetry(例如,部分降阶)和抽象是对更复杂系统进行分析的一些改进。
可接受的运行时间是一个相对的概念。无论采用何种模型检查方法,模型保真度达到可用时间总是有一个限制。
另一种方法是编写一个参数未指定的规范,然后使用模型检查器查找规范实例中与小参数值对应的错误,并在更正这些错误之后,然后使用定理证明器来确保正确性的规范。 TLA+, namely the model checker TLC and the theorem prover TLAPS.
的工具支持此方法
关于术语("specification" 以上),请参阅 Leslie Lamport 的 "What good is temporal logic?"。
还值得注意的是,根据方法的不同,状态数和可达状态数可能是不同的概念。通常,这在类型化形式主义中很重要:我们可以指定一个具有 1 个可达状态的系统,但声明会导致更多状态的变量类型,其中大多数状态在初始条件下是不可到达的。在符号方法中,这会影响编码,从而影响 BDD 的大小。
与状态相关的参考文献 space 大小:
Bwolen Yang、Randal E. Bryant、David R. O'Hallaron、Armin Biere、Olivier Coudert、Geert Janssen、Rajeev K. Ranjan、Fabio Somenzi,A performance study of BDD-based model checking, FMCAD, 1998, DOI: 10.1007/3-540-49519-3_18
拉德克·佩拉内克,Properties of state spaces and their applications, STTT, 2008, DOI: 10.1007/s10009-008-0070-5 (and a relevant website)
拉德克·佩拉内克,Typical structural properties of state spaces, SPIN, 2004, DOI: 10.1007/978-3-540-24732-6_2
Yunja Choi, From NuSMV to SPIN: Experiences with model checking flight guiding systems, FMSD, 2007, DOI: 10.1007/s10703-006-0027-9
J.R。伯奇,E.M。克拉克 K.L。麦克米兰 D.L。莳萝,L.J。黄 Symbolic model checking: 10^20 states and beyond, LICS, 1990, DOI: 10.1109/LICS.1990.113767
现代模型跳棋的近似最大状态 space 是多少,例如 NuSMV。 我不需要确切的数字,但需要一些状态大小值,其中 运行 时间仍然可以接受(比如几周)。
除了符号模型检查之外,还有哪些改进可以提高该限制?
答案千差万别,除其他因素外,还取决于:
- 使用什么模型校验算法
- 系统的表示方式
- 模型检查器(或其他工具)是如何实现的
- 该软件 运行 在什么硬件上(以及并行化等)。
我不会提及一些具体的州数,而是会指出一些相关因素(我在下面使用 "specification" 作为 "model" 的同义词):
符号或枚举:符号算法的缩放比例与枚举算法不同。此外,对于同一问题,已知的符号算法和枚举算法的计算复杂度通常存在差异。
枚举在行为上是相对可预测的,因为具有
N
个状态的状态 space 很可能比状态 space 花费更短的时间来枚举1000000 * N
个状态。基于 binary-decision diagrams (BDD) 的符号方法的行为方式(几乎)与根据规范可到达的状态数无关。主要是规范的编码中会出现什么样的布尔函数。
例如,涉及乘数的规范将导致 BDDs that are exponentially large in the number of bits 表示状态,因此大小与状态数成线性关系(假设可达状态比使用的位数呈指数增长)代表这些州)。在这种情况下,状态 space 和
2^50
状态可能会被禁止进行符号分析。换句话说,重要的不仅仅是状态的数量,而是系统动作对应的布尔函数的种类(TLA+中的动作对应于其他形式主义中的转移关系)。此外,选择不同的编码(整数位编码)会对 BDD 大小产生影响。
Symmetry(例如,部分降阶)和抽象是对更复杂系统进行分析的一些改进。
可接受的运行时间是一个相对的概念。无论采用何种模型检查方法,模型保真度达到可用时间总是有一个限制。
另一种方法是编写一个参数未指定的规范,然后使用模型检查器查找规范实例中与小参数值对应的错误,并在更正这些错误之后,然后使用定理证明器来确保正确性的规范。 TLA+, namely the model checker TLC and the theorem prover TLAPS.
的工具支持此方法关于术语("specification" 以上),请参阅 Leslie Lamport 的 "What good is temporal logic?"。
还值得注意的是,根据方法的不同,状态数和可达状态数可能是不同的概念。通常,这在类型化形式主义中很重要:我们可以指定一个具有 1 个可达状态的系统,但声明会导致更多状态的变量类型,其中大多数状态在初始条件下是不可到达的。在符号方法中,这会影响编码,从而影响 BDD 的大小。
与状态相关的参考文献 space 大小:
Bwolen Yang、Randal E. Bryant、David R. O'Hallaron、Armin Biere、Olivier Coudert、Geert Janssen、Rajeev K. Ranjan、Fabio Somenzi,A performance study of BDD-based model checking, FMCAD, 1998, DOI: 10.1007/3-540-49519-3_18
拉德克·佩拉内克,Properties of state spaces and their applications, STTT, 2008, DOI: 10.1007/s10009-008-0070-5 (and a relevant website)
拉德克·佩拉内克,Typical structural properties of state spaces, SPIN, 2004, DOI: 10.1007/978-3-540-24732-6_2
Yunja Choi, From NuSMV to SPIN: Experiences with model checking flight guiding systems, FMSD, 2007, DOI: 10.1007/s10703-006-0027-9
J.R。伯奇,E.M。克拉克 K.L。麦克米兰 D.L。莳萝,L.J。黄 Symbolic model checking: 10^20 states and beyond, LICS, 1990, DOI: 10.1109/LICS.1990.113767