Reachability.jl Versions Save

Reachability and Safety of Nondeterministic Dynamical Systems

v0.7.0

4 years ago

Announcements

This version is compatible with Julia v1.2.

Breaking changes

  • Changed option :lazy_A⌜R⋂G⌟ from Bool to String (#621)
  • Fixed upper bounds for dependencies (#744)

Features

Bug fixes

  • Fix ABS07_decomposed operator with inputs (#737)
  • Overapproximate singular maps in LazyDiscretePost (#621)
  • Forbid old, non-functional Symbol input for option :block_options (#744)

Enhancements

  • Fix typo in error messages (#729)
  • Improved discretization of interval-matrix affine systems (#732)
  • Restore compatibility with MathematicalSystems (#733)
  • Use zonotope decomposition in ASB07_decomposed (#736)
  • Restore compatibility with IntervalMatrices (#742)
  • Fixed compatibility with LazySets (#744)

Other

  • Fixed doctests (#744)

v0.6.1

4 years ago

Bug fixes

  • Fix bug for N == 1 in BFFPSV18

Enhancements

  • Generalize discretization for GLGM06 (#713)

v0.6.0

4 years ago

Announcements

This version is compatible with Julia v1.2.

Breaking changes

  • Added Flowpipe type (#719); this changed the internal interface for algorithms and the result type ReachSolution

Bug fixes

  • Fixed property checking with BFFPSV18 algorithm when N == 1 and using multiple blocks (#721)

Enhancements

  • Restored compatibility with new version of LazySets (#725)

v0.5.0

4 years ago

To use this branch, do git checkout v0.5.0.

Bug fixes

  • Fixed error with undefined projection_matrix variable in projection (#717)

v0.4.0

4 years ago

Announcements

This version is compatible with Julia v1.2.

Breaking changes

  • decomposing algorithms now return a SparseReachSet instead of a ReachSet (#676)
  • revised projection (#676)
  • continuous-post operator TMJets now returns a flowpipe with concrete set types to account for a change in LazySets (#695)

Features

  • discretize using matrix interval remainder (#659)
  • reachability algorithm for LTI systems with interval matrices using zonotopes (#681) and a decomposed version thereof (#688)
  • coordinate transformations are now properly reversed (#689)

Bug fixes

  • added a missing import of SparseArrays in Utils module (#674)
  • fixed Schur transformation (#689)

Enhancements

  • improved ConcreteDiscretePost operator (#650)
  • added AbstractReachSet as new supertype of reach-set wrappers (#676)
  • properties are now checked after taking the intersection with the invariant (#692)

Other

  • use TaylorIntegration v0.6.0 (#682)
  • removed broken @relpath macro (#697)

v0.3.0

4 years ago

Breaking changes

  • Removed symbol arguments for the overapproximation option with template directions (e.g., :box) (#633)

Features

  • Accept AffineContinuousSystem (resp. AffineDiscreteSystem) in the continuous post (#625)
  • Added a decomposed hybrid algorithm (#641, #660)

Bug fixes

  • Fixed a case where the :overapproximation option was ignored by the LazyDiscretePost operator (#633)
  • Fixed operator norm usage in discretization (#644)
  • Fixed a namespace conflict with function update! (#667)

Enhancements

  • Allow using template directions for overapproximation in the discrete post operator (#627)
  • Dropped the Compat dependency (#666)

Other

  • Ported validated_integ from TaylorModels to Reachability (#614)
  • Return taylor model in validated_integ of TMJets (#634)
  • Added Project file (#642)

v0.2.0

5 years ago

Announcements

This release dropped compatibility with pre-v1.0 versions of Julia (#431).

This release is used for ARCH2019_RE.

Features

  • added (rudimentary) support to check properties for hybrid systems (#480, #500)
  • added a new option to discretize using concrete operations on zonotopes (#528)
  • Inf as time horizon is now supported (#549)
  • added clustering option :none_oa which does not cluster but still overapproximates (#555)
  • accept affine continuous systems without inputs (#560)
  • added new continuous-post algorithm: GLGM06 (#531)
  • added new continuous-post algorithm: TMJets (#537)

Bug fixes

  • fixed behavior of LazyDiscretePost's option :lazy_R⋂G and added option :lazy_A⌜R⋂G⌟ for the old behavior (#459)
  • fixed bloating for systems without inputs in the approximation model that uses interpolation (former assume_homogeneous option) (#503)
  • BFFPSV18 (continuous-post operator) now returns the input options (instead of an internal representation) (#539)
  • fixed crash in error message (#546)
  • do not automatically project if :projection_matrix option is given (#547)

Enhancements

  • allow to disable the max_jumps option and disable it by default (#456)
  • allow using a U::LazySet for the input set of systems; it is equivalent to ConstantInput(U) (#526)
  • allow to use x' = Ax + Bu, with or without constraints, which is transformed to the canonical form internally, with the normalize function (#542)
  • initial states in hybrid-system analysis are now preserved if are fully inside the invariant (#573)

Other

  • refactoring work (#430, #432)
  • new page in the documentation about works citing JuliaReach related packages (#428), and another one with publications of repeatability evaluations or algorithms (#426)
  • We now use the AbstractMap interface from MathematicalSystems for transitions (guards/assignmens) of hybrid automaton models (#439, #458)
  • The options interface has changed. In particular, options specific to the continuous-post algorithm now need to be passed to the respective post operator, and the default values for some options has changed. (#464)
  • The Properties module has become a standalone module. We renamed the property types and a method (check_propertycheck). Conjunction/Disjunction types have been added. LinearConstraintProperty has been removed as it can be imitated by a combination of the other property types. (#493, #494, #497)
  • The options for the BFFPSV algorithm have changed. For overapproximation during decomposition and iteration, we now use a unified option :block_options. This synchronizes the code with recent corresponding changes in LazySets. (#505)
  • Overhaul discretize.jl (#503)
  • inout_map now uses the concrete projection of half-spaces and hpolyhedron from LazySets for property checking (#525)
  • decomposition for one-block partitions is now only skipped if the option :block_options_init is set to LinearMap in addition (#534)
  • the invariant argument is removed from the continuous post; instead it is read from the stateset of the dynamical system in each mode (#551)
  • better error message if unsupported value for option :overapproximation is given (#561)

Breaking changes

  • ContinuousSystem and DiscreteSystem constructors are removed; use constructors from MathematicalSystems types instead (#503)
  • see the section Other above for more refactoring-related changes

v0.1.0

5 years ago

This release is fully compatible with Julia v0.6 and also with Julia v0.7/v1.0.