STL-Robust Policy Synthesis
Implementation & benchmark of arXiv:2608.07289 — Synthesizing Voltage Ride-Through Controllers for Data Centers
Source paper: Synthesizing Voltage Ride-Through Controllers for Data Centers arXiv:2608.07289 ⓘ · analyzed Aug 31, 2026
AI-generated research hypothesis, automatically tested. Not peer-reviewed.
Idea description
Train a neural controller or sequence model with STL robustness margins for temporal requirements such as staying above an active-power floor, maintaining connection during a disturbance, and recovering before a deadline. Use the robustness margin as a constrained objective and retain a non-differentiable STL monitor for certification, so the network is optimized toward a quantitatively specified feasible region rather than merely rewarded for average trajectory performance.
Formulas
Mathematical statement
An STL formula is generated by the grammar \(\varphi ::= \mu(x)\mid\lnot\varphi\mid\varphi\land\psi\mid\varphi\lor\psi\mid\Box_{[a,b]}\psi\mid\Diamond_{[a,b]}\psi\mid\varphi\,\mathcal U_{[a,b]}\,\psi\), where \(x(t)\) is the system signal, \(\mu(x)\) is a Boolean predicate such as \(p(t)-p_{\min}\ge 0\), and \([a,b]\) is a time interval. Define signed atomic robustness \(r_{\mu}(x,t)=g(x(t))\) when \(\mu\) is \(g(x)\ge0\). For quantitative STL semantics, conjunction uses a minimum, disjunction a maximum, always uses an infimum, and eventually uses a supremum: \(r_{\varphi\land\psi}(t)=\min(r_\varphi(t),r_\psi(t))\), \(r_{\Box_{[a,b]}\varphi}(t)=\inf_{\tau\in[t+a,t+b]}r_\varphi(\tau)\), and \(r_{\Diamond_{[a,b]}\varphi}(t)=\sup_{\tau\in[t+a,t+b]}r_\varphi(\tau)\). Positive robustness certifies satisfaction and negative robustness indicates violation. For neural training, replace hard extrema by temperature-controlled soft extrema, with temperature \(\beta>0\). The policy \(u_t=\pi_\theta(o_{0:t})\) is trained to maximize worst-case robustness subject to task loss.
Implementation notes
1. Integration point: use this as a constrained training wrapper around an RNN, transformer policy, neural ODE controller, or world-model rollout. Let the model output actions \(u_t\), simulate or predict the signal trajectory \(x_{0:T}\), and define STL clauses over predicted signals. Example clauses are \(\Box_{[0,T_d]}(p(t)-p_{\min}\ge0)\) for an active floor and \(\Diamond_{[T_r,T_r+\Delta]}(p(t)-p_{\mathrm{target}}\ge-\epsilon)\) for recovery. 2. Pseudocode: sample disturbance and initial-state batches; roll out \(x_{t+1}=f_\phi(x_t,\pi_\theta(o_t))\); compute atomic signed margins; recursively evaluate the STL tree using softmin and softmax; optimize \(\mathcal L_{\mathrm{task}}+\lambda\operatorname{softplus}(m-r_{\mathrm{STL}})\); periodically evaluate the exact discrete-time min/max monitor and reject or project unsafe actions. Anneal \(\beta\) from a small value to a large value so optimization begins smoothly and ends close to true STL semantics. 3. Compute the system dynamics and STL structure from the specification; estimate model uncertainty, rollout distributions, and the multiplier \(\lambda\) empirically. For a stricter controller, use a backup action whenever one-step predicted robustness falls below zero. 4. First cheap experiment: train a small GRU controller on CartPole or a two-dimensional spring-mass system with a forced disturbance. Require position to remain within bounds during \([0,T_d]\) and recover to a target interval during \([T_r,T_r+\Delta]\). Compare ordinary MSE or RL training with STL-constrained training under identical model size and disturbance samples. Sweep actuator limit, recovery window \(\Delta\), and prediction horizon. The quantitative prediction is a sharp feasibility transition: exact-monitor satisfaction rate should fall from near one to near zero as actuator authority crosses the minimum needed to make worst-case STL robustness \(r_{\mathrm{STL}}=0\); the learned policy transition should agree with a grid-search feasibility estimate within approximately 20%. Increasing \(\Delta\) should improve minimum robustness monotonically, while the active minimum-robustness clause should identify the same failed requirement as the exact monitor.
Verification
Stage 1 · Toy mechanism gate: Passed ✓
Stage 2 · Mechanism transferred to benchmark: Confirmed ✓
Stage 2 · Practical benchmark result: Significantly worse ✗
Methodology: 8 paired seeds, permutation test (p<0.05) against a learning-rate-tuned baseline. How verification works
Stage 1 — Mechanism check agent confidence 8/10
Built a differentiable STL training wrapper for a small power-control plant, with softmin/softmax training semantics and an exact discrete-time monitor. The mechanism predictions manifested: soft-extrema approximation bounds held for every beta, the observed actuator feasibility boundary was 0.09 versus the predicted 0.09, and recovery robustness increased monotonically as the recovery window expanded. In matched toy training runs, STL training produced higher exact robustness than the task-only baseline at all tested actuator limits.
- Agent confidence
- 8/10
- Baseline
- Exact robustness by action limit [0.12, 0.18, 0.24, 0.30]: [0.0233, 0.0485, 0.0492, 0.0479]; all 4/4 satisfied.
- Idea
- Exact robustness by action limit [0.12, 0.18, 0.24, 0.30]: [0.2800, 0.4500, 0.4499, 0.4500]; all 4/4 satisfied. Softmin and softmax error bounds held for beta 1-100; feasibility boundary observed/predicted = 0.09/0.09; recovery robustness rose from -0.30 to 0.03 as rec_end increased from 5 to 10.
Limitations: This is a deterministic scalar toy plant rather than CartPole, an RNN policy, or a physical data-center model. It does not test uncertainty batches, formal worst-case disturbance generalization, wall-clock or FLOP efficiency, backup actions, beta annealing, or the learned near-zero satisfaction transition across many stochastic trials.
How to run: python3 stl_experiment.py
Stage 2 — Benchmark vs. tuned baseline (arXiv:2608.07289)
Significantly WORSE than the tuned baseline (+5187.4%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0.0007
- Effect (Δ)
- 0.0007 (+5187.4%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±416.2%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
The registered bench README was not resolvable through the read tool, but its documented API and source were inspected directly and the registered dynamics track was executed. GPU execution was intentionally disabled after a shared-environment cuDNN allocation failure; the completed registered protocol used CPU. The STL monitor is adapted to the built-in one-step forecast task using the observed input trajectory plus forecast, rather than a multi-step controller rollout; uncertainty, actuator-limit sweeps, beta annealing, and backup actions were not tested.
How to run: CUDA_VISIBLE_DEVICES='' OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 /home/maxwelhelp/main/bin/python3 run_registered_bench.py
Verdict computed by deterministic test code from paired-seed statistics — not by the language model.
Stage 2 — Benchmark latest Failed ✗
Agent confidence: 10/10
Ran the registered bench track dynamics with the shared rnn_small architecture and the STL robustness penalty as the only training intervention. The baseline achieved mean MSE 1.3129e-05 versus 6.9418e-04 for STL; the paired delta was +6.8105e-04 with permutation p=0.0081, yielding the registered verdict idea worse (significant). The mechanism signature was confirmed for increased exact robustness (0.2892 to 0.3021), but satisfaction was only 0.736 for the STL system and the independent task metric degraded substantially.
- Baseline
- Registered dynamics/rnn_small; tuned lr=0.006, mean test MSE=1.312899e-05, std=2.717558e-06.
- Idea
- Registered dynamics/rnn_small with STL; best lr=0.003, mean test MSE=6.941838e-04, std=6.117137e-05.
- Mechanism
- Exact robustness mean baseline=0.289180, STL=0.302107; confirmed=true for the robustness-increase prediction, while STL satisfaction=0.736.
- Paired delta
- idea minus baseline = +6.810548e-04; idea wins 0/8 pairs; permutation p=0.0081.
Benchmark result
Significantly WORSE than the tuned baseline (+5187.4%, p=0.0081, wins 0 / 8 paired seeds).
- Benchmark
- Dynamics forecasting
- Model
- rnn_small
- Paired seeds
- 8
- Baseline mean
- 0
- Idea mean
- 0.0007
- Effect (Δ)
- 0.0007 (+5187.4%; negative = idea better)
- Wins
- 0 / 8 paired seeds
- p-value
- 0.0081 (permutation test, 20 000 shuffles)
- Smallest detectable effect
- ±416.2%
- Mechanism
- Confirmed ✓
- Practical effect
- Hurts
- Baseline tuning
- swept over 3 configs
The registered bench README was not resolvable through the read tool, but its documented API and source were inspected directly and the registered dynamics track was executed. GPU execution was intentionally disabled after a shared-environment cuDNN allocation failure; the completed registered protocol used CPU. The STL monitor is adapted to the built-in one-step forecast task using the observed input trajectory plus forecast, rather than a multi-step controller rollout; uncertainty, actuator-limit sweeps, beta annealing, and backup actions were not tested.
How to run: CUDA_VISIBLE_DEVICES='' OMP_NUM_THREADS=1 MKL_NUM_THREADS=1 /home/maxwelhelp/main/bin/python3 run_registered_bench.py
Artifacts
- bench_report.json 2.8 KB View Raw
- bench_stl_transfer.py 6.0 KB View Raw
- report.md 1.6 KB View
- report_bench_2026-09-01T014851.md 5.1 KB View
- results.json 6.9 KB View Raw
- run_registered_bench.py 5.0 KB View Raw
- stl_experiment.py 5.8 KB View Raw