Tulip Control Versions Save

Temporal Logic Planning toolbox

v1.4.0

2 months ago

Version 1.4.0 of TuLiP is available on the Python Package Index (PyPI) at https://pypi.python.org/pypi/tulip

Summary of changes for this release:

  • require Python >= 3.10
  • TST: use pytest, instead of nose
  • REL: require Python package graphviz >= 0.20, instead of pydot
  • CI: run all tests on GitHub Actions
  • remove interface to jtlv solver in 9634403c4f6fc78deb09bdfce978569f878973b8
  • API: replace arg option with kwarg solver for func synth.synthesize
  • new dual-simulation algorithm available by calling tulip.abstract.discretize with simu_type='dual'
  • new method GRSpec.declare for declaring variables
  • new function tulip.abstract.plot.simulate2d that simulates solution systems with two-dimensional continuous dynamics
  • fix find_controller for target regions with several polytopes, https://github.com/tulip-control/tulip-control/pull/242
  • new minimum-violation planning module (tulip.mvp)
  • interface to stormpy and therefore to the probabilistic model checker Storm
  • many improvements to style, documentation, examples, and error messages
  • add many type hints and begin to perform static analysis accordingly

v1.3.0

7 years ago

Version 1.3.0 of TuLiP is available on the Python Package Index (PyPI) at https://pypi.python.org/pypi/tulip/1.3.0

Summary of changes for this release:

  • support synthesis of:
    • both Moore and Mealy strategies
    • non-circular Klein-Pnueli-style specifications
    • options to select quantification of initial values of variables
  • introduce alternatives for definition of synthesis, defined by attributes of tulip.spec.form.GRSpec:
    • moore: synthesize a Moore strategy
    • qinit: select quantification of initial conditions (existential or universal for environment or system variables)
    • plus_one: non-circular specifications
  • use omega.games.gr1 as default GR(1) game solver This change allows a working basic installation in Python
  • gr1c is not required. Now it is optional.
  • update examples to demonstrate new synthesis options
  • re-introduce and improve the module tulip.gridworlds
  • implement feedback control with 1 and inf norms using scipy, thus making tulip independent of cvxopt.
  • add function interfaces.print_env to help users inspect their environment, for easier installation and maintenance
  • update user documentation, installation instructions
  • require omega >= 0.0.9, <= 0.1.0
  • bump requirement to pydot >= 1.2.0
  • run all tests on Travis CI
  • fix bug and change continuous reachability computation, and effect of the option use_all_horizon
  • remove args bool_states, bool_actions to function tulip.synth.synthesize
  • remove option init_option from interfaces.gr1c and gr1py
  • enumerate strategy in interfaces.omega using search
  • add function interfaces.omega.is_realizable

v1.2.1

7 years ago

Version 1.2.1 of TuLiP is available on the Python Package Index (PyPI) at https://pypi.python.org/pypi/tulip/1.2.1

Summary of changes for this release:

  • add support for gr1py, an enumerative GR(1) solver in pure Python
  • add support for omega, a symbolic GR(1) and Rabin(1) solver in pure Python, with optional Cython bindings to the C library CUDD
  • modernize setup.py
  • ease fully functional installation, as in pip install tulip
  • modify git versioning, use gitpython
  • relocate examples (shallower, no robot_planning)
  • all core tests running on Travis CI
  • require pydot >= 1.1.0, now available on PyPI
  • remove d3 support (experimental) from transys
  • require polytope >= 0.1.2, its slower variant depends only on scipy

There were also several corrections (bug fixes).

v1.1a

9 years ago

Below is a copy of the release announcement that was sent to the tulip-control-announce mailing list.

http://tulip-control.org

There has not been a release in a while, yet the project has been active. We collect here several of the most significant changes, though be warned there is more. A good place to begin is the installation instructions at http://tulip-control.sourceforge.net/doc/install.html or fetch the release from http://sourceforge.net/projects/tulip-control/files/

  • tulip.polytope is now a separate Python package, which is named simply "polytope". The primary repository for it is https://github.com/tulip-control/polytope and releases are available from PyPI at https://pypi.python.org/pypi/polytope
  • support for switched systems with external inputs is introduced
  • multiprocessing can be used for discretization of switched systems
  • redesign of abstraction (AbstractPwa, AbstractSwitched) and partition classes (PropPreservingPartition and parents that now live in polytope)
  • PropPreservingPartition can now check several of its properties
  • support for open finite transition systems in synth
  • support for arbitrary finite domains when using the gr1c solver
  • multiple system and environment actions supported
  • MealyMachine now has an Sinit special initial state
  • replaced PyParsing by PLY as the default LTL parse generator (orders of magnitude faster)
  • overhauled transys simplifying it resemble networkx more, introducing LabeledDiGraph and TypedDict
  • more graphics functions, including:
    • animation of discretization
    • projection of Mealy strategies on partitions of the state space
    • PwaSysDyn with their polytopic partition and (nonsmooth) vector field
  • installation script and instructions for *nix machines in contrib
  • instrumented code with logging

The next major planned release is version 1.2.0. It will include changes that will break compatibility with this release. From version 1.2.0 onward, greater care will be taken to ensure backwards compatibility and to clearly indicate parts of the API that are not stable.