StructuredObservable protocol for generator-level functionals
Extend protocols.py with a StructuredObservable protocol that represents generator-level dynamical quantities (as defined in MFAI proposal), complementing the existing Observable protocol which handles data-level summaries.
Motivation
Current Observable protocol maps (prediction, observation) → score. StructuredObservable maps generator/model → dynamical quantity (spectral radius, bifurcation threshold, stability margin, etc.) without requiring observation data. This is the key object for observable-based model criticism and the lawful learning Ex3 pipeline.
Protocol
class StructuredObservable(Protocol):
name: str
def __call__(self, generator: Any) -> np.ndarray: ...
def from_trajectory(self, trajectory: np.ndarray, grid: np.ndarray) -> np.ndarray: ...
Implementation
Source code reference
Thoery_1_Code.ipynb: compute_observables_from_ode (9 structured observables: I, rho, Sigma, kappa, xi, etc.)
Chemostat_Simulator.ipynb: all functional observables (I, rho, Sigma, kappa, xi, Pf, pi, t_max, max_n)
- MFAI.tex: Definition of structured observable as map from generator to Banach-valued quantity
Tests
StructuredObservable protocol for generator-level functionals
Extend protocols.py with a StructuredObservable protocol that represents generator-level dynamical quantities (as defined in MFAI proposal), complementing the existing Observable protocol which handles data-level summaries.
Motivation
Current Observable protocol maps (prediction, observation) → score. StructuredObservable maps generator/model → dynamical quantity (spectral radius, bifurcation threshold, stability margin, etc.) without requiring observation data. This is the key object for observable-based model criticism and the lawful learning Ex3 pipeline.
Protocol
Implementation
Source code reference
Thoery_1_Code.ipynb:compute_observables_from_ode(9 structured observables: I, rho, Sigma, kappa, xi, etc.)Chemostat_Simulator.ipynb: all functional observables (I, rho, Sigma, kappa, xi, Pf, pi, t_max, max_n)Tests