# 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.

Figure: Illustration of various polytope operations.

Figure: The Minkowski sum of two polytopes.

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

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

### References

- Mayne, D.Q., Seron, M.M., & Raković, S.V. (2005).
Robust model predictive control of constrained linear systems with bounded disturbances.
*Automatica*, 41(2), 219–224. - Raković, S.V., Kerrigan, E.C., Kouramas, K.I., & Mayne, D.Q. (2005).
Invariant approximations of the minimal robust positively invariant set.
*IEEE Transactions on Automatic Control*, 50(3), 406–410.