DEV Community

howcani howcani
howcani howcani

Posted on

Your robot's execution horizon is not a tuning knob. It is the solution to an equation with a wall in it.

Every vision-language-action policy shipped this year answers one query with a chunk of future actions — and then executes an open-loop prefix of that chunk before it looks again. The length of that prefix, the execution horizon L, is set per deployment by whoever tunes it last.

The 2026 literature states the tension that governs L almost verbatim, and then answers it with a schedule. PACE measures that success is "strongly task-dependent and non-monotonic with respect to" the horizon and replies with a phase-aware schedule. Staircase Policy states that "performance degrades over long execution horizons because later actions remain conditioned on stale observations" and replies with staggered sub-chunks. Urgent Actions Go First exploits that actions "are generated jointly but consumed sequentially". A concurrent family — AutoHorizon, DEHP, ChunkTrust, SplineWAM — makes L an adapted decision variable and estimates it at run time from attention weights, a learned branch, latent evidence, or a B-spline world-action model.

Nine independent works locate the same tension. None writes the objective down. So the adapted horizon is tuned against a quantity nobody has derived, and "it's task-dependent" is where the explanation stops.

Write the objective down and the horizon stops being a knob

The trade is two costs that share one control:

  • Amortization — each query costs λ_c (latency, energy, a real-time budget), so the per-step query cost falls like λ_c/L.
  • Staleness — every action in the executed prefix is conditioned on an observation older by the number of steps since the query, so tracking error grows with the horizon.

Put them in one objective with a plant whose closed loop is exactly known, and the interior optimum is a stationarity condition, not a fitted curve:

λ_c = L · [ c(τ + L) − C(L) ]
Enter fullscreen mode Exit fullscreen mode

where c is the per-delay tracking cost, τ the inference latency, and λ_c the price per query. The point of writing it down is that it is an identity: it reproduces the optimum of the discrete sweep exactly — worst disagreement 0.0000 at grid resolution 0.02 — across a 4 × 7 grid of plants and latencies at 22 prices spanning seven decades of price. 24 of the 28 design cells are feasible and recorded; the other four lie past the wall below.

That changes what "task-dependent" means. The horizon is a function of the inference price and a measurable property of the plant — its delay-cost curvature at the operating horizon. Task dependence enters only through that property. Read backwards, the heuristic wave is a set of approximations of one boundary rather than a set of unrelated tricks.

The feasible set is a window that closes at both ends

The law comes with a constraint that is easy to miss and hard to engineer around: the feasible set is exactly

L* ∈ [ τ , d_max − τ ]
Enter fullscreen mode Exit fullscreen mode
  • Low price pins at the floor. Inference is cheap, so the equation wants to query constantly — and the horizon cannot go below the latency τ. Once the floor binds, buying more inference does not shorten the commit; there is nothing left to shorten.
  • High price pins at a ceiling. The window's upper end is d_max − τ, a feasibility ceiling, not a cost optimum.
  • At τ = d_max/2 the window collapses to a point. There is no feasible execution horizon at all. We call it the latency wall, and neither the ceiling nor the wall is in the registered prior.

The engineering consequence is blunt: a run-time adapter that estimates L from a signal is solving a different problem from a system whose window has closed. Adapting is not a substitute for the boundary, and at the wall there is nothing to adapt to — the policy must change shape (query cheaper, or act on a shorter observation age), because no horizon satisfies the constraint.

Two registered predictions failed, and both are in the paper

This is where a paper earns or loses trust, so here is the part that argues against ourselves.

The square-root law is refuted. L* ≈ √(2λ_c/s) is the form you get from an asymptotic expansion, and it is wrong for these plants: over 19 fits the exponent of L* in λ_c lies in [+0.184, +0.635] with mean +0.348, and 14 of 19 regression intervals lie entirely below 0.5. The exponent is also latency-dependent within a single plant, so no single exponent describes it.

Its natural replacement is refuted too. The obvious repair — EXPONENT = 1/(p+1) for a power-law delay cost — fails our own test: correlation +0.773, mean error 0.072. The reason is measured rather than asserted: the delay-cost curve is not a power law over the swept window. So the exponent is a derived readout of the delay-cost curvature at the operating horizon, not a universal constant, and any tuning rule that assumes one is fitting the wrong functional form.

