Skip to content

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