zonoopt documentation
ZonoOpt
This C++ library provides classes and tailored optimization routines for zonotopes, constrained zonotopes, and hybrid zonotopes. All classes and methods are implemented using sparse linear algebra via the Eigen library. Generators may optionally have range [0,1] instead of [-1,1].
Python bindings can be installed from PyPI with pip install zonoopt. To build the bindings from source, use pip install .. Note that a C++ compiler is required to build from source, and the Eigen submodule must be checked out (can be accomplished by running python3 update_submodules.py).
More information about ZonoOpt can be found in the the following publication. Please cite this if you publish work based on ZonoOpt: Robbins, J.A., Siefert, J.A., and Pangborn, H.C., “Sparsity-Promoting Reachability Analysis and Optimization of Constrained Zonotopes,” 2025. https://arxiv.org/abs/2504.03885.
Python examples are located in examples, and a C++ example is located in test.
Auto-generated API documentation is available below.
Contents:
- ZonoOpt Module
BoxConZonoEmptySetHybZonoIneqTermIneqTypeInequalityIntervalOptSettingsOptSolutionPointZonoaffine_map()cartesian_product()constrain()get_vertices()halfspace_intersection()intersection()intersection_over_dims()interval_2_zono()make_regular_zono_2D()minkowski_sum()plot()pontry_diff()project_onto_dims()set_diff()union_of_many()vrep_2_conzono()vrep_2_hybzono()zono_union_2_hybzono()