If you have a heuristic of the form "commit length scales as the square root of the inference cost", that is the shape of the thing being refuted here.

Two disturbance channels, and one of them moves nothing

Robotics folklore bundles disturbances into one knob. They act on different quantities:

  • A non-zero-mean disturbance adds a delay-invariant term — measured at 400 % of the covariance part — which raises the cost level and moves the optimum by nothing. Adding a constant bias to your plant does not change how long you should commit.
  • A change in disturbance shape at matched second moment does move the optimum, and the effect grows with staleness. Same variance, same mean, different decision.

And the channel prior was, on the linear arm, a tautology: two disturbance processes matched in second moment give identical costs to 4.3e-16. The channel is real only on the nonlinear arm, which is where it had to be re-sited. A prior that cannot fail is not a prior; it is an identity wearing a hypothesis's clothes.

Run it, don't take my word for the arithmetic

The package ships one command, and the honest thing is to run it on the build it declares and say whose checkers they are — they are the package's own, and running them is a check of the arithmetic and the claims-to-numbers wiring, not a review of the science.

bash reproduce.sh, on the declared build (CPython 3.9.6 / NumPy 2.0.2), from an export of the published commit:

canonical_results.json == regenerated artefact
    sha256 afaaee8e56148dfab8f98cc1721d1ea0508b722c1fa6e442026de923e99e31c0
figures     4 of 4 byte-identical to a fresh draw
product     manuscript.md 78300 chars, 137 references, all cited, 0 uncited
criterion 1 the two exact routes agree to 1.52e-14 (registered <= 1e-6)
            the candidate closed form is reported refuted by the run itself

REPRODUCE: ALL GREEN
Enter fullscreen mode Exit fullscreen mode

That last line is the one worth noticing: the package's own check fails the closed form the paper proposed as a replacement, and prints it. A reproduction script that only proves the code runs proves the code runs.

Scope, stated before the conclusion

The empirical arm is in-silico — a controlled plant/disturbance instrument with ground truth by construction, not a deployed policy. Registered criterion (v), the out-of-sample sign test, is NOT RUN, and the paper says so where the claim is made; the generality claim is therefore bounded to the modelled plant family. Identifying the delay-cost curvature c(·) from a deployed policy's logs is left open and is not claimed.

What transfers is the structure: the horizon is the solution of a stationarity condition, the window has two ends and a wall, and the exponent is a curvature readout rather than a constant. What does not transfer is any single number.

The short version

If you are tuning an execution horizon, you are solving λ_c = L·[c(τ+L) − C(L)] whether or not you write it down — and the two things that will bite you are the floor at τ, which cheap inference does not let you go below, and the wall at τ = d_max/2, where no horizon is feasible and adaptation has nothing to adapt.


The paper is How Long Should a Robot Commit? A Staleness–Amortization Boundary Law for the Action-Chunk Execution Horizon — published in SILICON SCIENCE: Computer Science, the journal I help operate, where the submission, the public peer review and the editorial decision all happen in the open and every manuscript ships its reproduction script and data. The instrument, the sweep and the script above are in the same repository.

Top comments (1)

Collapse
 
koda2026 profile image
Harun - solo dev •

howcani, this is a rigorously derived and much-needed mathematical grounding for what is usually treated as a black-box hyperparameter in VLA policies.

the concept of the 'latency wall' at tau = d_max/2 is particularly striking. it mathematically proves why simply quantizing a model to reduce inference latency (tau) isn't just an optimization hack—it's a fundamental requirement to prevent the feasible execution window from collapsing entirely.

your refutation of the square-root law is also a massive service to the community. treating the exponent as a derived readout of the delay-cost curvature rather than a universal constant explains so many failed heuristic transfers across different robotic morphologies.

regarding the open problem you stated at the end: identifying the delay-cost curvature c(.) from a deployed policy's logs. since you proved that a change in disturbance shape (at a matched second moment) moves the optimum, while variance alone doesn't, how are you approaching the empirical estimation of c(.) from real-world telemetry? are you looking at higher-order moments (skewness/kurtosis of the tracking error), or are you attempting to fit the curvature directly via system identification on the residual dynamics?

also, massive respect for shipping the reproduce.sh with exact sha256 checksums. open, reproducible science is exactly what this field needs. looking forward to the out-of-sample sign test! 🐯