Probabilistic Model Checking for almost everyone
Project description
Stormvogel 🐦: An interactive approach to probabilistic model checking in Python
The state-of-the-art model checking tools that are currently available are optimized to be efficient, but not much effort goes into making them user-friendly. The result of this is that they are quite hard to learn and use. Stormvogel solves this problem by providing easy and user-friendly APIs for creating probabilistic Markov models, and tools to visualize and debug them. It supports seemless conversion to the powerful Storm(py) model checker out of the box.
Features
-
Easy APIs for constructing Markov models in dedicated data structures. Currently, DTMCs, MDPs, CTMCs, POMDPs and Markov Automata are supported. This also includes parametric variants. Interval models are in development.
-
Seamless conversion between stormvogel and stormpy models with some runtime overhead. This allows, e.g., also using formats such as JANI and PRISM that are not supported by stormvogel directly. It is also possible to add support for a different model checker.
-
Visualization of Markov models as an interactive graph. This includes extensive layout options, and displaying model checking results and simulations in an interactive way.
-
Support for gymnasium environments
-
An extensive documentation with clear examples.
Check out the the stormvogel documentation for examples of how to use stormvogel.
Installation
There are different ways to install stormvogel, depending on your needs. If you do not have stormpy installed, we recommend installing with Docker. If you already have stormpy, or are not interested in features that rely on stormpy, then we recommend installing without docker.
Pip (release version, recommended for users)
- Run
pip install stormvogel. - To also install stormpy, run
pip install stormpy.
Docker (release version)
- Install
docker. Run: docker run -it -p 8080:8080 stormvogel/stormvogel- Now a browser window should open that runs jupyter lab with stormvogel and stormpy installed.
Without docker (release version)
Steps 1 and 2 can be difficult, and they only work on Linux and macOS. They are only required if you need the storm/stormpy backend. If this is not the case, consider skipping them. Most features will still work.
- Install Storm
- Install stormpy
- In the same environment where stormpy is installed, run
pip install stormvogel jupyter lab
For development (latest version)
Note that you might have to tweak these steps a bit to get it to work on your particular system, but here is an outline.
- Install the poetry package manager
- Install Storm
- Clone the stormpy repository
- Clone the stormvogel repo (or your own fork) in a separate folder
- In the stormvogel folder:
If installing stormpy fails in poetry, you can also try to follow the official stormpy installation instructions, and runpoetry install poetry shell # Activate poetry virtual environment pip install <path to stormpy> pip install . # Install stormvogelpoetry shellon top of thevirtualenvenvironment that they describe there. - Install
pre-commithook:pre-commit install
Testing
Notice that part of the tests will fail if stormpy is not installed.
pytest
Authors
Stormvogel was mainly developed at Radboud University by Linus Heck, Pim Leerkes, and Ivo Melse under supervision from Sebastian Junges and Matthias Volk.
Thank you to our contributors: Luko van der Maas, Nicklas Osmers.
License
Stormvogel is licenced under the GPL-3.0 license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file stormvogel-0.9.4.tar.gz.
File metadata
- Download URL: stormvogel-0.9.4.tar.gz
- Upload date:
- Size: 426.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.1 Linux/6.8.0-1031-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
305b7c7ca239d319c303687ea6d0a0b5a2183c9383a3fb24ceef451665686ee4
|
|
| MD5 |
7efb139d266d8a1e459c0413718964ac
|
|
| BLAKE2b-256 |
89f2fe153eca14b828385d6320a4329388795eae7cd898a5bed818a1bdc22c0a
|
File details
Details for the file stormvogel-0.9.4-py3-none-any.whl.
File metadata
- Download URL: stormvogel-0.9.4-py3-none-any.whl
- Upload date:
- Size: 449.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.4 CPython/3.13.1 Linux/6.8.0-1031-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f416e7c4399c0ed872ba8a03f8836e438a5d22ac9b7fecfc67f6f86f7277bdf
|
|
| MD5 |
2b113cf27679de7c7dda133f7dd306ea
|
|
| BLAKE2b-256 |
71630000f623988fee43312bcae53ed1359626880c7af921f50d2775d78c4471
|