{ "cells": [ { "cell_type": "markdown", "id": "a3de1356", "metadata": {}, "source": [ "# `br-ue` — Boundedly-rational user equilibrium (Mahmassani & Chang 1987)\n", "\n", "**What.** Boundedly-rational UE relaxes Wardrop's equality to an *indifference band*:\n", "a flow is acceptable if every used route is within an absolute threshold ε of its\n", "OD's cheapest route. The equilibrium is therefore a SET, not a point — `br-ue` returns\n", "the band-edge flow reached from the free-flow all-or-nothing start\n", "(`[mahmassani1987on]`, [docs/REFERENCES.md](../../docs/REFERENCES.md)).\n", "\n", "**Why it is in the benchmark.** It is the behavioural relaxation of exact rationality\n", "(ADR-008): the scored certificate becomes band-acceptability, not a zero gap. See the\n", "[model compendium](../../docs/MODELS.md) and\n", "[docs/ARCHITECTURE.md](../../docs/ARCHITECTURE.md) (P1).\n", "\n", "**Scope.** Runs on the built-in BR two-route anchor (demand 10, ε = 1) and certifies\n", "band-acceptability. Its Wardrop gap is deliberately non-zero — that is the point." ] }, { "cell_type": "markdown", "id": "82dc4e68", "metadata": {}, "source": [ "## How this notebook is graded\n", "\n", "**A notebook never claims a number it does not compute in that cell.** Every scored\n", "quantity below is recomputed live by the P1 `Evaluator` from the flows the model\n", "emitted, in the cell where it is claimed. Model self-reports are shown only as\n", "provenance and diffed against the certificate as an honesty check, exactly as the\n", "harness treats them ([README](../../README.md), *Certified, not self-reported*)." ] }, { "cell_type": "code", "execution_count": 1, "id": "7dc77d5f", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:48.126058Z", "iopub.status.busy": "2026-07-21T13:45:48.125508Z", "iopub.status.idle": "2026-07-21T13:45:50.016395Z", "shell.execute_reply": "2026-07-21T13:45:50.015426Z" } }, "outputs": [], "source": [ "# Setup. `br-ue` is a core model: a plain `pip install -e .` suffices — no\n", "# optional extra, so no guard cell. The inline backend is Agg-based (headless CI\n", "# renders into the notebook); NEVER matplotlib.use(\"Agg\") in-kernel — it silently\n", "# suppresses inline figure capture.\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from tabench import (\n", " BoundedlyRationalUEModel,\n", " Budget,\n", " Evaluator,\n", " RngBundle,\n", " Trace,\n", " br_two_route_scenario,\n", " viz,\n", ")" ] }, { "cell_type": "markdown", "id": "86815724", "metadata": {}, "source": [ "## The scenario\n", "\n", "Two disjoint 2-link routes, demand 10, indifference band ε = 1 (native cost units).\n", "Both route slopes are 1, so the acceptable set is an interval around the Wardrop split;\n", "the free-flow-AON swap stops at the band edge f_A = (D+1)/2 + ε/2 = 6. Content-hashed (P2)." ] }, { "cell_type": "code", "execution_count": 2, "id": "1160d74a", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:50.020606Z", "iopub.status.busy": "2026-07-21T13:45:50.020373Z", "iopub.status.idle": "2026-07-21T13:45:50.024658Z", "shell.execute_reply": "2026-07-21T13:45:50.024039Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : br-tworoute\n", "content hash : ef0628123c11a4f1…\n", "total demand : 10.0\n", "band epsilon : 1.0 (native cost units)\n" ] } ], "source": [ "scenario = br_two_route_scenario()\n", "net = scenario.network\n", "\n", "print(f\"scenario : {scenario.name}\")\n", "print(f\"content hash : {scenario.content_hash()[:16]}…\")\n", "print(f\"total demand : {scenario.demand.total}\")\n", "print(f\"band epsilon : {scenario.br_epsilon} (native cost units)\")" ] }, { "cell_type": "markdown", "id": "8cccbcbc", "metadata": {}, "source": [ "## Solve\n", "\n", "The model contract ([CONTRIBUTING.md](../../CONTRIBUTING.md)): a model receives\n", "`(scenario, budget, rng, trace)`, records checkpoints, and respects the budget.\n", "Budgets are hardware-free (iterations / shortest-path calls; wall-clock is recorded\n", "but never the ranking axis, P7). Whatever the model writes into `self_report` is\n", "provenance, not a score." ] }, { "cell_type": "code", "execution_count": 3, "id": "3aa44f5d", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:50.028547Z", "iopub.status.busy": "2026-07-21T13:45:50.028191Z", "iopub.status.idle": "2026-07-21T13:45:50.034397Z", "shell.execute_reply": "2026-07-21T13:45:50.033759Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "model : br-ue\n", "emitted flows : [6. 6. 4. 4.]\n", "self-reported gap : 7.895e-02 (provenance only)\n", "self band excess : 1.0000 (provenance only)\n" ] } ], "source": [ "model = BoundedlyRationalUEModel()\n", "bundle = model.solve(scenario, Budget(iterations=100), RngBundle(0), Trace())\n", "\n", "final = bundle.final\n", "print(f\"model : {model.name}\")\n", "print(f\"emitted flows : {np.round(final.link_flows, 6)}\")\n", "print(f\"self-reported gap : {final.self_report['relative_gap']:.3e} (provenance only)\")\n", "print(f\"self band excess : {final.self_report['band_excess']:.4f} (provenance only)\")" ] }, { "cell_type": "markdown", "id": "8bb08a0c", "metadata": {}, "source": [ "## Certify (P1)\n", "\n", "The BR certificate is **band-acceptability**, not a zero gap: the harness checks that\n", "the average excess cost is within ε (`br_acceptable = 1`). The ordinary Wardrop gap is\n", "*non-zero* here — a BR flow is not a Wardrop equilibrium — and that is reported\n", "honestly. We recompute the band-edge anchor (f_A = 6, AEC = 0.6) in-cell." ] }, { "cell_type": "code", "execution_count": 4, "id": "92edafa6", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:50.038271Z", "iopub.status.busy": "2026-07-21T13:45:50.037836Z", "iopub.status.idle": "2026-07-21T13:45:50.044146Z", "shell.execute_reply": "2026-07-21T13:45:50.043450Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wardrop relative gap : 7.895e-02 (non-zero: a BR flow is not Wardrop)\n", "average excess cost : 0.6000 (band epsilon = 1.0)\n", "band acceptable : 1\n", "feasible : 1\n", "band edge f_A : 6.0 (recomputed)\n" ] } ], "source": [ "evaluator = Evaluator(scenario)\n", "metrics = evaluator.evaluate(final.link_flows)\n", "gap = metrics[\"relative_gap\"]\n", "aec = metrics[\"average_excess_cost\"]\n", "print(f\"Wardrop relative gap : {gap:.3e} (non-zero: a BR flow is not Wardrop)\")\n", "print(f\"average excess cost : {aec:.4f} (band epsilon = {scenario.br_epsilon})\")\n", "print(f\"band acceptable : {metrics['br_acceptable']:.0f}\")\n", "print(f\"feasible : {metrics['feasible']:.0f}\")\n", "\n", "assert metrics[\"feasible\"] == 1.0\n", "assert metrics[\"br_acceptable\"] == 1.0\n", "assert aec <= scenario.br_epsilon + 1e-9\n", "\n", "# Honesty diff (P1): the (non-zero) Wardrop gap self-report matches the certificate.\n", "assert np.isclose(final.self_report[\"relative_gap\"], gap, rtol=1e-9, atol=1e-9)\n", "\n", "# Analytic anchor RECOMPUTED: band edge f_A = (D+1)/2 + eps/2, AEC = (f_A/D)*eps.\n", "demand = scenario.demand.total\n", "eps = scenario.br_epsilon\n", "f_a = 0.5 * (demand + 1.0) + 0.5 * eps\n", "ref_flows = np.array([f_a, f_a, demand - f_a, demand - f_a])\n", "print(f\"band edge f_A : {f_a} (recomputed)\")\n", "assert np.allclose(final.link_flows, ref_flows, atol=1e-4)\n", "assert abs(aec - (f_a / demand) * eps) < 1e-6" ] }, { "cell_type": "markdown", "id": "06ab5cd2", "metadata": {}, "source": [ "## Visualize\n", "\n", "Both figures come from `tabench.viz`. Left/top: the BR band-edge link flows.\n", "Right/bottom: the emitted flows against the recomputed band edge — on-diagonal means\n", "the swap stopped exactly at the ε-band edge, not the Wardrop point." ] }, { "cell_type": "code", "execution_count": 5, "id": "b679cfef", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:45:50.047908Z", "iopub.status.busy": "2026-07-21T13:45:50.047492Z", "iopub.status.idle": "2026-07-21T13:45:50.325554Z", "shell.execute_reply": "2026-07-21T13:45:50.324669Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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9+49kJaWjlGjRuP48eMAKntIixcvxkMPPYyMjBb47rvvkJWV5fn6Vq1aYeHChbjvvvuQkdECe/d+i379+kGrrRwXa9q0Kdat+xD/+c9StG7dBi1btsIDDzyIsrKyWutRq9WYMOF2rFix0vNefT6PrKwsDB8+HL1790GbNm1x5MgR9Ox58ae7jxgxAidPnkRWVlaNexn79++Hbt2uQtu2lyM9Pf28nrJSqcSqVR/AahVw1VXd0KJFCzz33HMQRREAsHHjRmRm9q3XDfze6NSpEz76aD0ee+xxz3inLzQaDVavXoX9+/ejVavWGDNmLO6++y6MHDnSs09mZiZKS0s9l0H79OkDq9XKy6Ihgk+oJwqwK6+8Cg8//BBGjRpVp68vLS1FZmY/bN26Rbab6jt16ox//esFDBo0yC/HE0URffv2xTvvvIO2bdv65ZhEdaWWuwCicLNp0yb07dsXWq0WS5YsQV5eXo1eo6+io6Nx4MB+/xXoo7VrP4QounHNNf67hKlUKvH111/77XhE9cEgJPKzrVu/wNSp0+ByudCyZUu8//57iIuLk7usOunWrTuKioqwaNFCqFQqucshCgheGiUioojGyTJERBTRGIRERBTRGIRERBTRGIRERBTRGIRERBTRGIRERBTRGIRERBTRGIRERBTR/h/Adpy+URKS/AAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(viz.plot_network_flows(net, final.link_flows))\n", "display(viz.plot_flow_scatter((\"BR band edge (analytic)\", ref_flows), {\"br-ue\": final.link_flows}))" ] }, { "cell_type": "markdown", "id": "ed680f79", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **The certificate is the band, not the gap.** `br_acceptable = 1` with AEC ≤ ε;\n", " the non-zero Wardrop gap is reported honestly, not hidden.\n", "- **Set-valued equilibrium.** BR-UE is an acceptable *set*; ε → 0 recovers Wardrop.\n", "- **Where next.** The exact-rationality UE: [`bfw`](05-bfw.ipynb); ADR-008 in the\n", " [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": "static", "unit": "br-ue" } }, "nbformat": 4, "nbformat_minor": 5 }