{ "cells": [ { "cell_type": "markdown", "id": "abf45d43", "metadata": {}, "source": [ "# `spiess` — Spiess's (1990) count-misfit-only OD estimation\n", "\n", "**What.** `spiess` (T2, ADR-002) drops the prior term entirely below full\n", "weight and instead solves a bilevel program: an inner MSA route-choice\n", "assignment feeding an outer count-misfit gradient step on the OD matrix,\n", "guarded by a retrospective Armijo step-size search over the observed-count\n", "RMSE. Unlike `gls`, it has no closed form — every claim below is the\n", "estimator's ACTUAL trajectory, certified against the harness pin.\n", "\n", "**Why it is in the benchmark.** It is the count-driven end of the T2\n", "spectrum (vs `gls`'s balanced prior/count trade-off), and it exposes a real\n", "methodological trap: on Braess, the count-misfit objective has a SPURIOUS\n", "local minimum that a naive gradient descent from a plausible prior falls\n", "into. ADR-002 Decision 3's retrospective-Armijo + best-self-obs-RMSE\n", "safeguard exists specifically to refuse that trap — this notebook makes both\n", "the trap and the safeguard executable facts, not narrative. See the\n", "[model compendium](../../docs/MODELS.md) (Spiess 1990) and\n", "[docs/design/adr-002-t2-estimation-certificate.md](../../docs/design/adr-002-t2-estimation-certificate.md)\n", "(P1, Decision 3).\n", "\n", "**Scope.** Two-route convex sanity recovery, Braess global-basin recovery\n", "from `D=5.5`, and the Braess `D=4`-prior local-minimum trap + safeguard —\n", "all certified in-cell.\n", "\n", "**Canon.** `[spiess1990gradient]`, [docs/REFERENCES.md](../../docs/REFERENCES.md) / [docs/references.bib](../../docs/references.bib)." ] }, { "cell_type": "markdown", "id": "ec9fd7b5", "metadata": {}, "source": [ "## How this notebook is graded\n", "\n", "**A notebook never claims a number it does not compute in that cell.** Every\n", "scored quantity below is recomputed live by the P1 `ODCertifier` from the\n", "emitted OD matrix against the harness's own pinned BFW assignment of the\n", "truth — never from `spiess`'s self-reported inner-MSA proportions\n", "([README](../../README.md), *Certified, not self-reported*)." ] }, { "cell_type": "code", "execution_count": 1, "id": "c00298aa", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:04.675022Z", "iopub.status.busy": "2026-07-21T13:47:04.674687Z", "iopub.status.idle": "2026-07-21T13:47:06.657508Z", "shell.execute_reply": "2026-07-21T13:47:06.656739Z" } }, "outputs": [], "source": [ "# Setup. `spiess` is a core estimator: a plain `pip install -e .` suffices —\n", "# no optional extra, so no guard cell. The inline backend is Agg-based\n", "# (headless CI renders into the notebook); NEVER matplotlib.use(\"Agg\")\n", "# in-kernel — it silently suppresses inline figure capture.\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from tabench import (\n", " Budget,\n", " Demand,\n", " ODCertifier,\n", " RngBundle,\n", " SpiessEstimator,\n", " Trace,\n", " braess_scenario,\n", " two_route_scenario,\n", " viz,\n", ")\n", "from tabench.core.rng import SOURCE_OBSERVATION\n", "from tabench.estimation import ODTrace\n", "from tabench.estimation.base import EstimationTask\n", "from tabench.models.frank_wolfe import BiconjugateFrankWolfeModel\n", "from tabench.observe.levels import LinkCounts\n", "\n", "BRAESS_TRUTH = np.array([4.0, 2.0, 2.0, 2.0, 4.0]) # UE(D=6), recomputed below\n", "TWOROUTE_TRUTH = np.array([2.5, 2.5, 1.5, 1.5]) # UE(D=4), recomputed below\n", "\n", "# Analytic anchors recomputed, never quoted: pin both by an independent\n", "# high-precision BFW solve before EITHER constant is used as a data-generating\n", "# truth anywhere below.\n", "def _pinned_ue(scenario):\n", " trace = Trace()\n", " BiconjugateFrankWolfeModel().solve(\n", " scenario, Budget(iterations=5000, target_relative_gap=1e-10), RngBundle(0), trace\n", " )\n", " return trace.final.link_flows\n", "\n", "np.testing.assert_allclose(_pinned_ue(braess_scenario(6.0)), BRAESS_TRUTH, atol=1e-6)\n", "np.testing.assert_allclose(_pinned_ue(two_route_scenario(sue_theta=None)), TWOROUTE_TRUTH, atol=1e-6)\n", "\n", "\n", "def _single_pair_prior(d):\n", " m = np.zeros((2, 2))\n", " m[0, 1] = d\n", " return m\n", "\n", "\n", "def _task(scenario, truth, sensors, prior_matrix):\n", " ds = LinkCounts(np.asarray(sensors), 1, \"none\").observe(\n", " scenario, truth, RngBundle(0).generator(SOURCE_OBSERVATION)\n", " )\n", " return EstimationTask(\n", " name=\"t\", network=scenario.network, prior=Demand(np.asarray(prior_matrix, dtype=np.float64)),\n", " dataset=ds, identifiability={}, scenario_hash=scenario.content_hash(), seed=0,\n", " )" ] }, { "cell_type": "markdown", "id": "47f145e2", "metadata": {}, "source": [ "## Sanity: two-route convex recovery\n", "\n", "On the convex two-route corridor (a single OD pair, no spurious minima),\n", "`spiess` recovers the true `D=4` from an off prior `D=3` under full sensors." ] }, { "cell_type": "code", "execution_count": 2, "id": "5f084d41", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:06.661669Z", "iopub.status.busy": "2026-07-21T13:47:06.661384Z", "iopub.status.idle": "2026-07-21T13:47:08.747023Z", "shell.execute_reply": "2026-07-21T13:47:08.745602Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "recovered D : 4.0000 (truth: 4.0, off prior: 3.0)\n" ] } ], "source": [ "sc2 = two_route_scenario(sue_theta=None)\n", "task2 = _task(sc2, TWOROUTE_TRUTH, np.arange(4), _single_pair_prior(3.0))\n", "trace2 = ODTrace()\n", "SpiessEstimator(k_inner=120, outer_iters=80).estimate(\n", " task2, Budget(sp_calls=10**9, iterations=200), RngBundle(0), trace2\n", ")\n", "print(f\"recovered D : {trace2.final.od_matrix[0, 1]:.4f} (truth: 4.0, off prior: 3.0)\")\n", "assert abs(trace2.final.od_matrix[0, 1] - 4.0) < 1e-3" ] }, { "cell_type": "markdown", "id": "2b37bd18", "metadata": {}, "source": [ "## Braess: global-basin recovery from `D=5.5`\n", "\n", "`braess_scenario(6.0)` is the D=6 Braess network, frozen and content-hashed\n", "(P2). From a prior `D=5.5` — inside the count-misfit objective's GLOBAL\n", "basin — full noiseless sensors let `spiess` recover the true `D=6`." ] }, { "cell_type": "code", "execution_count": 3, "id": "ca255ba3", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:08.752908Z", "iopub.status.busy": "2026-07-21T13:47:08.752509Z", "iopub.status.idle": "2026-07-21T13:47:10.902641Z", "shell.execute_reply": "2026-07-21T13:47:10.901595Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : braess\n", "content hash : cf00f411cdccec88…\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "recovered D : 6.0000 (truth: 6.0, off prior: 5.5)\n", "certified od_rmse : 0.0000e+00\n" ] } ], "source": [ "sc = braess_scenario(6.0)\n", "print(f\"scenario : {sc.name}\")\n", "print(f\"content hash : {sc.content_hash()[:16]}…\")\n", "\n", "task_global = _task(sc, BRAESS_TRUTH, np.arange(5), _single_pair_prior(5.5))\n", "trace_global = ODTrace()\n", "SpiessEstimator(k_inner=120, outer_iters=80).estimate(\n", " task_global, Budget(sp_calls=10**9, iterations=200), RngBundle(0), trace_global\n", ")\n", "recovered = trace_global.final.od_matrix[0, 1]\n", "print(f\"recovered D : {recovered:.4f} (truth: 6.0, off prior: 5.5)\")\n", "assert abs(recovered - 6.0) < 1e-3\n", "\n", "certifier = ODCertifier(\n", " sc, np.arange(5), np.array([], dtype=np.int64),\n", " BRAESS_TRUTH[None, :], BRAESS_TRUTH[[]][None, :], BRAESS_TRUTH,\n", " {\"linear_identifiable\": True},\n", ")\n", "metrics = certifier.certify(trace_global.final.od_matrix)\n", "print(f\"certified od_rmse : {metrics['od_rmse']:.4e}\")\n", "assert metrics[\"od_feasible\"] == 1.0\n", "assert metrics[\"od_rmse\"] < 1e-3" ] }, { "cell_type": "markdown", "id": "e7801e00", "metadata": {}, "source": [ "## The distinctive result: the `D=4`-prior spurious local minimum\n", "\n", "The SAME Braess network's count-misfit objective has a SECOND, dominated\n", "stationary point near `D=10/3` (the bypass-saturated regime: outer links\n", "`1->4` and `3->2` carry zero flow at `D=10/3`, giving flows `(10/3, 0, 10/3,\n", "0, 10/3)`, whose count RMSE against the truth is strictly worse than the\n", "prior's own RMSE). From a prior `D=4` — inside that trap's basin — a naive\n", "gradient descent would fall in; ADR-002 Decision 3's retrospective-Armijo +\n", "best-self-obs-RMSE safeguard REFUSES the trap: the emitted estimate is\n", "neither the global optimum `D=6` NOR the dominated trap `D=10/3`." ] }, { "cell_type": "code", "execution_count": 4, "id": "87a4f3f0", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:10.906959Z", "iopub.status.busy": "2026-07-21T13:47:10.906704Z", "iopub.status.idle": "2026-07-21T13:47:14.046214Z", "shell.execute_reply": "2026-07-21T13:47:14.045516Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "emitted D : 3.9967 (NOT 6.0, NOT 10/3=3.3333)\n", "emitted self obs_count_rmse (provenance only) : 1.2292\n", "dominated-trap obs_count_rmse : 1.4606\n", "certified emitted obs_count_rmse : 1.2538\n", "certified trap obs_count_rmse : 1.4606\n" ] } ], "source": [ "task_trap = _task(sc, BRAESS_TRUTH, np.arange(5), _single_pair_prior(4.0))\n", "trace_trap = ODTrace()\n", "SpiessEstimator(k_inner=120, outer_iters=120).estimate(\n", " task_trap, Budget(sp_calls=10**9, iterations=120), RngBundle(0), trace_trap\n", ")\n", "g = trace_trap.final.od_matrix[0, 1]\n", "print(f\"emitted D : {g:.4f} (NOT 6.0, NOT 10/3={10/3:.4f})\")\n", "assert abs(g - 6.0) > 1.0 # emphatically not the global optimum\n", "assert abs(g - 10.0 / 3.0) > 0.25 # and NOT the dominated 10/3 trap either\n", "\n", "# The safeguard held: the returned self obs-RMSE beats the trap's own RMSE,\n", "# where the bypass carries all demand (flows (10/3, 0, 10/3, 0, 10/3)).\n", "trap_flows = np.array([10.0 / 3.0, 0.0, 10.0 / 3.0, 0.0, 10.0 / 3.0])\n", "trap_resid = float(np.sqrt(np.mean((trap_flows - BRAESS_TRUTH) ** 2)))\n", "emitted_resid = trace_trap.final.self_report[\"obs_count_rmse\"]\n", "print(f\"emitted self obs_count_rmse (provenance only) : {emitted_resid:.4f}\")\n", "print(f\"dominated-trap obs_count_rmse : {trap_resid:.4f}\")\n", "assert emitted_resid < trap_resid\n", "\n", "# The self-report comparison above, RE-CERTIFIED (P1): the trap itself is the\n", "# D=10/3 OD matrix (same certifier object built for the global-basin recovery\n", "# above), so both sides of the safeguard claim are independently harness-scored,\n", "# not read from the estimator's own bookkeeping.\n", "certified_emitted = certifier.certify(trace_trap.final.od_matrix)[\"obs_count_rmse\"]\n", "certified_trap = certifier.certify(_single_pair_prior(10.0 / 3.0))[\"obs_count_rmse\"]\n", "print(f\"certified emitted obs_count_rmse : {certified_emitted:.4f}\")\n", "print(f\"certified trap obs_count_rmse : {certified_trap:.4f}\")\n", "assert certified_emitted < certified_trap\n", "# Self-report tracks the certificate closely for this white box (honesty diff).\n", "assert np.isclose(emitted_resid, certified_emitted, atol=0.05)" ] }, { "cell_type": "markdown", "id": "fb6c0c7d", "metadata": {}, "source": [ "## Visualize\n", "\n", "`tabench.viz` draws the road `Network`'s link flows — the trap's dominated\n", "flow pattern vs the truth, both certifiable quantities from the cells above." ] }, { "cell_type": "code", "execution_count": 5, "id": "85e2cc7b", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:14.050464Z", "iopub.status.busy": "2026-07-21T13:47:14.050136Z", "iopub.status.idle": "2026-07-21T13:47:14.372302Z", "shell.execute_reply": "2026-07-21T13:47:14.371778Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(viz.plot_network_flows(sc.network, BRAESS_TRUTH))\n", "display(viz.plot_flow_scatter(\n", " (\"truth (D=6)\", BRAESS_TRUTH),\n", " {\"dominated D=10/3 trap (refused)\": trap_flows},\n", "))" ] }, { "cell_type": "markdown", "id": "940a4590", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **Certified, not self-reported.** Every `od_rmse` above came from\n", " `ODCertifier`'s own re-assignment of the emitted OD matrix, never from\n", " `spiess`'s inner-MSA proportions.\n", "- **The safeguard is load-bearing, not decorative.** From `D=4`, an\n", " unguarded gradient descent would land at the dominated `D=10/3` trap;\n", " ADR-002 Decision 3's retrospective-Armijo + best-self-obs-RMSE check\n", " refuses it, verified above as an executable fact.\n", "- **Where next.** the balanced-tradeoff sibling on the SAME network\n", " [`gls`](01-gls.ipynb) (recovers from the SAME `D=5.5` global-basin prior);\n", " the entropy-balancing alternative [`vzw-entropy`](03-vzw-entropy.ipynb);\n", " the lineage in the [model compendium](../../docs/MODELS.md)." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" }, "tabench": { "covers": [], "requires_extra": null, "track": "estimation", "unit": "spiess" } }, "nbformat": 4, "nbformat_minor": 5 }