engrXiv 10.31224/7306 · open source · MIT

CERT·FLOW

Certified route planning under drifting costs.

LBOPTUB

A robot routing through terrain whose costs drift — mud after rain, traffic after an incident — can't answer the one question that matters: how good is my route, now that most of the map is stale? CERT-FLOW answers it every round, with a proof, and spends sensing exactly where the proof is loosest.

250 testscoverage 1.000 measured 2 real cities + off-roadT1–T7 provenMIT

The problem

Classical replanning never tells you when to stop trusting the map.

A scout vehicle maps a forest trail in winter; by summer the mud is gone and the costs have moved. A delivery robot's street graph drifts with every incident. D* Lite, A*, and friends re-find the shortest path on whatever costs they currently hold — silently, whether those costs are fresh or hours stale. The route looks optimal and may not be, with nothing to flag it.

The honest question is a certificate question: bound the true optimum from both sides, act only on what you can prove, and when the bound is too loose, spend a sensor reading exactly where it tightens fastest.

How it works

One round: price staleness, bound the optimum, sense the gap.

Each edge carries a point estimate, an observation age, and a drift-rate bound. Age-weighted non-exchangeable conformal prediction turns these into intervals that widen with staleness; two incremental searches bracket the optimum from below and above; the certificate either certifies (gap ≤ ε) or points the next sensor reading at the edge that shrinks the gap fastest. When the certificate proves the map is tight, that proof licenses lookup-speed preprocessing — revoked the instant drift exceeds tolerance.

One CERT round: observations to conformal intervals to dual search to certificate to sensing
One CERT round, end to end — paid observations feed the conformal scorer; per-edge intervals bracket the optimum via dual incremental search; the certificate drives sensing; a proof of tightness gates preprocessing.
01 · score

Drift-adjusted residuals

Each paid observation is scored and weighted by age — exchangeability is never assumed.

02 · price

ĉ ± (λq + ρ·age)

The conformal quantile pays for noise; the drift term pays for staleness.

03 · bound

Dual incremental search

An optimistic ℓ-search and a conservative u-search, repaired incrementally on a flat-array engine.

04 · claim

LB ≤ OPT ≤ UB

At an honestly-annealed confidence that degrades visibly as the map ages — weak claims, not silence.

05 · sense

Shrink the certified gap

Route-critical, churn-aware sensing — certification is a rate, not a state (Theorem T2′).

06 · prove → cache

Gated preprocessing

When every interval is provably tight, an oracle / certified CH answers in ns–µs, revoked once drift exceeds τ.

CERT-FLOW running live on a 20x20 drifting grid: left, true edge costs as a heatmap with the certified incumbent path and the edges sensed each round; right, the certified corridor LB <= OPT <= UB growing over time with the true optimum drawn inside it.
The whole loop, live — real planner, 20×20 drift grid, 170 rounds. Left: true edge costs (heatmap), the certified incumbent path, and the gap-directed edges the planner pays to sense each round. Right: the certified corridor grows round by round — warm-up (certificate invalid) → valid (LB ≤ OPT ≤ UB brackets the true optimum, drawn inside) → drift moves the costs → sensing holds the band. Coverage over the valid rounds is 115/115 against exact Dijkstra. Regenerated by scripts/viz_gen/certified_corridor.py.

See it move

The certificate that holds — and the ones that break.

Every clip replays a real run; the coverage and regret numbers are measured at render time, not staged (warm-up rounds are drawn as “no claim”, never counted as misses). A note on honesty: on a known static map every planner finds the same optimal path — so these show what actually differs under drift: certificate validity and sensing efficiency.

Certificate holds vs. breaks — drifting grid

CERT's band contains the true optimum on every round it claims; AD*'s w-suboptimality band, trusting stale point estimates, drifts out of date.

coverage ↑CERT 100%AD* 43%

Same story, real MovingAI map

Certificate validity on benchmark game-map geometry (DAO arena) under bounded drift — the result transfers off the synthetic grid.

coverage ↑CERT 100%AD* 42%

