Alignment-Section Floquet Training for Recurrent Dynamics
Implementation & benchmark of arXiv:2609.01585 — Families of relative periodic orbits in the planar three-body problem via consecutive alignments
Source paper: Families of relative periodic orbits in the planar three-body problem via consecutive alignments arXiv:2609.01585 ⓘ · analyzed Sep 2, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Train a recurrent neural network or state-space model using a Poincare-style event loss: identify two consecutive latent alignment events and require the latent position and velocity at the second event to equal a transformed version of the first. Evaluate the Jacobian of this return map and penalize unstable non-neutral Floquet multipliers, producing long-horizon trajectories that are both periodic or symmetry-periodic and locally stable.
Formulas
Mathematical statement
Let the learned continuous-time or discretized latent dynamics be $\dot z=f_\theta(z,u)$ or $z_{k+1}=F_\theta(z_k,u_k)$, with latent state $z\in\mathbb{R}^d$. Let $h(z)=0$ define an event section, such as an alignment condition, and let $\tau(z)$ be the first positive event time after leaving the section. The event return map is $P_\theta(z)=S_\alpha\Phi_\theta(\tau(z),z)$, where $\Phi_\theta$ is the model flow and $S_\alpha$ is a known or learned symmetry transformation parameterized by phase or rotation angle $\alpha$. A relative periodic orbit satisfies $P_\theta(z^*)=z^*$. Its local stability is determined by eigenvalues of $DP_\theta(z^*)$ restricted to the section; eigenvalues associated with time shift or continuous symmetry are neutral and should be projected out. The training mechanism is a return residual plus a spectral penalty on the remaining Floquet multipliers: $\rho_{\mathrm{nonneutral}}=\max_i|\lambda_i|<1$ predicts exponential decay of perturbations at successive events.
Implementation notes
1. Integration point: use a GRU, neural ODE, or diagonal state-space model whose latent state is $z_k$ and whose output is predicted from $z_k$. Add the return loss to the ordinary next-step prediction loss. For a discrete model, define an event by a scalar observable $h(z_k)$ changing sign; for a cheap first version use $h(z)=z_1-c$ and linearly interpolate the crossing time between adjacent steps. Let $z_1$ and $z_2$ be two consecutive crossings, estimate the event-to-event map by unrolling the network, and use either a fixed symmetry $S_\alpha$ or learn $\alpha$ as a scalar constrained to $[0,2\pi]$. 2. Pseudocode: initialize $z$; unroll until $h(z)$ crosses zero twice; save $z_1,z_2$; compute $r=S_\alpha z_2-z_1$; add $\|r\|^2$ to the prediction loss; periodically compute Jacobian-vector products of the event map with autodiff; estimate its leading eigenvalues with 5--10 power or Arnoldi iterations; exclude the known phase direction and penalize $\max(0,|\lambda|-1+\varepsilon)^2$. Backpropagate through the unroll for the return residual and update parameters. 3. Computed versus estimated: the paper supplies the event matching and rotated-monodromy mechanism; the neural Jacobian, event time, and Floquet multipliers are estimated numerically from autodiff and finite event interpolation. 4. First experiment: train a 2-layer GRU on noisy trajectories generated by a planar harmonic oscillator or a two-dimensional rotating limit-cycle system, comparing ordinary teacher forcing against prediction loss plus the return and Floquet terms. Sweep the return-loss coefficient and latent spectral radius. The quantitative prediction is that free-running error after $n$ events scales approximately as $\rho_{\mathrm{nonneutral}}^n$; models with measured $\rho_{\mathrm{nonneutral}}<1$ should show geometric error decay, while long-horizon divergence should begin near the empirical boundary $\rho_{\mathrm{nonneutral}}=1$ within roughly 20%.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Not reproduced ✗
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 PyTorch MVP with a planar rotating limit cycle, return-residual training, autodiff monodromy, and a non-neutral Floquet penalty. The analytic check showed geometric perturbation contraction across successive periods. In training, the baseline had Floquet radius 1.0066 and event error grew to 0.1083, while the idea had radius 0.00077 and event error stabilized near 0.0161, providing a promising stability signal. The result may also indicate over-contraction, so it is not conclusive evidence of improved modeling quality.
- Agent confidence
- 7/10
- Baseline
- Floquet rho=1.0066; return MSE=4.29e-05; final 15-period event error=0.1083
- Idea
- Floquet rho=0.00077; return MSE=1.287e-04; final 15-period event error=0.01608; analytic perturbation ratios=0.1637, 0.0267, 0.00406, 0.000787
Limitations: Only one seed and one small planar system were tested. The implementation uses a fixed-period return instead of sign-change event interpolation, does not explicitly project neutral section directions, and does not test larger RNNs, learned symmetries, multiple seeds, or FLOP-normalized comparisons.
How to run: python3 experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2609.01585)
Ahead of the baseline (−15.7%) but not statistically significant (p=0.2555, wins 5 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0022
- Idea mean
- 0.0019
- Effect (Δ)
- -0.0003 (−15.7%; negative = idea better)
- Wins
- 5 / 8 paired seeds
- p-value
- 0.2555 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±31.7%
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 6 configs
The provided benchmark README path was absent. The training intervention used a differentiable endpoint-alignment proxy rather than full sign-change event interpolation and used a stability surrogate during training; final behavior was checked with an autodiff Jacobian on the trained GRU. The experiment used the small built-in dynamics track and 12 epochs.
How to run: python3 floquet_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
Alignment-Section Floquet Training was implemented as a local modification of the registered dynamics/rnn_small benchmark. The idea achieved lower mean test MSE than the tuned baseline, 0.0018650 versus 0.0022118, but the paired permutation test was not significant (p=0.25545), so this is not a benchmark win. The behavior-derived mechanism signature was not confirmed because the idea's measured recurrent Jacobian radius was slightly higher than baseline.
- Baseline
- mean test MSE 0.0022117759071988985, std 0.0004126881098400608, best_cfg={lr:0.006, weight_decay:0.0001}, 8 seeds
- Idea
- mean test MSE 0.0018650132114998996, std 0.0008113546405834626, best_cfg={lr:0.006, weight_decay:0.0}, 8 seeds
- Paired delta
- -0.00034676269569899887
- Permutation p value
- 0.25545
Benchmark result
Ahead of the baseline (−15.7%) but not statistically significant (p=0.2555, wins 5 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0.0022
- Idea mean
- 0.0019
- Effect (Δ)
- -0.0003 (−15.7%; negative = idea better)
- Wins
- 5 / 8 paired seeds
- p-value
- 0.2555 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±31.7%
- Mechanism
- Not confirmed ✗
- Practical effect
- Inconclusive
- Baseline tuning
- swept over 6 configs
The provided benchmark README path was absent. The training intervention used a differentiable endpoint-alignment proxy rather than full sign-change event interpolation and used a stability surrogate during training; final behavior was checked with an autodiff Jacobian on the trained GRU. The experiment used the small built-in dynamics track and 12 epochs.
How to run: python3 floquet_bench.py
Artifacts
- bench_report.json 5.5 KB View Raw
- experiment.py 4.4 KB View Raw
- floquet_bench.py 6.4 KB View Raw
- report.md 1.4 KB View
- report_bench_2026-09-02T212449.md 7.1 KB View
- results.json 1.5 KB View Raw