Skip to main content
QUICK REVIEW

[论文解读] The Probabilistic Model Checker Storm (Extended Abstract)

Christian Dehnert, Sebastian Junges|arXiv (Cornell University)|Oct 27, 2016
Software Testing and Debugging Techniques参考文献 26被引用 8
一句话总结

Storm 是一个高性能、可扩展的概率模型检测器,支持离散时间与连续时间的马尔可夫模型,包括 DTMC、CTMC、MDP 和 MA,并集成奖励结构。它采用基于稀疏矩阵和 MTBDD 的模块化引擎,利用高性能求解器(如 Gurobi、Z3、CUDD),并支持多种输入语言(如 PRISM、JANI 和 GSPN),实现精确算术运算,支持参数化验证和概率反例等高级分析。

ABSTRACT

We present a new probabilistic model checker Storm. Using state-of-the-art libraries, we aim for both high performance and versatility. This extended abstract gives a brief overview of the features of Storm.

研究动机与目标

  • 开发一个高性能、模块化的概率模型检测器,支持广泛的模型类型和分析技术。
  • 通过集成最先进的求解器和数据结构,实现高效可扩展的概率系统验证。
  • 支持高级验证任务,如参数化模型检查、概率反例生成和容许调度器合成。
  • 在一个统一可扩展的框架中统一支持多种建模语言(PRISM、JANI、GSPN、cpGCL)和 DFT。
  • 提供精确算术和统计模型检查能力,以提升准确性和通用性。

提出的方法

  • Storm 使用两种主要的内存内表示方式:小到中等规模模型使用稀疏矩阵,大规模系统使用多终端 BDD(MTBDD)。
  • 它提供多种验证引擎——稀疏、学习、dd 和混合引擎——每种均针对特定的模型特征和操作进行了优化。
  • 该工具集成了模块化求解器架构,支持线性方程、贝尔曼方程、(M)ILP 和 SMT 求解,通过 Gurobi、Z3、CUDD 等高性能库实现。
  • Storm 支持符号化输入格式,包括 PRISM、JANI 和 GSPN,通过直接建模和 JANI 编码原生支持广义随机 Petri 网。
  • 它利用 CArL 库实现精确算术运算,用于参数化模型中的有理函数操作,避免浮点近似。
  • 系统提供 C++ API 以支持性能关键的应用,以及 Python API 以实现快速原型设计和集成。

实验结果

研究问题

  • RQ1如何设计概率模型检测器的架构,以在高性能、可扩展性和模块化之间取得平衡?
  • RQ2哪些数据结构组合(稀疏矩阵、MTBDD)与求解器组合(SMT、MILP、线性求解器)能够实现对多样化模型类型的高效验证?
  • RQ3统一框架能否有效支持异构建模语言(如 PRISM、JANI、GSPN 和 DFT)的同时保持性能?
  • RQ4与浮点方法相比,参数化模型检查中的精确算术在准确性和性能方面有多大提升?
  • RQ5Storm 的模块化设计如何支持高级验证技术的实现,如概率反例和容许调度器生成?

主要发现

  • Storm 在动态故障树(DFT)分析中优于现有竞争工具,展现出在该特定领域更高的可扩展性和效率。
  • 通过 CArL 库集成精确算术,实现了对离散时间模型的精确参数化验证,显著优于现有工具在此任务上的表现。
  • Storm 的模块化求解器架构支持无缝集成高性能库(如 Gurobi、Z3、CUDD),可针对不同任务选择最优求解器,避免许可证冲突。
  • 混合引擎结合 MTBDD 和稀疏矩阵,在某些模型类别中性能优于纯 MTBDD 或稀疏矩阵方法。
  • 通过直接建模和 JANI 编码对 JANI 格式和 GSPN 的支持,使 Storm 成为首个原生支持所有广义随机 Petri 网模型的工具。
  • Python API 支持快速原型设计并可访问高性能 Storm 组件,而 C++ API 支持低级性能关键型应用。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。