You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

255 lines
15 KiB

8 years ago
8 years ago
8 years ago
8 years ago
  1. Changelog
  2. ==============
  3. This changelog lists only the most important changes. Smaller (bug)fixes as well as non-mature features are not part of the changelog.
  4. The releases of major and minor versions contain an overview of changes since the last major/minor update.
  5. Branch Changes
  6. --------------
  7. Version 1.6.x
  8. -------------
  9. ## Version 1.6.4 (20xx/xx)
  10. - Added support for PRISM models that use unbounded integer variables.
  11. - Added an export of check results to json. Use `--exportresult` in the command line interface.
  12. - Added computation of steady state probabilities for DTMC/CTMC in the sparse engine. Use `--steadystate` in the command line interface.
  13. - Implemented parsing and model building of Stochastic multiplayer games (SMGs) in the PRISM language. No model checking implemented, for now.
  14. - API: Simulation of prism-models
  15. - API: Model-builder takes a callback function to prevent extension of particular actions, prism-to-explicit mapping can be exported
  16. - API: Export of dice-formatted expressions
  17. - Prism-language/explicit builder: Allow action names in commands writing to global variables if these clearly do not write to actions.
  18. - Prism-language: n-ary predicates are supported (e.g., ExactlyOneOf)
  19. - Added support for continuous integration with Github Actions.
  20. - `storm-pars`: Exploit monotonicity for computing extremal values and parameter space partitioning.
  21. ## Version 1.6.3 (2020/11)
  22. - Added support for multi-objective model checking of long-run average objectives including mixtures with other kinds of objectives.
  23. - Added support for generating optimal schedulers for globally formulae.
  24. - Simulator supports exact arithmetic.
  25. - Added switch `--no-simplify` to disable simplification of PRISM programs (which sometimes costs a bit of time on extremely large inputs).
  26. - Fixed issues with JANI inputs concerning .
  27. - transient variable expressions in properties,
  28. - constants in properties, and
  29. - integer variables with either only an upper or only a lower bound.
  30. - `storm-pomdp`: States can be labelled with values for observable predicates.
  31. - `storm-pomdp`: (Only API) Track state estimates.
  32. - `storm-pomdp`: (Only API) Reduce computation of state estimates to computation on unrolled MDP.
  33. ## Version 1.6.2 (2020/09)
  34. - Prism program simplification improved.
  35. - Revamped implementation of long-run-average algorithms, including scheduler export for LRA properties on Markov automata.
  36. - Support for step-bounded properties of the form ... [F[x,y] ... ] for DTMCs and MDPs (sparse engine).
  37. - Renamed portfolio engine to automatic
  38. - `storm-dft`: Fix for relevant events when using symmetry reduction.
  39. - `storm-pomdp`: Fix for --transformsimple and --transformbinary when used with until formulae.
  40. - `storm-pomdp`: POMDPs can be parametric as well.
  41. ## Version 1.6.0 (2020/06)
  42. - Changed default Dd library from `cudd` to `sylvan`. The Dd library can be changed back to `cudd` using the command line switch `--ddlib`.
  43. - Scheduler export: Properly handle models with end components. Added export in `.json` format.
  44. - CMake: Search for Gurobi prefers new versions.
  45. - CMake: We no longer ship xerces-c. If xerces-c is not found on the system, storm-gspn will not be able to parse xml-based GSPN formats.
  46. - CMake: Added option `STORM_LOAD_QVBS` to automatically download the quantitative verification benchmark set.
  47. - Eigen library: The source code of Eigen is no longer included but downloaded from an external repository instead. Incremented Eigen version to 3.3.7 which fixes a compilation issue with recent XCode versions.
  48. - Tests: Enabled tests for permissive schedulers.
  49. - `storm-counterexamples`: fix when computing multiple counterexamples in debug mode.
  50. - `storm-dft`: Renamed setting `--show-dft-stats` to `dft-statistics` and added approximation information to statistics.
  51. - `storm-pomdp`: Implemented approximation algorithms that explore (a discritization of) the belief MDP, allowing to compute safe lower- and upper bounds for a given property.
  52. - `storm-pomdp`: Implemented almost-sure reachability computations: graph-based, one-shot SAT-based, and iterative SAT-based.
  53. - `storm-pomdp': Various changes such that transformation to pMCs is now again supported (and improved).
  54. - Fixed several compiler warnings.
  55. Version 1.5.x
  56. -------------
  57. ## Version 1.5.1 (2020/03)
  58. - Jani models are now parsed using exact arithmetic.
  59. ## Version 1.5.0 (2020/03)
  60. - Added portfolio engine which picks a good engine (among other settings) based on features of the symbolic input.
  61. - Abort of Storm (via timeout or CTRL+C for example) is now gracefully handled. After an abort signal the program waits some seconds to output the result computed so far and terminates afterwards. A second signal immediately terminates the program.
  62. - Setting `--engine dd-to-sparse --bisimulation` now triggers extracting the sparse bisimulation quotient.
  63. - JIT model building is now invoked via `--engine jit` (instead of `--jit`).
  64. - DRN: support import of choice labelling.
  65. - Added option `--build:buildchoiceorig` to build a model (PRISM or JANI) with choice origins (which are exported with, e.g. `--exportscheduler`).
  66. - Implemented optimistic value iteration for sound computations and set it as new default in `--sound` mode.
  67. - Time bounded properties for Markov automata are now computed with relative precision. Use `--absolute` for the previous behavior.
  68. - Apply the maximum progress assumption while building a Markov automaton with one of the symbolic engines.
  69. - Added option `--build:nomaxprog` to disable applying the maximum progress assumption during model building (for Markov Automata).
  70. - Added hybrid engine for Markov Automata.
  71. - Improved performance of the Unif+ algorithm (used for time-bounded properties on Markov Automata).
  72. - Various performance improvements for model building with the sparse engine.
  73. - `storm-dft`: Symmetry reduction is now enabled by default and can be disabled via `--nosymmetryreduction`.
  74. - `storm-pomdp`: Only accept POMDPs that are canonical.
  75. - `storm-pomdp`: Prism language extended with observable expressions.
  76. - `storm-pomdp`: Various fixes that prevented usage.
  77. - Several bug fixes.
  78. Version 1.4.x
  79. -------------
  80. ### Version 1.4.1 (2019/12)
  81. - Implemented long run average (LRA) computation for DTMCs/CTMCs via value iteration and via gain/bias equations.
  82. - Added several LRA related settings in a new settings module. Note that `--minmax:lramethod` has been replaced by `--lra:nondetmethod`.
  83. ### Version 1.4.0 (2019/11)
  84. - Added support for multi-dimensional quantile queries.
  85. - Added support for multi-objective model checking under pure (deterministic) schedulers with bounded memory using `--purescheds`.
  86. - Allow to quickly check a benchmark from the [Quantitative Verification Benchmark Set](http://qcomp.org/benchmarks/) using the `--qvbs` option.
  87. - Added script `resources/examples/download_qvbs.sh` to download the QVBS.
  88. - If an option is unknown, Storm now suggests similar option names.
  89. - Flagged several options as 'advanced' to clean up the `--help`-message. Use `--help all` to display a complete list of options.
  90. - Support for parsing of exact time bounds for properties, e.g., `P=? [F=27 "goal"]`.
  91. - Export of optimal schedulers when checking MDPs with the sparse engine (experimental). Use `--exportscheduler <filename>`.
  92. - PRISM language: Support for the new `round` operator.
  93. - PRISM language: Improved error messages of the parser.
  94. - JANI: Allow bounded types for constants.
  95. - JANI: Support for non-trivial reward accumulations.
  96. - JANI: Fixed support for reward expressions over non-transient variables.
  97. - DRN: Added support for exact parsing and action-based rewards.
  98. - DRN: Support for placeholder variables which allows to parse recurring rational functions only once.
  99. - Fixed sparse bisimulation of MDPs (which failed if all non-absorbing states in the quotient are initial).
  100. - Support for export of MTBDDs from Storm.
  101. - Support for k-shortest path counterexamples (arguments `-cex --cextype shortestpath`)
  102. - New settings module `transformation` for Markov chain transformations. Use `--help transformation` to get a list of available transformations.
  103. - Support for eliminating chains of Non-Markovian states in MAs via `--eliminate-chains`.
  104. - Export to dot format allows for maximal line width in states (argument `--dot-maxwidth <width>`)
  105. - `storm-conv` can now apply transformations on a prism file.
  106. - `storm-pars`: Enabled building, bisimulation and analysis of symbolic models.
  107. - `storm-dft`: Support partial-order for state space generation.
  108. - `storm-dft`: Compute lower and upper bounds for number of BE failures via SMT.
  109. - `storm-dft`: Allow to set relevant events which are not set to Don't Care.
  110. - `storm-dft`: Support for constant failed BEs. Use flag `--uniquefailedbe` to create a unique constant failed BE.
  111. - `storm-dft`: Support for probabilistic BEs via PDEPs.
  112. - Fixed linking with Mathsat on macOS.
  113. - Fixed linking with IntelTBB for GCC.
  114. - Fixed compilation for macOS Mojave and higher.
  115. - Several bug fixes.
  116. Version 1.3.x
  117. -------------
  118. ## Version 1.3.0 (2018/12)
  119. - Slightly improved scheduler extraction
  120. - Environments are now part of the c++ API
  121. - Heavily extended JANI support, in particular:
  122. * arrays, functions, state-exit-rewards (all engines)
  123. * indexed assignments, complex reward expressions (sparse engine)
  124. * several jani-related bug fixes
  125. - New binary `storm-conv` that handles conversions between model files
  126. - New binary `storm-pomdp` that handles the translation of POMDPs to pMCs.
  127. - Maximal progress assumption is now applied while building Markov Automata (sparse engine).
  128. - Improved Unif+ implementation for Markov Automata, significantly reduced memory consumption.
  129. - Added support for expected time properties for discrete time models
  130. - Bug fix in the parser for DRN (MDPs and MAs might have been affected).
  131. - `storm-gspn`: Improved .pnpro parser
  132. - `storm-gspn`: Added support for single/infinite/k-server semantics for GSPNs given in the .pnpro format
  133. - `storm-gspn`: Added option to set a global capacity for all places
  134. - `storm-gspn`: Added option to include a set of standard properties when converting GSPNs to jani
  135. - `storm-pars`: Added possibility to compute the extremal value within a given region using parameter lifting
  136. - `storm-dft`: DFT translation to GSPN supports Don't Care propagation
  137. - `storm-dft`: Support DFT analysis via transformation from DFT to GSPN to JANI
  138. - `storm-dft`: Added SMT encoding for DFTs
  139. - `storm-dft`: Improved Galileo and JSON parser
  140. - Several bug fixes
  141. - Storm uses the `master14` branch of carl from now on
  142. ### Comparison with Version 1.2.0 (details see below)
  143. - Heavily extended JANI-support
  144. - New binary `storm-conv` that handles conversion between model files
  145. - New binary `storm-pomdp` that handles the translation of POMDPs to pMCs.
  146. - `storm-gspn` improved
  147. - Sound value iteration
  148. Version 1.2.x
  149. -------------
  150. ### Version 1.2.3 (2018/07)
  151. - Fix in version parsing
  152. ### Version 1.2.2 (2018/07)
  153. - Sound value iteration (SVI) for DTMCs and MDPs
  154. - Topological solver for linear equation systems and MinMax equation systems (enabled by default)
  155. - Added support for expected total rewards in the sparse engine
  156. - By default, iteration-based solvers are no longer aborted after a given number of steps.
  157. - Improved export for jani models
  158. - A fix in parsing jani properties
  159. - Several extensions to high-level counterexamples
  160. - `storm-parsers` extracted to reduce linking time
  161. - `storm-counterexamples` extracted to reduce linking time
  162. - `storm-dft`: improvements in Galileo parser
  163. - `storm-dft`: test cases for DFT analysis
  164. - Improved Storm installation
  165. - Several bug fixes
  166. ### Version 1.2.1 (2018/02)
  167. - Multi-dimensional reward bounded reachability properties for DTMCs.
  168. - `storm-dft`: transformation of DFTs to GSPNs
  169. - Several bug fixes
  170. ### Version 1.2.0 (2017/12)
  171. - C++ api changes: Building model takes `BuilderOptions` instead of extended list of Booleans, does not depend on settings anymore.
  172. - `storm-cli-utilities` now contains cli related stuff, instead of `storm-lib`
  173. - Symbolic (MT/BDD) bisimulation
  174. - Fixed issue related to variable names that can not be used in Exprtk.
  175. - DRN parser improved
  176. - LP-based MDP model checking
  177. - Sound (interval) value iteration
  178. - Support for Multi-objective multi-dimensional reward bounded reachability properties for MDPs.
  179. - RationalSearch method to solve equation systems exactly
  180. - WalkerChae method for solving linear equation systems with guaranteed convergence
  181. - Performance improvements for sparse model building
  182. - Performance improvements for conditional properties on MDPs
  183. - Automatically convert MA without probabilistic states into CTMC
  184. - Fixed implemention of Fox and Glynn' algorithm
  185. - `storm-pars`: support for welldefinedness constraints in mdps.
  186. - `storm-dft`: split DFT settings into IO settings and fault tree settings
  187. - `storm-dft`: removed obsolete explicit model builder for DFTs
  188. - Features for developers:
  189. * Solvers can now expose requirements
  190. * unbounded reachability and reachability rewards now correctly respect solver requirements
  191. * Environment variables (such as the solver precisions) can now be handled more flexible
  192. * changes to Matrix-Vector operation interfaces, in particular fixed some issues with the use Intel TBB
  193. Version 1.1.x
  194. -------------
  195. ### Version 1.1.0 (2017/8)
  196. - Support for long-run average rewards on MDPs and Markov automata using a value-iteration based approach.
  197. - Storm can now check MDPs and Markov Automata (i.e. MinMax equation systems) via Linear Programming.
  198. - Parametric model checking is now handled in a separated library/executable called `storm-pars`.
  199. - Wellformedness constraints on PMCs:
  200. * include constraints from rewards
  201. * are in smtlib2
  202. * fixed
  203. * computation of only constraints without doing model checking is now supported
  204. - Fix for nested formulae
  205. - JANI: Explicit engine supports custom model compositions.
  206. - Support for parsing/building models given in the explicit input format of IMCA.
  207. - Storm now overwrites files if asked to write files to a specific location.
  208. - Changes in build process to accommodate for changes in carl. Also, more robust against issues with carl.
  209. - `USE_POPCNT` removed in favor of `FORCE_POPCNT`. The popcnt instruction is used if available due to `march=native`, unless portable is set.
  210. Then, using `FORCE_POPCNT` enables the use of the SSE 4.2 instruction
  211. Version 1.0.x
  212. -------------
  213. ### Version 1.0.1 (2017/4)
  214. - Multi-objective model checking support now fully included
  215. - Several improvements in parameter lifting
  216. - Several improvements in JANI parsing
  217. - Properties can contain model variables
  218. - Support for rational numbers/functions in decision diagrams via sylvan
  219. - Elimination-based solvers (exact solution) for models stored as decision diagrams
  220. - Export of version and configuration to cmake
  221. - Improved building process
  222. ### Version 1.0.0 (2017/3)
  223. Start of this changelog