Open Systems Laboratory at Illinois

A survey of statistical model checking

By Gul Agha and Karl Palmskog. ACM Transactions on Modeling Computing and Simululation, 28(1):6:1–6:39, 2018.

Publisher Link:


Interactive, distributed, and embedded systems often behave stochastically, for example, when inputs, message delays, or failures conform to a probability distribution. However, reasoning analytically about the behavior of complex stochastic systems is generally infeasible. While simulations of systems are commonly used in engineering practice, they have not traditionally been used to reason about formal specifications. Statistical model checking (SMC) addresses this weakness by using a simulation-based approach to reason about precise properties specified in a stochastic temporal logic. A specification for a communication system may state that within some time bound, the probability that the number of messages in a queue will be greater than 5 must be less than 0.01. Using SMC, executions of a stochastic system are first sampled, after which statistical techniques are applied to determine whether such a property holds. While the output of sample-based methods are not always correct, statistical inference can quantify the confidence in the result produced. In effect, SMC provides a more widely applicable and scalable alternative to analysis of properties of stochastic systems using numerical and symbolic methods. SMC techniques have been successfully applied to analyze systems with large state spaces in areas such as computer networking, security, and systems biology. In this article, we survey SMC algorithms, techniques, and tools, while emphasizing current limitations and tradeoffs between precision and scalability.


    author = "Agha, Gul and Palmskog, Karl",
    title = "A Survey of Statistical Model Checking",
    biburl = "",
    doi = "10.1145/3158668",
    journal = "{ACM} Transactions on Modeling Computing and
    number = "1",
    pages = "6:1--6:39",
    timestamp = "Tue, 06 Nov 2018 00:00:00 +0100",
    url = "",
    volume = "28",
    year = "2018",