chc.surrogate¶
Stability tier: experimental.
Gradient-boosted surrogate dynamics: the tabular baseline for Track A/B prediction.
Trees (LightGBM/CatBoost) are the strong tabular competitor the hybrid model must be measured
against on one-step (Track A) and rollout (Track B) error. They are not differentiable, so this
is a forward predictor / simulator -- not a drop-in JAX residual for adjoint control; it drives
gradient-free control baselines and the prediction leaderboard. With a known physics map it
becomes a residual learner (physics + tree correction); without one it is a pure black-box model.
Optional: requires the trees extra (pip install 'causal-hybrid-control[trees]'); the tree
library is imported lazily so the core stays pure-JAX.
GradientBoostedDynamics
dataclass
¶
Fit x_next ~ trees(x, u) with one regressor per state dimension (Track A/B baseline).
If known is given, the trees learn the residual x_next - known(x, u); otherwise they
model the full next state (black box).
rollout(x0, us)
¶
Autoregressive rollout: x0 (d_x,), us (H, d_u) -> states (H+1, d_x).