Continuous-Time Stochastic (ct-SS)¶
Functions for computing barrier certificates for continuous-time stochastic systems over a finite time horizon with Brownian and Poisson noise.
ct_SS¶
from src.functions.ct_SS import ct_SS
result = ct_SS(b_degree, dim, L_initial, U_initial, L_unsafe, U_unsafe,
L_space, U_space, x, f, delta, rho, p_rate, t,
optimize=False, solver="mosek", confidence=None, gam=None,
lam=None, c_val=None, l_degree=None)
Parameters:
Parameter |
Type |
Description |
|---|---|---|
|
int |
Degree of the barrier polynomial. |
|
int |
Dimension of the state space. |
|
np.ndarray |
Lower bounds of the initial set. Shape: |
|
np.ndarray |
Upper bounds of the initial set. Shape: |
|
np.ndarray |
Lower bounds of unsafe set(s). Shape: |
|
np.ndarray |
Upper bounds of unsafe set(s). Shape: |
|
np.ndarray |
Lower bounds of the state space. Shape: |
|
np.ndarray |
Upper bounds of the state space. Shape: |
|
tuple |
SymPy symbols for state variables. |
|
np.ndarray |
Array of SymPy expressions defining the drift dynamics \(\dot{x} = f(x)\). |
|
np.ndarray |
Diffusion coefficient(s) for Brownian motion. Shape: |
|
np.ndarray |
Reset map for Poisson jumps. Shape: |
|
np.ndarray |
Poisson rate values. Shape: |
|
int |
Finite time horizon. |
|
bool |
If |
|
str |
|
|
float or None |
Minimal confidence threshold. |
|
float or None |
Fixed value for \(\gamma\). |
|
float or None |
Fixed value for \(\lambda\). |
|
float or None |
Value for \(c\) (multiplied by time horizon in the confidence bound). |
|
int or None |
Degree of Lagrangian multipliers. Defaults to |
Returns: dict with barrier certificate details, or None if infeasible.
parallel_ct_SS¶
from src.functions.parallel_ct_SS import parallel_ct_SS
result = parallel_ct_SS(b_degree, dim, L_initial, U_initial, L_unsafe,
U_unsafe, L_space, U_space, x, f, delta, rho,
p_rate, t, optimize=False, solver="mosek",
confidence=None, gam=None, lam=None, c_val=None,
l_degree=None)
Searches barrier degrees 2, 4, …, b_degree in parallel. All parameters
are identical to ct_SS except b_degree is the maximum degree.
Note
Must be called inside if __name__ == '__main__': due to Python multiprocessing.
Returns: The result dict from the first successful degree, or None.