Viability Kernels for Linear Systems
A sampling-based algorithm to under-approximate the viability kernel of high-dimensional linear sampled-data systems, using zonotope reachability instead of a per-point linear-feasibility program.
Setting
We are given a sampled-data linear system , with state constraint and piecewise-constant input , both compact and convex. The finite-horizon viability kernel is the set of initial states from which at least one input sequence keeps the trajectory inside for steps,
Computed once offline, this set acts as a hard safety filter on top of any controller.
Approach
The algorithm builds on Gillula et al.'s sampling idea: from an interior seed , shoot rays to the boundary of and bisect each ray to find the outermost point that is still feasible. The convex hull of those points under-approximates the kernel.
The contribution is what runs inside the bisection. The original work solved a per-point linear feasibility program of dimension . We replace it with a reachability + overlap check: at each step propagate the reachable zonotope forward, then test — where is eroded by the inter-sample drift bound — via a small LP in the zonotope coefficients . Zonotopes are closed under affine maps and Minkowski sums in linear time, sidestepping the exponential blow-up that polytopic Minkowski sums hit in high dimension.
Why it works
Proof sketch. A non-empty intersection at step is exactly the existence of an input steering the system into at that sampling instant. The erosion is calibrated against the inter-sample drift bound on , so a sample landing in guarantees the continuous trajectory does not leave between samples. Reordering the existential quantifiers across all steps yields a single input sequence valid for the whole horizon, which is the definition of viability.
Result
On a chain of integrators with , the zonotope-based version is consistently faster than the LP-feasibility baseline. Asymptotic complexity stays in the same band — between and per direction — but the constant is meaningfully smaller. The output is a guaranteed under-approximation of , so it is safe to use as a safety filter.
Context
From my MSc thesis — published at ECE 2019 — and the foundation for Viability Kernels for Non-Linear Systems.