Mechanism confirmed, baseline not beaten 2026

Koopman-MPC Trust Region for Neural Rollouts

Implementation & benchmark of arXiv:2609.02534 — Physics-based Online Adaptive Koopman Model Predictive Attitude Control for Combined Spacecraft with Dynamic Uncertainties

Usefulness7/10
Difficulty7/10
Novelty7/10

Source paper: Physics-based Online Adaptive Koopman Model Predictive Attitude Control for Combined Spacecraft with Dynamic Uncertainties arXiv:2609.02534 · analyzed Sep 3, 2026

AI-generated research hypothesis, automatically tested. Not peer-reviewed.

Idea description

Use the adapted linear latent model as a cheap receding-horizon planner or training-time controller around a nonlinear neural predictor. Optimize a short sequence of latent corrections with a quadratic objective, while constraining latent states and inputs to remain inside the region where the Koopman approximation has been identified and its transition spectrum is stable.

Formulas

$$z_{k+1}=Az_k+Bv_k,\qquad Z=\mathcal{A}z_0+\mathcal{B}V.$$
$$J(V,e)=\sum_{k=0}^{N-1}\left[(z_k-z_k^{\star})^{\top}Q(z_k-z_k^{\star})+v_k^{\top}Rv_k\right]+(z_N-z_N^{\star})^{\top}Q_f(z_N-z_N^{\star})+\lambda_e\|e\|_2^2.$$
$$\|z_k-z_{\mathrm{data},k}\|_2\leq\delta,\qquad \|v_k\|_2\leq v_{\max},\qquad \rho(A)\leq r<1.$$
$$\mathcal{A}=\begin{bmatrix}A\\A^2\\\vdots\\A^N\end{bmatrix},\qquad \mathcal{B}=\begin{bmatrix}0&0&\cdots&0\\B&0&\cdots&0\\AB&B&\cdots&0\\\vdots&\vdots&\ddots&\vdots\end{bmatrix}.$$

Mathematical statement

Let z_{k+1}=A z_k+B v_k be the adapted lifted dynamics, where z_k is a latent state and v_k is a control, residual, or steering input produced by the neural model. Over horizon N, stack states and controls as Z=mathcal{A}z_0+mathcal{B}V. Minimize a quadratic tracking objective with control cost and terminal slack. Here Q and Q_f are positive semidefinite state weights, R is positive definite, e is a terminal or model-mismatch slack, and mathcal{A} and mathcal{B} are the standard powers-of-A prediction matrices. In a neural rollout, v_k can be a bounded residual correction or gating signal. The trust region ||z_k-z_data,k||<=delta and spectral condition rho(A)<=r<1 limit extrapolation and unstable surrogate behavior.

Implementation notes

Integrate this module after the encoder and before the decoder of a neural world model, or attach it to the action head of an offline RL agent. At each timestep, encode the current observation into z_0, identify or refresh A and B from a recent replay-buffer window, and construct the stacked prediction matrices mathcal{A} and mathcal{B}. Solve the quadratic program for V=[v_0,...,v_{N-1}] with Q,Q_f positive semidefinite, R positive definite, bounded residuals, and a trust-region constraint around recently observed latent states. Apply only v_0, observe the next state, and repeat. For a pure predictor, make the residual correction additive: z_{t+1}=Az_t+Bv_t+f_theta(z_t), but constrain ||f_theta(z_t)||<=epsilon using spectral normalization or clipping. The paper supplies the lifted linear rollout and condensed QP construction; estimate A, B, the trust radius delta, residual bound epsilon, and spectral radius from data. The first cheap experiment is a nonlinear pendulum or Lorenz forecasting task with a 20-step horizon. Compare unconstrained neural rollout, constrained rollout, and QP-guided rollout at equal parameter count. Sweep the spectral cap r and trust radius delta. The quantitative prediction is a sharp degradation when r crosses one, while enforcing r<=0.95 should substantially reduce 100-step latent norm growth. Shrinking delta should lower extrapolation error until approximation bias dominates, producing a measurable U-shaped error curve.

Verification

Mechanism confirmed, baseline not beaten

Stage 1 · Toy mechanism gate: Passed ✓

Stage 2 · Mechanism transferred to benchmark: Confirmed ✓

Stage 2 · Practical benchmark result: Inconclusive

Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works

Stage 1 — Mechanism check agent confidence 7/10

