{ "cells": [ { "cell_type": "markdown", "id": "344a99cb", "metadata": {}, "source": [ "# `multiclass` — Multiclass-user equilibrium (Dafermos 1972)\n", "\n", "**What.** Two or more user classes share one network, each with its own OD demand and a\n", "class-specific link cost `t_a^i = t_BPR(v_a) + Σ_j M_ij v_a^j` coupling the classes\n", "through a per-link interaction M. `multiclass` solves the block-structured equilibrium\n", "by diagonalization (per-class Frank–Wolfe, relax, repeat) and emits **per-class link\n", "flows** (`[dafermos1972traffic]`, [docs/REFERENCES.md](../../docs/REFERENCES.md)).\n", "\n", "**Why it is in the benchmark.** It is the multiclass generalization of the asymmetric VI\n", "(ADR-013): the harness certifies the class-summed VI residual from a first-class\n", "per-class flow object, not a self-report. 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 2-class (cars, trucks) two-route anchor with a symmetric\n", "(integrable) interaction and certifies the class-summed VI residual." ] }, { "cell_type": "markdown", "id": "4c89d8eb", "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": "e953b1e8", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:46:02.674909Z", "iopub.status.busy": "2026-07-21T13:46:02.674766Z", "iopub.status.idle": "2026-07-21T13:46:04.638784Z", "shell.execute_reply": "2026-07-21T13:46:04.635949Z" } }, "outputs": [], "source": [ "# Setup. `multiclass` 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", " Budget,\n", " Evaluator,\n", " MulticlassModel,\n", " RngBundle,\n", " Trace,\n", " multiclass_two_route_scenario,\n", " viz,\n", ")" ] }, { "cell_type": "markdown", "id": "72295175", "metadata": {}, "source": [ "## The scenario\n", "\n", "Two classes — cars (demand 4) and trucks (demand 2) — on two disjoint routes, coupled by\n", "a symmetric per-link interaction M = [[0.5, 0.25], [0.25, 0.5]]. The closed-form\n", "equilibrium is cars (2.5, 1.5), trucks (1.5, 0.5), aggregate (4, 4, 2, 2). Content-hashed (P2)." ] }, { "cell_type": "code", "execution_count": 2, "id": "589fae0b", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:46:04.644382Z", "iopub.status.busy": "2026-07-21T13:46:04.643891Z", "iopub.status.idle": "2026-07-21T13:46:04.650072Z", "shell.execute_reply": "2026-07-21T13:46:04.649360Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : multiclass\n", "content hash : 039cd30a4f67fcd6…\n", "classes : 2 (cars, trucks)\n", "class demands : [4. 2.]\n", "interaction M : [[0.5, 0.25], [0.25, 0.5]] (symmetric -> integrable)\n" ] } ], "source": [ "scenario = multiclass_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\"classes : {scenario.multiclass.n_classes} (cars, trucks)\")\n", "print(f\"class demands : {scenario.multiclass.matrices.sum(axis=(1, 2))}\")\n", "print(f\"interaction M : {scenario.multiclass.interaction.tolist()} (symmetric -> integrable)\")" ] }, { "cell_type": "markdown", "id": "360ed1a4", "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": "69a7df7f", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:46:04.653755Z", "iopub.status.busy": "2026-07-21T13:46:04.653191Z", "iopub.status.idle": "2026-07-21T13:46:04.710581Z", "shell.execute_reply": "2026-07-21T13:46:04.709898Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "model : multiclass\n", "aggregate link flows : [3.999999 3.999999 2.000001 2.000001]\n", "per-class link flows : [[2.5, 2.5, 1.5, 1.5], [1.5, 1.5, 0.5, 0.5]] (cars, trucks)\n", "self-reported resid : 9.004e-11 (provenance only)\n" ] } ], "source": [ "model = MulticlassModel()\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\"aggregate link flows : {np.round(final.link_flows, 6)}\")\n", "print(f\"per-class link flows : {np.round(final.class_link_flows, 6).tolist()} (cars, trucks)\")\n", "print(f\"self-reported resid : {final.self_report['relative_gap']:.3e} (provenance only)\")" ] }, { "cell_type": "markdown", "id": "661b1ac1", "metadata": {}, "source": [ "## Certify (P1)\n", "\n", "The scored quantity is the **class-summed VI residual**, recomputed by the harness from\n", "the model's per-class link flows (`FlowState.class_link_flows`, a first-class object —\n", "NOT a self-report). We pass those class flows to the evaluator and recompute the\n", "closed-form per-class anchor in-cell." ] }, { "cell_type": "code", "execution_count": 4, "id": "9b7ed9b0", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:46:04.714053Z", "iopub.status.busy": "2026-07-21T13:46:04.713892Z", "iopub.status.idle": "2026-07-21T13:46:04.720706Z", "shell.execute_reply": "2026-07-21T13:46:04.720000Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "certified VI residual : 9.004e-11\n", "feasible : 1\n", "cars route-A p : 2.500; trucks route-A q: 1.500 (recomputed)\n" ] } ], "source": [ "evaluator = Evaluator(scenario)\n", "metrics = evaluator.evaluate(final.link_flows, final.class_link_flows)\n", "residual = metrics[\"relative_gap\"]\n", "print(f\"certified VI residual : {residual:.3e}\")\n", "print(f\"feasible : {metrics['feasible']:.0f}\")\n", "\n", "assert metrics[\"feasible\"] == 1.0\n", "assert abs(residual) < 1e-8\n", "\n", "# Honesty diff (P1).\n", "assert np.isclose(final.self_report[\"relative_gap\"], residual, rtol=1e-6, atol=1e-9)\n", "\n", "# Analytic anchor RECOMPUTED: [p, q] = [g_cars/2, g_trucks/2] + (a2/4) M^-1 [1, 1].\n", "M = scenario.multiclass.interaction\n", "g_cars, g_trucks, a2 = 4.0, 2.0, 1.5\n", "pq = (a2 / 4.0) * np.linalg.solve(M, np.ones(2))\n", "p, q = g_cars / 2.0 + pq[0], g_trucks / 2.0 + pq[1]\n", "cars = np.array([p, p, g_cars - p, g_cars - p])\n", "trucks = np.array([q, q, g_trucks - q, g_trucks - q])\n", "print(f\"cars route-A p : {p:.3f}; trucks route-A q: {q:.3f} (recomputed)\")\n", "assert np.allclose(final.class_link_flows[0], cars, atol=1e-4)\n", "assert np.allclose(final.class_link_flows[1], trucks, atol=1e-4)\n", "ref_flows = cars + trucks\n", "assert np.allclose(final.link_flows, ref_flows, atol=1e-4)" ] }, { "cell_type": "markdown", "id": "021964e1", "metadata": {}, "source": [ "## Visualize\n", "\n", "Both figures come from `tabench.viz`. Left/top: the AGGREGATE link flows on the network.\n", "Right/bottom: the emitted aggregate flows against the recomputed analytic aggregate —\n", "on-diagonal at (4, 4, 2, 2); the per-class split is certified separately above." ] }, { "cell_type": "code", "execution_count": 5, "id": "d355314f", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:46:04.724150Z", "iopub.status.busy": "2026-07-21T13:46:04.723902Z", "iopub.status.idle": "2026-07-21T13:46:05.015083Z", "shell.execute_reply": "2026-07-21T13:46:05.014452Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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lZmRnJyCNm3a4Pnnn4fdbq+1rzlzZmPz5s1o2TIBY8feguHDhzmes9vtWLp0KS699FIkJCTijTfexHvvvQuFQoEjR45g1KjRiI9vie7de6B79+648866L67Qr18/LFz4MmbMmIHWrZPQv/8AREVFY9GixTXabdq0udZ5mvVd0KFz585o27YNvvzySwDAJZdcgoceehDDhg1H69ZJWLt2La691rk5RgC4++5pUCiUaN++A3r16oXu3VMu+prbbrsN+/f/iltvHVdj++23345Tp06jVavWteYqASA+Ph4bNqzHmjWr0b59e3TpcpljfhQAPvpohVPndDbWuHHj8Nxzs3D99SMbdLGLtm3b4IMP3sfcuXPRunUS5s2bhw8++ABJSa0dbfr27Yvy8nL06lW5injAgP4oLi5G//4MTV8iWa0W58ZsiMhr7d69GzNmPI6vvtoqy/ufOHECV1xxJQ4dOoiIiAi37PP48eMYPfoG7NixvVHzjUTuxNAkokax2Wx45JFHYTIV1zgflMgf1T3xQkTkhL///hu9evVGq1atsHr1KrnLIWpy7GkSERE5iQuBiIiInMTQJCIichJDk4iIyEkMTSIiIicxNImIiJzE0CQiInISQ5OIiMhJDE0iIiIn/T/UXzim46hyTAAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(viz.plot_network_flows(net, final.link_flows))\n", "display(viz.plot_flow_scatter((\"multiclass UE (analytic)\", ref_flows), {\"multiclass\": final.link_flows}))" ] }, { "cell_type": "markdown", "id": "c5ed8a05", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **Per-class flows are first-class.** The harness certifies the class-summed VI residual\n", " from `class_link_flows`, not a self-report.\n", "- **Coupled classes.** Cars and trucks route distinctly under the interaction M; the\n", " closed form recomputed here.\n", "- **Where next.** The single-class VI special case: [`vi-asym`](17-vi-asym.ipynb); ADR-013\n", " 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": "static", "unit": "multiclass" } }, "nbformat": 4, "nbformat_minor": 5 }