Table of Contents
Fetching ...

pycvxset: A Python package for convex set manipulation

Abraham P. Vinod

TL;DR

This paper introduces pycvxset, a new Python package to manipulate and visualize convex sets, and uses CVXPY to solve various convex programs arising in set operations, and uses pycddlib to perform vertex-halfspace enumeration.

Abstract

This paper introduces pycvxset, a new Python package to manipulate and visualize convex sets. We support polytopes and ellipsoids, and provide user-friendly methods to perform a variety of set operations. For polytopes, pycvxset supports the standard halfspace/vertex representation as well as the constrained zonotope representation. The main advantage of constrained zonotope representations over standard halfspace/vertex representations is that constrained zonotopes admit closed-form expressions for several set operations. pycvxset uses CVXPY to solve various convex programs arising in set operations, and uses pycddlib to perform vertex-halfspace enumeration. We demonstrate the use of pycvxset in analyzing and controlling dynamical systems in Python. pycvxset is available at https://github.com/merlresearch/pycvxset under the AGPL-3.0-or-later license, along with documentation and examples.

pycvxset: A Python package for convex set manipulation

TL;DR

This paper introduces pycvxset, a new Python package to manipulate and visualize convex sets, and uses CVXPY to solve various convex programs arising in set operations, and uses pycddlib to perform vertex-halfspace enumeration.

Abstract

This paper introduces pycvxset, a new Python package to manipulate and visualize convex sets. We support polytopes and ellipsoids, and provide user-friendly methods to perform a variety of set operations. For polytopes, pycvxset supports the standard halfspace/vertex representation as well as the constrained zonotope representation. The main advantage of constrained zonotope representations over standard halfspace/vertex representations is that constrained zonotopes admit closed-form expressions for several set operations. pycvxset uses CVXPY to solve various convex programs arising in set operations, and uses pycddlib to perform vertex-halfspace enumeration. We demonstrate the use of pycvxset in analyzing and controlling dynamical systems in Python. pycvxset is available at https://github.com/merlresearch/pycvxset under the AGPL-3.0-or-later license, along with documentation and examples.

Paper Structure

This paper contains 25 sections, 11 equations, 9 figures, 2 tables.

Figures (9)

  • Figure 1: Plotting various sets using pycvxset.
  • Figure 2: Well-separated vectors on a $3$-dimensional unit sphere.
  • Figure 3: Projection of a point on a polytope
  • Figure 4: Centering for a polytope and a constrained zonotope.
  • Figure 5: Projection of a $3$-dimensional unit $\ell_1$-norm ball.
  • ...and 4 more figures