Releases: moves-rwth/storm
Releases · moves-rwth/storm
v1.11.1
v1.11.0
- Completely restructured CMake build process:
- Storm can now be properly installed.
- Carl-storm is now automatically fetched from a predefined repository and tag. Use CMake option
-DFETCHCONTENT_SOURCE_DIR_CARL=<path_to_carl>to set a local path.
- Improved support for interval models, especially parsing support for Prism models with intervals and CLI support for interval models.
- Support for discounted properties in DTMCs and MDPs.
- Added guessing value iteration.
- Support exporting schedulers for multi-objective properties.
- Revised implementation of conditional probabilities for MDPs.
- Added building of choice labels for Jani.
- Support time limits for the Gurobi LP Solver.
- Various fixes in DRN parser, BitVector, (negative) expected rewards, parsing of PDEP and for compiler warnings.
- Updated dependencies: carl-storm, gmm, googletest, l3pp, spot.
- Removed support for Intel TBB.
- Developer: Replaced
GmmxxMultiplierbyViOperatorMultiplier. - Developer: Added CI workflow for new releases.
v1.10.0
- Improved
LpMinMaxLinearEquationSolver, set relevant values in topological solvers. - Speed up of MEC decomposition by adjusting loops.
- Minor improvements for steady-state properties.
- Improved access to state valuations.
- Improved parsing: detect and handle integer overflows in expression parsing, and handle irrational probability expressions.
- Limit Sylvan threads to 1 on Apple Silicon.
- Bug fixes in computation of cumulative rewards, transient variables in JANI, SMGs with non-synchronizing but labeled actions, in
SparseCbAchievabilityQueryandPcaaWeightVectorChecker. - Updated shipped dependencies: Eigen, ExprTk, Spot.
storm-dft: Set BDD variable ordering for SFT from file.storm-dft: Warning on potential modeling issues.storm-dft: Bug fixes in DFT representant computation and failable elements.storm-pars: Bug fixes in monotonicity computation.storm-pomdp: Added cut-off memory node information.storm-pomdp: Extended handling of terminal states.storm-pomdp: Improved output.- Developer: Require at least CMake version 3.22.
- Developer: Revised includes.
- Developer: GLPK is optional.
- Developer:
BitVectorconforms tostd::ranges::rangeconcept. - Developer: Improved CI tests and added builds on macOS.
v1.9.0
- Improved expected visiting times (EVTs) and steady state distribution computations.
- Support for interval-based models.
- Robust VI.
- Significantly improved compilation times.
- Support for logarithm expressions in PRISM and JANI.
- Support for sin and cos operators, and PI and Euler constants in JANI parser.
- Extraction of schedulers for minimal expected total rewards.
- More efficient MEC and SCC decompositions.
- Revised LP encoding for multi-objective verification under simple strategies.
- Added CLI option
--permuteto re-order the states after building. - Added CLI option
--build:state limit <number>to limit the number of explored states. - Print all linked libraries when using
--version. - Removed support for HyPro and Cuda.
- Moved gamebased-ar to own library.
- Various bug fixes.
storm-conv: Removed option--stdout.storm-dft: Fixes and improvements for DFT symmetries and DFT simulation.storm-pars: Completely reworked the command-line interface (and partially the C++ API).storm-pars: "Time travelling" optimization.storm-pgcl: Removed the library.- Developer: Require at least CMake version 3.15.
- Developer: Moved
storm-config.h.inintosrcdirectory. - Developer: Use various Dockerfiles in CI.
- Developer: Revised includes and use pre-compiled headers.
- Developer: Fixed various compiler warnings.
v1.8.1
v1.8.0
- Revised implementation of value iteration algorithms and its variants, fixing a bug in the optimistic value iteration heuristic.
- Experimental support for compiling on Apple Silicon.
- Added SoPlex as a possible LP solver.
- Upgraded shipped version of sylvan.
- Upgraded repo / version for carl (for polynomials), requires carl-storm in at least version 14.23.
- Removed support for just-in-time compilation (JIT). If the JIT engine is needed, use Storm version 1.7.0.
storm-dft: better modularization: improved algorithm for finding independent modules and revised the DFT analysis via modularization.storm-dft: added checks whether a given DFT is well-formed and conventional.storm-pomdp: streamlined implementation for quantitative analysis.storm-pomdp: added clipping for POMDP under-approximation.storm-pomdp: added API for interactive exploration of belief MDPs.- Developer: Introduced forward declarations (in their own headers), in particular for
storm::RationalNumber,storm::RationalFunction, andstorm::json. - Developer: LpSolver interface now supports RawMode (to avoid overhead of
storm::expression) and indicator constraints.
v1.7.0
- Fixed a bug in LP-based MDP model checking.
- DRN Parser is now more robust, e.g., it does no longer depend on tabs.
- PRISM Parser: Modulo with negative numbers is now consistent with Prism.
- Added lexicographic multi-objective model checking. Use
--lexin the command line interface when specifying amulti(...)property. - Fix handling duplicate entries in the sparse matrix builder.
- Added support for step-bounded until formulas in LTL.
- Added Dockerfile.
- API: Applying a fully defined deterministic memoryless scheduler to an MDP yields a DTMC.
storm-dft: Use dedicated namespacestorm::dft.storm-dft: Added support (parsing, export, BDD analysis) for additional BE failure distributions (Erlang, log-normal, Weibull, constant probability).storm-dft: Added instantiator for parametric DFT.- Developer: Storm is now built in C++17 mode.
- Developer: Added support for automatic code formatting for
storm-dft.
v1.6.4
- Added support for model checking LTL properties in the sparse (and dd-to-sparse) engine. Requires building with Spot or an external LTL to deterministic automaton converter (using option
--ltl2datool). - Added cmake options
STORM_USE_SPOT_SYSTEMandSTORM_USE_SPOT_SHIPPEDto facilitate building Storm with Spot. - Improved parsing of formulas in PRISM-style syntax.
- Added export of schedulers that use memory (in particular optimizing schedulers for LTL properties)
- Added support for PRISM models that use unbounded integer variables.
- Added support for nested arrays in JANI.
- Added
--location-eliminationthat can be applied to Jani DTMC models to reduce the size of the resulting Markov models, see here. - Added an export of check results to json. Use
--exportresultin the command line interface. - Added
--exportbuiltoption that exports the built model in various formats. Deprecates--io:exportexplicit,--io:exportddand--io:exportdot - Added export of built model in .json. which can be used to debug and explore the model.
- Added computation of steady state probabilities for DTMC/CTMC in the sparse engine. Use
--steadystatein the command line interface. - Added computation of the expected number of times each state in a DTMC/CTMC is visited (sparse engine). Use
--expvisittimesin the command line interface. - Implemented parsing and model building of Stochastic multiplayer games (SMGs) in the PRISM language. No model checking implemented (yet).
- API: Simulation of prism-models
- API: Model-builder takes a callback function to prevent extension of particular actions, prism-to-explicit mapping can be exported
- API: Export of dice-formatted expressions
- Prism-language/explicit builder: Allow action names in commands writing to global variables if these (clearly) do not conflict with assignments of synchronizing commands.
- Prism-language: n-ary predicates are supported (e.g., ExactlyOneOf)
- Added support for continuous integration with Github Actions.
storm-pars: Exploit monotonicity for computing extremal values and parameter space partitioning.storm-dft: Support for analysis of static fault trees via BDDs (Flag--bdd). In particular, efficient computation of multiple time bounds was added and support for several importance measures (Argument--importance).storm-dft: Computation of minimal cut sets for static fault trees (Flag--mcs).storm-dft: Improved modularisation for DFT by exploiting SFT analysis via BDDs.storm-dft: Fixed don't care propagation for shared SPAREs which resulted in wrong results.- Developer: Added support for automatic code formatting and corresponding CI workflow.
v1.6.3
- Added support for multi-objective model checking of long-run average objectives including mixtures with other kinds of objectives.
- Added support for generating optimal schedulers for globally formulae
- Simulator supports exact arithmetic
- Added switch
--no-simplifyto disable simplification of PRISM programs (which sometimes costs a bit of time on extremely large inputs) - Fixed issues with JANI inputs concerning
- transient variable expressions in properties,
- constants in properties, and
- integer variables with either only an upper or only a lower bound.
storm-pomdp: States can be labelled with values for observable predicatesstorm-pomdp: (Only API) Track state estimatesstorm-pomdp: (Only API) Reduce computation of state estimates to computation on unrolled MDP
v1.6.2
- Prism program simplification improved.
- Revamped implementation of long-run-average algorithms, including scheduler export for LRA properties on Markov automata.
- Support for step-bounded properties of the form ... [F[x,y] ... ] for DTMCs and MDPs (sparse engine).
- Renamed portfolio engine to automatic
storm-dft: Fix for relevant events when using symmetry reduction.storm-pomdp: Fix for --transformsimple and --transformbinary when used with until formulae.storm-pomdp: POMDPs can be parametric as well.