/pytope

Minimal package for operations on polytopes, zonotopes, and invariant sets.

Primary LanguagePythonMIT LicenseMIT

pytope

Package with a limited set of operations for polytopes, zonotopes, and invariant sets.

The currently implemented features include

  • constructing polytopes from inequalities (halfspace representation), vertices, and upper and lower bounds,
  • linear mapping (multiplying a matrix M and a polytope P: M P),
  • the Minkowski sum and Pontryagin difference of polytopes,
  • the intersection of polytopes, and
  • simple plotting.

The figures below are generated with pytope. The first two illustrate some of the currently implemented operations (see demo.py); the third uses pytope to plot a robust MPC trajectory (obtained with CasADi), combining Figures 1 and 2 from Mayne et al. (2005) with a rough approximation of the disturbance sequence; the fourth shows an outer ε-approximation of a minimal robust positively invariant, or MRPI, set computed with pytope, reproducing the example from Raković et al. (2005).

pytope is experimental, fragile, largely untested, and probably buggy.

Illustration of various polytope operations
Figure: Illustration of various polytope operations.

The Minkowski sum of two polytopes
Figure: The Minkowski sum of two polytopes.

Robust MPC trajectory from Mayne et al. (2005)
Figure: Robust MPC trajectory from Mayne et al. (2005), combining Figures 1 and 2.

Outer ε-approximation of a minimal RPI
Figure: Outer ε-approximation of a minimal robust positively invariant (MRPI) set – a reproduction of the example in Raković et al. (2005).

References