# Koopman-MPC Trust Region for Neural Rollouts

- ID: 3064
- Canonical URL: https://synthcore.org/idea/3064/koopman-mpc-trust-region-for-neural-rollouts
- API JSON: https://synthcore.org/api/idea/3064.json
- API Markdown: https://synthcore.org/api/idea/3064.md
- Verification status: mech_ok_no_baseline
- Source: [arXiv:2609.02534](https://arxiv.org/abs/2609.02534)
- Category: dynamics
- Solves: stability, accuracy, speedup
- ML areas: world-model, rl, ssm, inference-speedup
- Math tags: control-theory, optimization, dynamical-systems, linear-algebra
- Ratings: usefulness 7/10; difficulty 7/10; novelty 7/10

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

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

## Key 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}.$$

## 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

- Status: mech_ok_no_baseline
- Mechanism evidence: yes
- Mechanism confirmed: yes
- Practical verdict: inconclusive
- Verdict: 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.

### Mechanism check

- Verdict: 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.
- Confidence: 7/10
- 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.

### Practical benchmark

- Paired seeds: 8
- Baseline mean: 0
- Idea mean: 0
- p-value: 0.06005
- Paired wins: 2/8
- Benchmark verdict: no significant win

## Artifacts

- [bench_report.json](https://synthcore.org/code/1230/bench_report.json)
- [koopman_mpc_experiment.py](https://synthcore.org/code/1230/koopman_mpc_experiment.py)
- [report.md](https://synthcore.org/code/1230/report.md)
- [report_bench_2026-09-03T132246.md](https://synthcore.org/code/1230/report_bench_2026-09-03T132246.md)
- [results.json](https://synthcore.org/code/1230/results.json)
- [stage2_bench.py](https://synthcore.org/code/1230/stage2_bench.py)
- [Download all files as ZIP](https://synthcore.org/download/1230)

## Disclaimer

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