Sensing that pays — unknown terrain

Gap-directed sensing converges near a clairvoyant oracle; random / max-age / drive-blind wander at the same budget (mean over 15 seeds).

regret ↓CERT 1.96others 4.9–7.8

Sensing that pays — real arena map

The same regret race on a cropped MovingAI arena: gap-directed sensing reaches the goal at the lowest travel-regret of any policy.

regret ↓CERT 1.71 (lowest)

Exchangeability collapse under staleness — METR-LA traffic

Exchangeable conformal (CIA, run with its own construction on the same city) covers on the static slice it assumes, then collapses as the calibration→test gap grows; CERT widens its interval to keep coverage. The price is paid in width, explicitly — never in coverage.

coverage ↑CERT 0.96–1.00CIA 0.88 → 0.25width ↓ = CIA frozen 53 s · CERT widens to stay valid

Rendered by scripts/viz_compare.py + the visualization suite — reproducible like every number on this page.

Where it stands

Best-in-class where it counts — and honest about the rest.

↑ higher better
1.000
certificate coverage, every condition — two real cities at up to 49% drift-model violation
↓ lower better
−0.12
travel-regret in unknown drifting terrain — statistically at a clairvoyant oracle
↓ lower better
269 ns
certified static query via proof-gated preprocessing (8.7 µs for a full path)
↓ lower better
0.015 ms
road cost-change absorption vs ≈ 1 s for CRP recustomization — four orders faster
property →drift-aware intervalspath-cost certificateonline incrementalgap-directed sensing
D* Lite / AD*
Conformal sums (CIA, CQR-GAE)
TASP / FreMEn
CTP + sensing / IPP
🏆 CERT-FLOW

Every prior family misses at least two of the four properties whose conjunction CERT occupies. All per-condition numbers — marked ↑/↓ and ranked best→worst — are in docs/results.

Coverage, observable · opt-in

Coverage you can watch — not just claim.

A certificate pinned at coverage 1.000 hides an awkward truth: the claim was untestable. An opt-in observability layer turns it into a live, alarming quantity — a WATCH conformal test-martingale and a Shiryaev–Roberts change-detector run alongside the planner and fire the moment the staleness model the proof leans on actually breaks. Every piece is off by default, a config flag or a new class, and touches no certificate: the (LB, UB, confidence) stream is byte-identical on or off.

The planner with watch_monitor=True on a grid whose true costs surge mid-run. Left: the certificate band brackets the true optimum until the drift jump, when the optimum briefly escapes the band still priced off stale costs. Right: the Shiryaev-Roberts statistic crawls flat under the correct model then explodes past its alarm threshold six rounds after the jump.
Watch it fire. The real planner with watch_monitor=True on a grid whose costs surge mid-run (the regime break from tests/test_live_wiring.py). Left — the band brackets the true optimum under the correct model; at the jump the optimum briefly escapes the band still priced off stale, cheap observations (vermillion) — the silent staleness the monitor exists to surface. Right — the Shiryaev–Roberts statistic crawls flat (median R ≈ 1.4) then explodes past its alarm threshold ~6 rounds after the jump, at zero cost to the certificate. Regenerated by scripts/viz_gen/watch_alarm.py.
The Shiryaev-Roberts validity statistic on real METR-LA: it stays quiet below the alarm threshold under the correctly-modelled null on 20 of 20 real seeds, and crosses the threshold seven rounds after an injected regime shift.
Soundness, now observable, on real METR-LA. The same Shiryaev–Roberts detector CERT-FLOW runs live inside round() (planner.sr): under the correctly-modelled null it stays below the alarm threshold — quiet on 20/20 real replay days — and catches an injected regime shift ~7 rounds later, at zero cost to the certificate.
real METR-LA
0.0000
coverage violations, every mode — 20 seeds × 288 rounds against the recording's true costs
validity monitor
20/20
replay days quiet — WATCH martingale + Shiryaev–Roberts, zero false alarms
width, shrinking
−26.6%
certified width recovered by sum-level UB on real traffic, at 0.0000 violations (licensed Tier-2 goes to −62.4%)
cost to certificate
0
the monitor is purely observational — identical (LB, UB, confidence) stream, on or off