Built a compact Koopman-MPC trust-region toy implementation for a nonlinear damped pendulum, including condensed prediction matrices, spectral-radius capping, bounded corrections, and trust-region projection. The condensed rollout identity was verified to numerical precision (max error 9.9e-10), and capping the fitted model at rho=0.95 reduced 100-step state growth from 1.45x to 0.0083x. In the fixed-seed forecasting test, the MPC version reduced mean 60-step error from 1.983 to 1.457 and predicted-state norm from 2.928 to 0.585, so this toy experiment shows a promising but potentially over-conservative effect.

Agent confidence
7/10
Baseline
Mean 60-step rollout error 1.9831; mean predicted norm 2.9284; unconstrained fitted-model 100-step growth 1.4544x.
Idea
Mean 60-step rollout error 1.4572; mean predicted norm 0.5849; capped-model 100-step growth 0.00830x; condensed-matrix max error 9.93e-10. Trust-radius sweep errors for delta=[0.15,0.3,0.55,1.0,2.0] were [0.7994,0.8028,0.8028,0.8028,0.8028].

Limitations: Only a small damped-pendulum toy system was tested, with a linear least-squares model in the observed two-dimensional state rather than a learned lifted latent representation. The controller uses a bounded first-step correction and radial trust-region projection, not a general-purpose inequality-constrained QP solver; no wall-clock speedup, action-conditioned B model, slack variable, spectral-cap sweep, or multi-seed statistical test was evaluated.

How to run: python3 koopman_mpc_experiment.py

Stage 2 — Benchmark vs. tuned baseline (arXiv:2609.02534)

No significant difference vs. the tuned baseline (+36.8%, p=0.06, wins 2 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0
Idea mean
0
Effect (Δ)
0 (+36.8%; negative = idea better)
Wins
2 / 8 paired seeds
p-value
0.06 (permutation test, 20 000 shuffles)
Smallest detectable effect
±39.3%
Mechanism
Confirmed ✓
Practical effect
Inconclusive
Baseline tuning
swept over 3 configs
Limitations:

Only the built-in actuated-pendulum dynamics track was tested; no custom track, longer horizons, alternative QP solver, explicit online receding-horizon control, wall-clock speed, or larger model was evaluated. The implementation uses a training-time Koopman consistency penalty and a clipped trust-region target rather than a full constrained MPC QP.

How to run: python3 stage2_bench.py

Verdict computed by deterministic test code from paired-seed statistics — not by the language model.

Stage 2 — Benchmark latest Failed ✗

Agent confidence: 9/10

Implemented and ran the required 8-seed Stage-2 benchmark on the structurally matched dynamics track with identical rnn_small systems. The Koopman trust-region consistency penalty confirmed the stabilization mechanism but worsened test MSE, so there is no demonstrated task-level win.

Baseline
Tuned rnn_small, Adam lr=0.01, 16 epochs: mean test MSE 2.410371e-05, std 9.965205e-06.
Idea
Koopman spectral-cap/trust-region penalty, lr=0.01 and strength=0.1: mean test MSE 3.297570e-05, std 8.535059e-06; paired delta +8.871987e-06, permutation p=0.06005, 2/8 wins. Mechanism: raw fitted rho=0.993781, capped rho=0.95; NN deviation from the fitted stable forecast decreased from 0.035890 baseline to 0.031534 idea, confirmed=true.

Benchmark result

No significant difference vs. the tuned baseline (+36.8%, p=0.06, wins 2 / 8 paired seeds).

Benchmark
Dynamics forecasting
Model
rnn_small
Paired seeds
8
Baseline mean
0
Idea mean
0
Effect (Δ)
0 (+36.8%; negative = idea better)
Wins
2 / 8 paired seeds
p-value
0.06 (permutation test, 20 000 shuffles)
Smallest detectable effect
±39.3%
Mechanism
Confirmed ✓
Practical effect
Inconclusive
Baseline tuning
swept over 3 configs
Limitations:

Only the built-in actuated-pendulum dynamics track was tested; no custom track, longer horizons, alternative QP solver, explicit online receding-horizon control, wall-clock speed, or larger model was evaluated. The implementation uses a training-time Koopman consistency penalty and a clipped trust-region target rather than a full constrained MPC QP.

How to run: python3 stage2_bench.py

Artifacts

Implementation overview ⬇ Download all as ZIP 6 files · code, reports and structured results