Width, sensing, speed — the measured picture

Wide but shrinking. Sensing that pays. No crossover.

Certified width on real METR-LA relative to the default Bonferroni: PASC +24.7% wider (block-max, experimental); sum-aware UB -23.6% and CIA-UB -26.6% tighter, both at zero violations; the hatched ShrinkLicense Tier-2 bar -62.4% at 0.51% measured violations, a licensed a-posteriori claim.
Every width-pricing option on one paired run (real METR-LA, 10 seeds × 288 rounds). The three a-priori sum-level modes hold 0.0000 violations; sum-level calibration tightens 24–27% where the union tax lives (long optimistic paths, L≈14–18), while the block-max PASC radius starves and lands +24.7% wider — the sign is a path-length story, not a bug (the honest negative, kept experimental). The hatched ShrinkLicense tier (−62.4% at 0.51% measured miscoverage) is a-posteriori and anytime-valid — a different claim from the distribution-free certificate. Regenerated by scripts/viz_gen/width_methods.py.
Median route regret on real METR-LA for four sensing policies: hybrid 38.3 s, pure gap-directed 65.1 s, max-age 80.8 s, random 116.3 s; hybrid is 41 percent below the default, all at zero coverage violations.
Objective-matched sensing wins on real route regret. On real METR-LA (10 seeds × 288 rounds) the hybrid policy cuts median route regret −41% vs the shipped pure gap-directed default (38.3 s vs 65.1 s) and dominates the max-age / random baselines — all at 0.0000 violations and ~1 ms/round. It redirects the sensing budget toward the expected-best route only when the certificate provably cannot close ε, so it never trades the certificate away. Recommended via recommended_config().
Two-panel line chart: certified CERT-FLOW regret is at or below the fast uncertified replanner at every drift level including a static map (no crossover), and the fast planner's broken-promise overrun grows with drift while the certified upper bound is never exceeded.
There is no quality crossover to wait for. On identical worlds (12×12, 15 seeds) the certified planner's regret is the fast uncertified replanner's at every drift level — even the static map (ρ=0: 0.020 vs 0.036). The fast planner's point promise is broken on 62–97% of rounds with the overrun growing 0.15 → 6.6 cost units, while the certified upper bound is never exceeded (overrun ≡ 0). Its entire edge is latency — you pay ~ms/round for promises that hold.
soundness HOLDS on real data width shrinking: −27% recovered at 0 violations hybrid sensing −41% regret PASC wider on long paths

Wired behind PlannerConfig(watch_monitor=True), sum_aware_ub=True / cia_path_certificate(), shrink_license=True, and hybrid_sensing=True; full write-ups in width-attack-2026.md, hybrid-sensing-2026.md, crossover-2026.md, and live-wiring-2026.md. The program's meta-lesson, kept honest: the certify/verify layer survives real data — and the width it costs is now measurably shrinking.

The verdict scoreboard

Where it wins — and where it doesn't.

One honest table, every number traced to a committed result doc. Plain verdict words; the FAIL and WEAK rows stay in.

AreaCERT-FLOWBest alternativeVerdict
Coverage under real drift1.000 coverage, every conditionAD*/ARA* 0.02–0.07 valid (real METR-LA)PASSdecisively better — validity is the axis a route certificate lives on
vs CIA (closest conformal)holds 0.95–1.00 at every staleness gapCIA collapses 0.95 → 0.20 under stalenessPASSon validity — honest cost: up to ~49× wider at 24 h
Interval tightnessvalid but 1–2 orders wider; sum-level UB recovers −26.6% real-traffic width at 0 violations; licensed Tier-2 −62.4% at 0.51% measuredAD*-semantics intervals narrow (but invalid)WEAK, SHRINKINGsoundness costs width, now measurably recoverable — residual = the drift price
Sensingobjective-matched hybrid −41% median route regret on real METR-LA (recommended); pure gap-directed dominatedCTP-RS-style VOI 0.48PASS FAILhybrid (default-recommended) wins and carries a certificate VOI lacks; pure gap-directed stays documented
Static-grid / continental speed1.5 ms scratch · 3.7 ms per certified roundJPS+ ~4 µs · Hub Labels 0.56 µsFAILon raw latency, by design — but no quality crossover: certified regret ≤ the fast planner's at every drift, whose promises break on 62–97% of rounds
Bounded cost-change absorption0.015–0.34 msCRP ~1 s recustomizationPASSorders faster on the "costs moved, keep planning" operation
Observability (WATCH / SR)quiet 20/20 real seeds; injected shift caught in ~6–7 roundsno competitor ships thisPASSnovel — coverage is now a live, alarming quantity
Multi-agentadditive fleet certificate sound + exact (survives)joint TEAM-CERT (tighter on synthetic only)MIXEDadditive ports; joint falsified on real METR-LA

Read it straight: CERT-FLOW wins soundness and observability decisively; its interval width is wide but shrinking (sum-level calibration recovers a measured 24–27% at zero violations, the licensed tier goes further at a measured self-revoking cost); hybrid sensing is a real-data PASS; and it loses on static-map raw latency by design. Sources: docs/results/ — extern-baselines, cia-comparison, width-attack-2026, hybrid-sensing-2026, crossover-2026, published-speed-comparison, live-wiring-2026, multiagent.

The theory

Seven results — including a proof that the design is optimal.

T1a / T1bCoverage at the claimed level — for observable costs, and for latent costs at a doubled margin.
T2′ — certifiability thresholdA target gap ε is sustainable iff the sensing rate beats drift. Certification is a rate, not a state (proven both directions).
T4 — sum-aware certificateA √L-tighter upper bound, with the selection-bias hazard it creates and the freshness gate that controls it.
T5 — impossibilityNo uniform lower bound beats Bonferroni by more than log factors. The certificate's asymmetry is provably optimal.
T6 — decision-uniform validityValidity over exactly the rounds a policy acts on — α-spent where the trajectory consumes it.
T7 — churn-measured floorFocused sensing suppresses path churn rather than chasing it; the floor uses the measured churn set.

Full statements + proofs in the theory companion (paper/theory.tex); working notes in docs/theory.

Honest boundaries

What it does not win — stated plainly.

A certificate is only as trustworthy as its author's honesty about the edges. These are measured, documented, and shipped alongside the wins.

Static, known maps

On a frozen, fully-known graph, optimized planners (Hub Labels, CH) answer in microseconds and CERT shouldn't be used — its value begins only when costs drift. CERT reaches that speed class only through proof, when the certificate says it's safe.

Age-weighting alone

On a bare residual stream, our age-weighted quantile ties fixed-weight NexCP — the real edge over exchangeable conformal is the explicit ρ·age drift term and the sensing loop, not the weighting. Reported, not buried.

Single-corridor mazes

Where there is only one route, route-critical sensing provably cannot help — confirmed by a maze negative control. The claim's boundary, not a defect.

Real off-road drift (FoMo)

On a full year of forest-trail traversal costs, path-level coverage holds at 1.000 but the marginal edge guarantee strains slightly (0.87 vs 0.90) — real winter→summer shifts are harsher than bounded synthetic drift. An honest datapoint, not a perfect one.

Use it

Reproducible to the last number.

Run it

# clone, install, test
git clone https://github.com/Archerkattri/CERT-FLOW
cd CERT-FLOW
python -m venv cert_env && source cert_env/bin/activate
pip install -e ".[dev,fast]" pandas h5py tables
pytest   # 250 tests · core sweep ≈ 100 s

Every figure and table regenerates from a script in scripts/; results live in docs/results/.

Cite it

@article{attri2026certflow,
  author = {Attri, Krishi},
  title  = {{CERT}: Certified Route Planning
            under Drifting Costs},
  year   = {2026},
  doi    = {10.31224/7306}
}