{ "cells": [ { "cell_type": "markdown", "id": "82fcc9b1", "metadata": {}, "source": [ "# `vzw-entropy` — Van Zuylen & Willumsen's (1980) entropy-balancing OD estimation\n", "\n", "**What.** `vzw-entropy` (T2, ADR-002) is the information-minimizing sibling\n", "of `gls`: instead of a quadratic prior/count trade-off, it multiplicatively\n", "balances each OD cell in log-space against every sensor's count via a damped\n", "fixed-point iteration — an EXPONENT form, `g <- (c/p)^p` per sensor, not a\n", "linear blend. It is the classical maximum-entropy / minimum-information\n", "estimator (`biproportional fitting` lineage), a genuinely different\n", "mathematical family from `gls`'s quadratic program.\n", "\n", "**Why it is in the benchmark.** Entropy balancing predates `gls` in the OD\n", "estimation literature and is still the default in several commercial\n", "packages; its damped multiplicative update converges geometrically to a\n", "DIFFERENT fixed point than a linear GLS blend whenever sensors disagree,\n", "which this notebook makes an executable, hand-verified fact. See the\n", "[model compendium](../../docs/MODELS.md) (Van Zuylen & Willumsen 1980) and\n", "[docs/design/adr-002-t2-estimation-certificate.md](../../docs/design/adr-002-t2-estimation-certificate.md)\n", "(P1).\n", "\n", "**Scope.** The exact single-sensor exponent fixed point (one pass vs\n", "converged), the damped multi-sensor compromise under mutually inconsistent\n", "counts, and the Braess global-basin `D=6` recovery.\n", "\n", "**Canon.** `[vanzuylen1980most]`, [docs/REFERENCES.md](../../docs/REFERENCES.md) / [docs/references.bib](../../docs/references.bib)." ] }, { "cell_type": "markdown", "id": "0467fcbf", "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 — the closed-form fixed points are\n", "recomputed algebraically in-cell (no trusted digits), and the Braess recovery\n", "is recomputed by the P1 `ODCertifier` from the emitted OD matrix against the\n", "harness's own pinned BFW assignment, never from `vzw-entropy`'s self-report\n", "([README](../../README.md), *Certified, not self-reported*)." ] }, { "cell_type": "code", "execution_count": 1, "id": "8150505d", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:17.248244Z", "iopub.status.busy": "2026-07-21T13:47:17.247851Z", "iopub.status.idle": "2026-07-21T13:47:19.232559Z", "shell.execute_reply": "2026-07-21T13:47:19.231992Z" } }, "outputs": [], "source": [ "# Setup. `vzw-entropy` is a core estimator: a plain `pip install -e .`\n", "# suffices — no optional extra, so no guard cell. The inline backend is\n", "# Agg-based (headless CI renders into the notebook); NEVER\n", "# matplotlib.use(\"Agg\") in-kernel — it silently suppresses inline capture.\n", "%matplotlib inline\n", "import numpy as np\n", "\n", "from tabench import (\n", " Budget,\n", " Demand,\n", " ODCertifier,\n", " RngBundle,\n", " Trace,\n", " VZWEntropyEstimator,\n", " braess_scenario,\n", " two_route_scenario,\n", " viz,\n", ")\n", "from tabench.core.rng import SOURCE_OBSERVATION\n", "from tabench.estimation import ODTrace, vzw_balance\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)" ] }, { "cell_type": "markdown", "id": "b5b7f4b7", "metadata": {}, "source": [ "## The exponent fixed point: one pass vs geometric convergence\n", "\n", "Single pair, single sensor on route A (`p_a = 2.5/4 = 0.625`, count `c=2.5`).\n", "One damped pass gives `T = (c/p)^p`, NOT the linear-blend result `c/p` a\n", "`gls`-style update would give in one step; the geometric limit over many\n", "passes IS the exact fixed point `c/p = 4.0`." ] }, { "cell_type": "code", "execution_count": 2, "id": "cddde127", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:19.236670Z", "iopub.status.busy": "2026-07-21T13:47:19.236463Z", "iopub.status.idle": "2026-07-21T13:47:19.241795Z", "shell.execute_reply": "2026-07-21T13:47:19.241404Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "one-pass estimate : 2.378414 (c/p)^p = 2.378414\n", "60-pass estimate : 4.000000 (fixed point c/p = 4.000000)\n" ] } ], "source": [ "p_a = TWOROUTE_TRUTH[0] / 4.0 # route-A proportion, recomputed\n", "count = TWOROUTE_TRUTH[0]\n", "\n", "best_g1, traj1, consistent1 = vzw_balance(\n", " np.array([1.0]), np.array([[p_a]]), np.array([count]), n_passes=1\n", ")\n", "print(f\"one-pass estimate : {best_g1[0]:.6f} (c/p)^p = {(count / p_a) ** p_a:.6f}\")\n", "assert np.isclose(best_g1[0], (count / p_a) ** p_a, atol=1e-12)\n", "assert consistent1 is False # one pass has not yet reached the fixed point\n", "assert len(traj1) == 2 # prior + one update\n", "\n", "best_g60, _, consistent60 = vzw_balance(\n", " np.array([1.0]), np.array([[p_a]]), np.array([count]), n_passes=60\n", ")\n", "print(f\"60-pass estimate : {best_g60[0]:.6f} (fixed point c/p = {count / p_a:.6f})\")\n", "assert np.isclose(best_g60[0], count / p_a, atol=1e-9)\n", "assert np.isclose(best_g60[0], 4.0, atol=1e-9)\n", "assert consistent60 is True" ] }, { "cell_type": "markdown", "id": "d4e6c2d4", "metadata": {}, "source": [ "## Mutually inconsistent sensors: a damped compromise, not oscillation\n", "\n", "Two sensors on the SAME pair, at odds (`c_a=3.0` on route A's proportion,\n", "`c_b=1.0` on route B's) — no single demand satisfies both exactly. The\n", "damped log-space update converges to a compromise fixed point, recomputed\n", "here exactly via the sequential single-link recursion." ] }, { "cell_type": "code", "execution_count": 3, "id": "22f58f30", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:19.246348Z", "iopub.status.busy": "2026-07-21T13:47:19.246086Z", "iopub.status.idle": "2026-07-21T13:47:19.254403Z", "shell.execute_reply": "2026-07-21T13:47:19.254002Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "compromise estimate : 3.599232\n", "closed-form exp(x*) : 3.599232\n" ] } ], "source": [ "p_b = TWOROUTE_TRUTH[2] / 4.0 # route-B proportion, recomputed\n", "c_a, c_b = 3.0, 1.0\n", "best_g, _, consistent = vzw_balance(\n", " np.array([1.0]), np.array([[p_a], [p_b]]), np.array([c_a, c_b]), n_passes=400\n", ")\n", "# Sequential log-space fixed point of the two damped single-link updates\n", "# x <- (1-p)*x + p*log(c/p), applied for sensor a then b:\n", "t_a, t_b = np.log(c_a / p_a), np.log(c_b / p_b)\n", "x_star = ((1 - p_b) * p_a * t_a + p_b * t_b) / (1 - (1 - p_a) * (1 - p_b))\n", "print(f\"compromise estimate : {best_g[0]:.6f}\")\n", "print(f\"closed-form exp(x*) : {np.exp(x_star):.6f}\")\n", "assert np.isclose(best_g[0], np.exp(x_star), atol=1e-6)\n", "assert consistent is False # mutually inconsistent -> residual above tolerance" ] }, { "cell_type": "markdown", "id": "7c8984e4", "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 global basin (see\n", "[`spiess`](02-spiess.ipynb) for the D=4 SPURIOUS-basin caveat this network\n", "also has) — full noiseless sensors let `vzw-entropy` recover the true `D=6`." ] }, { "cell_type": "code", "execution_count": 4, "id": "bf2c7f0b", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:19.258676Z", "iopub.status.busy": "2026-07-21T13:47:19.258308Z", "iopub.status.idle": "2026-07-21T13:47:21.354279Z", "shell.execute_reply": "2026-07-21T13:47:21.353540Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "scenario : braess\n", "content hash : cf00f411cdccec88…\n", "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", "prior_matrix = np.zeros((2, 2))\n", "prior_matrix[0, 1] = 5.5\n", "ds = LinkCounts(np.arange(5), 1, \"none\").observe(\n", " sc, BRAESS_TRUTH, RngBundle(0).generator(SOURCE_OBSERVATION)\n", ")\n", "task = EstimationTask(\n", " name=\"t\", network=sc.network, prior=Demand(prior_matrix), dataset=ds,\n", " identifiability={}, scenario_hash=sc.content_hash(), seed=0,\n", ")\n", "trace = ODTrace()\n", "VZWEntropyEstimator(k_inner=120, outer_iters=80).estimate(\n", " task, Budget(sp_calls=10**9, iterations=200), RngBundle(0), trace\n", ")\n", "recovered = trace.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.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": "1c4700b3", "metadata": {}, "source": [ "## Visualize\n", "\n", "`tabench.viz` draws the road `Network`'s link flows for the recovered\n", "Braess demand against the truth (the same certified OD matrix from the cell\n", "above, re-assigned)." ] }, { "cell_type": "code", "execution_count": 5, "id": "345026d4", "metadata": { "execution": { "iopub.execute_input": "2026-07-21T13:47:21.357916Z", "iopub.status.busy": "2026-07-21T13:47:21.357521Z", "iopub.status.idle": "2026-07-21T13:47:21.657805Z", "shell.execute_reply": "2026-07-21T13:47:21.657335Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAesAAAGsCAYAAAD9ro91AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABHi0lEQVR4nO3deXgT1cIG8HeSJs0CbSmUFijQBQsIskMttCAgmyxCgbIUXK4CRT8U9CKoLFXZVDZFFtkUuajsIIuKAgoFhUJVEKRAWbSsRaCFpkuS5vujNljokiaTZJK8P555Hjpz5syZQPrmnDmZEQwGvQlEREQkWTJnN4CIiIjKxrAmIiKSOIY1ERGRxDGsiYiIJI5hTUREJHEMayIiIoljWBMREUkcw5qIiEjiGNZEREQSx7AmUfTs2RMTJ050djPs4v5ze+SRR7Bo0SKL99+/fz98ff1w+/Zti/cxmUx46aWXUbduCHx9/XDs2DG3fo2JqGxezm4AkavZu3cvNBqNXY/x/fff4/PPP8eOHdsREhKCqlWr2vV4RCRtDGtymvz8fCiVSmc3o8KqVatm92OcP38eQUGBiIyMtPuxiEj6OAxOojEYjPjvf8ejdu06CA0Nw7Rp02Ay3XtOzCOPPIL33nsPo0aNQnBwbbz88ssAgClTpqJFi5YICqqBJk2aYtq0adDr9cXq3rFjB2Ji2qN69UA0adIUs2bNgsFgAFA4ZDxz5kw0atQYAQHVUb9+A7z22mvmfZctW47mzVugevVA1Kv3EIYPf8qm87x/GNzX1w+rVn2G+Ph4BAXVQPPmLbBz585S99fpdOjffwC6du1W4tD46NGjMX78a/jrr3T4+vrhkUceKbGeW7duY9SoUahTpy6Cgmqgf/8BSEtLA1D4moSFhWPLlq3m8tHR0YiIqG/++aeffkJAQHXodLpyX0Mici6GNYnmiy++gJeXHHv27Ma7787CwoWLsGrVZ8XKLFjwERo3box9+/Zh/PjCMKhcuRIWL16EQ4d+xrvvzsKqVZ9h4cJ7YXjw4EEkJIzG6NEJOHToEObPn481az7H7NmzAQBbt36FRYsWY/78eUhJOYrPP1+Dhx9uBABISfkFEyZMwJtvvoEjR5KxceMGtGvX1lz3mjVr4OvrZ/O5v/vuu+jXrx8OHDiArl27YMSIkbh589YD5W7fvo2+ffuhoKAAW7Zshp/fg8eeNWsW3nzzDdSqVQunT6di7969JR7zhRdG45dffsWXX36B777bBZPJhAEDBkKv10MQBLRt2xZJSUkACoM9NfU0cnNzcPr0aQBAUtIBtGjRAhqNpszXkIicj8PgJJpatWph5syZEAQBDz30EE6cOIlFixbhmWeeNpdp3z4GY8aMKbbf+PHjzX+vW7cuxow5i40bN2Ls2MKe96xZ72Ls2LEYOnQoACA0NASTJr2JKVOmYuLEiUhP/wvVq1fHY489BoVCgdq1a6Nly5YAgPT0v6DVatGtWzdUrlwZderUQdOmTc3H8/HxwUMPPWTzuQ8dOgQDBgwAAEyZMgVLlnyMlJSjePzxx81lrl+/jmeffRZhYeFYsWJ5qZcAfH19UalSJcjlMgQGBpZYJi0tDTt3fo1du741D5UvX74MDz/cCNu370C/fn0RExONTz75FABw8OABNGnSBIGB1bF/fxIiIiKQlJSEdu3amV+n0l5DInI+9qxJNK1bt4IgCOaf27RpjbS0NBiNRvO6Zs2aP7Dfxo2b0LVrNzz0UARq1qyFadOmIT093bz9999/x3vvvYeaNWuZl5deehlXr16FTqdD3759kZubi6ZNm2HMmJewbds28xB5x44dUbt2MJo2bYaRI0di3bp10Ol05rp79+6NI0eSbT73Ro0am/+u1Wrh4+ODjIyMYmX69u2H0NAwfPrpJzZfq09NTYWXlxdatWplXufv74969erh9OlUAEC7du1w6tQp3LhxAwcOHEB0dDSio6ORlJQEvV6Pw4cPIzo6+p+2lf4aEpHzMazJobTa4rOoDx8+jBEjRqBLly5Yu3Yt9u/fh//+91Xo9fnmMtnZ2Xj99dexf/9+83Lw4EGkpKRApVIhODgYR44kY86c2VCrVXj11f+iR48noNfrUblyZezbtw8rVqxAYGAQpk+fgXbtoiv0NSpLKBTFB6kEASgoKCi2rmvXrjh48CBOnTol6rFL06hRI1SpUgVJSQeQlHQAMTGFYX3gwAGkpKRAr9cjMrINAJT5GhKR83EYnERz5MjRYj8nJx9BeHg45HJ5qfscOnQItWvXxvjx/zWv+/PPv4qVadq0Kc6cOYPw8LBS61Gr1ejRowd69OiBESNGoFWr1jhx4gSaNWsGLy8vdOz4GDp2fAwTJ05AnTp1sW/fPvTp08eKs7ReYuJUaLVa9OnzJHbs2I4GDRpYXVf9+vVhMBhw5MgR8zD4zZs3cfbsWdSvX1hv4XXrKOzcuQOnTp3Co48+Co1Gg7y8PHzyySdo3rw5tFqtuc6yXkMici6GNYkmPT0db7zxBp599ln89ttvWLp0KaZNm1bmPuHh4UhPT8eGDRvRokUL7Nr1LbZv316szGuvvYZBgwahdu1gPPnkk5DJZDh+/Hf88ccfmDx5EtasWQOj0YhWrVpBrdZg7dq1UKvVqFOnDr755htcuHABbdu2hZ+fH3bt+g4FBQXm69Tbtm3DW2+9LcpQuCWmT5+GggIjevfugx07tiMiIsKqesLDw9Gz5xN46aWXMX/+PFSqVAmJiW+hRo0a6NnzCXO56OhovPnmJDRv3hyVKlUCALRr1xbr1q3HSy+9ZC5X1mtIRM7HYXASzeDBg5GTk4tOnTrj1Vf/i4SEBDz77DNl7vPEE0/ghRdewPjx4xETE4NDhw7jtdfGFyvz+OOdsXbtWuzZsxcdO3bC4493waJFi1C7dm0AhROyVq36DN26dUe7du3www8/4ssvv4S/vz98fX2xbds29O7dB23aROKTT1ZixYoVaNiwIQAgKysLZ86cscvrUZqZM2eiX7++6N27D86ePWt1PQsXLkKzZk0xaNAgdOnSFSaTCRs2rIdCoTCXadeuHYxGo/naNFAY4PevK+s1JCLnEwwGvan8YkREROQs7FkTERFJHMOaiIhI4hjWREREEsewJiIikjiGNRERkcQxrImIiCSOYU1ERCRxDGsiIiKJY1gTERFJHMOaiIhI4hjWREREEsewJiIikjiGNRERkcQxrImIiCSOYU1ERCRxDGsiIiKJY1gTERFJHMOaiIhI4hjWREREEsewJiIikjiGNRERkcQxrImIiCSOYU1ERCRxXs5uABERkZjy8/Lw6quv4M6dLHy6anWJZXQ6HZYt/RgpKUehVCrRrXsPDBgw0OLtjsawJiIit7J27ZcICAjAnTtZpZZZuXIF7t69i0WLP0ZmZibeefstBAQEoEOHxyza7mgMayILZGVl4dy5NFy/fh0GvR5eCgWqV6+OsLBw+Pj4OLt5RJKTn58Pg8Fgcz0mkwmCIBRbp1AooFAoSix/Li0Nv/76K556+mnMmzunxDJ5eXk4eCAJ70ybDq1WC61Wix49emDP7t3o0OGxcrc7A8OaqBSZmZnYvft7/LB3D65evVpquaCgIHTs1BmdOnWGr6+vA1tIJE35+fkYOGQ4vGW2h7VKpUJubm6xdQMGxiEubtADZY1GIz7+eDGee/55mEymUuu8fPkSDAYDQkJCzetCQkKxefMmi7Y7A8Oa6D75+flYt24tdmzfDqPRgPr1G6Bjx84ICw9HrVrBUCoUyNfrcelSOs6lpSEl5Si++HwN1q1di569eiEubhCUSqWzT4PIaQwGA7xlBvxwMwIGk/XzmL2EAjzmfxqLlyyFWq02ry+tV/3VV1sREhKKhx9uhBMnfi+13tzcXHh7qyCXy83rNFotcnJyLNruDAxron85d+4cFnw4H5cuXUJ0THv06xuLkNDQEssGBgaiRYuWGDAwDhfOn8fmLZvw1dYtOHokGWNeGouwsDAHt55IWgwmGYwmefkFy6FWq6HRaMosc/XKFXy361u8997scutTqVTIz8+D0Wg0B7JOl23+QFDedmfgV7eI/nHyxAkkTp2M7GwdJr7+JsaNe7XUoL5fSGgoxo17FRMnvoHsbB0Sp07GyRMn7NxiIokTRFgsdOrUH8jMzMTLL4/Bc/95Bu+9+y5ycnLw3H+ewZkzp4uVrVmzFuRyOS5euGBed+HCBdSpU8ei7c7AsCZCYY965swZqFLFH7PefR+tW7exqp7WbSIx6933C+uZNQPnzp0TuaVErkMQ4Y+lotq2w4cLFuK99+fgvffnIGH0aKhUarz3/hyEhhT/0O3t7Y22bdth7dovoMvOxpUrl/HN1zvRqfPjFm13BoY1ebz8/Hws+HA+1Go1pia+jYCAAJvqCwgIwNTEt6FSqbHgw/nIz88XqaVErkYABBuWCoS1t7c3qlatal58fHwgCEDVqlXhpVBgxvRp2LRpo7n8f557HmqNBgkJIzF50pvo1KlzsZne5W13NMFg0Jc+ZY7IA/zvf6vx1dYtmPj6m1b3qEuSfPgQZs2agT5P9sWwYcNFq5dI6nQ6HZ55ejh233wYRlh/zVoOIzr7n8Snq1aXe83a3bFnTR4tMzMTO7ZvR3RMe1GDGigcEm8XHYOdO7YjMzNT1LqJXIMDL1q7OYY1ebTdu7+H0WhAv76xdqm/X79YGAwG7Nmz2y71E0kas1o0DGvyaD/s3YP69RtYNOu7T58+iIyMRFRUFLp06YLffvut3H1CQ8MQUb8+9jKsyQM5coKZu2NYk8fKysrC1atX0aJFS4vKf/bZZzh06BB++uknjBkzBqNGjbJovxbNW+Lq1au4c+eOLc0lIg/GsCaPde5cGgAgLDzcovJ+fn7mv2dlZT1wv+LSFNVfdDwij2HLTHDzjHACeAcz8mDXr18HANSqFWzxPiNGjMC+ffsAABs3biynNIrVf+3atQq2kMjV2XrhmWFdhD1r8lgGvR4AoCzlPsMlWbZsGVJTUzFlyhRMmTLFon2USkWx4xERVRTDmjyW1z8hnW9FiMbHx2Pfvn34+++/yy2bn68vdjwij8HZ4KJhWJPHql69OgDg0qX0csvevn0bV65cMf+8bds2+Pv7w9/fv9x9i+oPDAy0sqVEromzwcXDa9bkscLC/pn4lZZW7ozwrKwsDB8+HDk5OZDJZKhWrRo2bNhg0SSzc2lpxY5H5DEqeMvQEioQqyUuj2FNHsvHxwdBQUFISTmKAQPjyixbp04d/Pjjj1YdJ+WXowgKCkLlypWt2p+IiMPg5NEe69gJqamncOH8ebvUf/78OZxOTUXHTp3tUj+RtPGitVgY1uTROnd+HHK5FzZv2WSX+jdv3gQvLy90YlgTkQ0Y1uTRfH190bNXLyTt34fk5MOi1p18+BAOJO3HEz17wdfXV9S6iVyBIAg2L1SIYU0eLy5uEGrVqoUlixchIyNDlDozMjKwZMki1KoVjLi4QaLUSUSei2FNHk+pVGLMS2ORm5uDtxKn2BzYGRkZSJw6Gbm5uRjz0stQKpUitZTI1fCatVgY1kQAwsLCMHHiG7h16yYmThhv9ZB48uFDmDjhv7h9+xYmTnwDYWFhIreUyIUIsPHe4M4+AelgWBP94+FGjZD41jvQajWYNXM65s6dbfEs8fPnz2Hu3NmYNWsGtFotEt96Bw83amTnFhORp+D3rIn+JSwsDO++Nxvr1q3Fzh3bcSBpPyLq10eL5i0RFh6OWrWCoVQqkJ+vx6VL6TiXloaUX47idGoqvLy80OfJvoiLG8ShbyISFcOa6D5KpRLDhg1H7959sGfPbuzdsxtffvl5qeVr1KiBoUPj0bFTZ876JvoXQbDtlqG83eg9DGuiUvj6+qJfv1j06xeLrKwsnD9/DteuXYNBr4eXQoHAwECEhYXzzmREpeLtRsXCsCaygI+PD5o2bebsZhCRh2JYExGRfbBjLBqGNRER2QmHwcXCsCYiIrvgBDPx8HvWREREEseeNRER2QmHwcXCsCYiIvtg1oqGYU1ERHbCnrVYeM2aiIhI4tizJiIiuxDA2eBiYVgTSYzJZMKZawZUUgmo4SuHIPAXFrkogcPgYuEwOJHECIIApRfw990CXL5thMlkcnaTiMjJGNZEElSnqhcqeQu4mc3AJiIOg5MLuJmlw+z//Yi9R87i9t1ctGxQC5P+8zgahFR3dtPsRiYIqFvNCxdvGHAzuwAAUNOPQ+LkYpwwDL5yxXIkJx+GTqeDSqVGVFQUhg0bDi+Foli5GxkZGDdubLF1en0+mjdvgQkTXwcAJE6dgtOnUyGX34vKDz5cAH9//4qfio0Y1iRJN7N02JH0Bzbt/R17j57FvzuWlzOysCPpFNbPGo7H2zzkvEbaGQObXJ0zJph17dYdQ+OHQaVSISsrC/PmzsbWr7aif/8BxcpVCwjA6v+tMf9s0OsxatQItGsXXaxc/LDh6Nmzl3UnICKGNUlGUUBv+fEEfjiaBoOxoNSyBSYTBr+5Bte/nQKZzH2v5jCwiYCcnJxiPysUCiju6ykXCQ4OvveDyQRBkOHKlSvlHuNw8mEUFJjQJjLSprbaC8OanKoiAX0/vcGINd/8guFPtLRjC52PgU0uS6Rh8NEJI4utHTAwDnFxg0rda8vmTdi4cSPy8nJRuXJlxA8bVu6R9u7ZjZiYGCiVymLrN23cgA3r1yMgIAA9e/VChw6PVfw0RMCwJqf48+ptJC7bha0/nqhQQN/vbPrfIrZKuhjY5MkWL1kKtVpt/rm0XnWRvv1i0bdfLNLT05G0fx/8/KqUWT4j4zqOHTuO+GFPFVs/dGg8goODofT2xu+/H8e8uXOhVqmd0vt23/FDkqwLV24h+vmF2LjnuE1BDcCtJ5ndryiwOUucXIYg2L4AUKvV0Gg05qW8sC4SHByMuiEhWLRwQZnl9u7di9DQUISEhBRbH1G/PjRaLby8vNCsWXN06dIFBw8esOqlsBXDmhzulXlfITM71+Z6vOQyDOjUWIQWuQ4GNlHFGA3GMq9ZFxQU4Ie9e9Cpc+dy63LmSBbDmhwqN1+P/b+eF6Wu3jEPQ+HleVdyGNjkKgQR/lREbk4O9u7dg+zsbJhMJvx58SI2btyApk2blbrPsWO/4c6dO4i+bxZ4dnY2UlKOIi8vDwVGI44fP4bvvtuFyEcftealsJnn/aYjp9IbCpCvN4pS11M93XtiWVl4DZtcgqO/Zy0ISNq/H6s/WwW93gBfXx9ERj6KuEGDAQAzpk9Dg4YNERvb37zLnj27EfloFDRabbGqjAYDNqxfjw/mzwMABAQE4Kmnn0FUVFsbzsd6gsGg50dycqgWw+cjzcaJYf4+GpzZ9Bq85HKRWuWaCkwmXLxhwN08E/y1MgY2SYJOp8MzTw/HAWNHGG3oE8phQDv5Xny6ajU0Go2ILXQ9HAYnh3t7VFeb6+gV09DjgxrgkDiRp2BYk8P1in4YYwdHl1+wDH07eNbEsrIwsEmyRJoNTgxrcoK8fANOnr9m9f7+Phq0bx4qYotcHwObpEkQYSGAYU0OlpdvwPCpX2DXoTNW19ErpiEUXhwCvx8Dm8h9MazJYYqC+tufT9tUD4fAS8fAJinhKLh4GNbkEGIFNYfAy8fAJungMLhYGNZkd2IFNcAhcEsxsEk6GNRiYFiTXVU0qDWq0u/56yWX4f8GOueGBK6IgU3kPhjWZDcVDerqVSph7+JRePPZTpDJin+qlskEvJPQDfXres6DO8TAwCan4kVr0fB2o2QX1gT19nnPon7d6mgQEojOrR/C6q9TcDb9BiJqB2BQl6aIbFzHzq12T7w1KTmLg2826tYY1iQ6W4K6SMuGwWjZMNheTfQ4DGwi18ZhcBKVGEFN9sEhcXI8W4fA+WGyCMOaROMJQe3q4cbAJsfiV7fEwrAmUXhKUJ+5ZkDGHXEe8eksDGxyGE4wEw3DmmzmCUENACYAeQYTct3gqbIMbCLXwrAmm3hKULsjBjbZGwfBxcOwJqsxqF0fA5vsisPgomFYk1UY1O6DgU32w761WBjWVGEMavfDwCaSNoY1VQiD2n0xsEl0HAYXDcOaLMagdn8MbBITB8HFw7AmizCoPQcDm0TDnrVoGNZULga152FgE0kLw5rKxKD2XAxssh0HwsXCsKZSMaiJgU22YViLhWHtgnQ6HRo3bow335xkt2MwqKmIswM7PT0dPXv2RJs2kWjbti02b97isGMTSQWfZ+2CZs+eg1atWtutfgY13c+Zz8P28vLCzJkz0aRJE1y7dg0dOjyGrl27QKvV2v3YZBtb54ixX30Pe9YuJi0tDadPn0aXLo/bpX4GNZXGWT3soKAgNGnSBAAQGBiIqlX9cevWLbsfl8TAYXCxMKxdzKRJk5CYONUudTOoqTzOHhL/5ZdfYTQWIDg42GHHJBvwq1uiYVi7kB07diA8vB7q1asnet0MarKUswL75s1bSEhIwAcfzLf7sYikhtesXUhy8hFs2rQJW7duwd272TAYDPDxqYwJEybYVC+DmirK0dew8/LyEB8/FOPGjUVkZKRdjkEkZQxrF5KYONU8BL5mzRqcPPkHg5qcxlGBbTKZMHr0C2jfvj0GDx4sat1kX4Ig2PT/QeA1azMOg3swBjXZyhFD4j///DM2bdqEHTt2IDo6GtHR0Thx4oSoxyB74QQzsbBn7aLi4+Nt2p9BTWKxdw87KioKt29z9jdZZuWK5UhOPgydTgeVSo2oqCgMGzYcXgrFA2UTp07B6dOpkMvvReEHHy6Av78/gMJ7Wixb+jFSUo5CqVSiW/ceGDBgoMPO5d8Y1h6IQU1ic+b3sEnCbJ7RXfF9u3brjqHxw6BSqZCVlYV5c2dj61db0b//gBLLxw8bjp49e5W4beXKFbh79y4WLf4YmZmZeOfttxAQEIAOHR6rcLtsxWFwD8OgJntx9te6iAAgODgYKpWq8AeTCYIgw5UrVypcT15eHg4eSMLgIUOg1WpRs2ZN9OjRA3t27xa5xZZhz9qDMKjJ3tjDJnvIyckp9rNCoYCihGHtIls2b8LGjRuRl5eLypUrI37YsFLLbtq4ARvWr0dAQAB69upl7jVfvnwJBoMBISGh5rIhIaHYvHmTbSdjJYa1h2BQk6MwsKmIWLPBRyeMLLZ+wMA4xMUNKnW/vv1i0bdfLNLT05G0fx/8/KqUWG7o0HgEBwdD6e2N338/jnlz50KtUqNNZCRyc3Ph7a2CXC43l9dotQ98cHAUhrUHYFCTozGwqZCtM7oL9128ZCnUarV5bVm96n8LDg5G3ZAQLFq4AJOnJD6wPaJ+ffPfmzVrji5duuDgwQNoExkJlUqF/Pw8GI1Gc2DrdNnF2uFIvGbt5hjU5Cy8hk1i3W5UrVZDo9GYF0vDGgCMBqPF16z//WGyZs1akMvluHjhgnndhQsXUKdOHYuPLSaGtRtjUJOzMbDJkXJzcrB37x5kZ2fDZDLhz4sXsXHjBjRt2uyBstnZ2UhJOYq8vDwUGI04fvwYvvtuFyIffRQA4O3tjbZt22Ht2i+gy87GlSuX8c3XO9Gps30eolQeDoO7KQY1SQWHxMlhBAFJ+/dj9WeroNcb4Ovrg8jIRxE3qPDOdzOmT0ODhg0RG9sfRoMBG9avxwfz5wEAAgIC8NTTzyAqqq25uv889zyWLl2ChISRUCqV6N69h1O+tgUAgsGg58dcN8Ogto8CkwknLunhp5Ghtj8/51ZUgcmEizcMuJtngr9WxsB2YzqdDs88PRxHNHEoEJRW1yMz5aOVbh0+XbUaGo1GxBa6Hg6DuxkGNUkVh8Q9EB+RKRqGtRthUJPUMbCJrMOwdhMManIVDGxPwgd5iIVh7QYY1ORqGNgeglktGoa1i2NQk6tiYBNZjmHtwhjU5OoY2O5NEOEPFWJYuygGNbkLBrYb42xw0TCsXRCDmtwNA9td8aK1WBjWLoZBTe6KgU1UOoa1C2FQk7tjYLsZdqxFw7B2EQxq8hQMbHfCtBYLb3DsAhjU5Gn48A/3IAiCTf9mnA1+D3vWEsegJk/FHjbRPQxrCWNQk6djYLs6DoOLhWEtUQxqokIMbBfGrBYNw1qCGNRExTGwXRXTWiwMa4lhUBOVjIFNnoxhLSEMaqKyMbBdC+8NLh6GtUQwqIksw8B2IRwFFw3DWgIY1EQVw8AmT8OwdjIGNZF1GNiugF1rsTCsnYhBTWQbBrbUCbDt8ZgM6yIMaydhUBOJg4EtXZxgJh6GtRMwqInExcAmd8ewdjAGNZF9MLAliJesRcOwdiAGNZF9MbClhmktFoa1gzCoiRyDgS0htkwuM08yI4Bh7RAMaiLHYmCTu2FY2xmDmsg5GNjOx9ng4mFY2xGDmsi5GNhOxkvWomFY2wmDmkgaGNjkDhjWdsCgJpIWBrazsGstFoa1yBjURNLEwHYCATbOBnf2CUgHw1pEDGoiaWNgOxYnmInHy9kNcBcMaiLXUBTYF28YcDO7AABQ008Ogd/pdQsrVyxHcvJh6HQ6qFRqREVFYdiw4fBSKIqVy8zMxKpPP8HJkyeQk5ODwMAgxMUNQqvWrc1lXnwhAbdvZ0ImK+zXyuUyfLpqtUPPpwjDWgQMaiLXwsB2X127dcfQ+GFQqVTIysrCvLmzsfWrrejff0Cxcrm5OQgJDUX8sOGoUqUKUlKO4oP58zBz5rsIrl3bXO7lsWPRpk2ko0/jAQxrGzGoiVwTA9sBbL0L2T/75uTkFFutUCiguK+nXCQ4OPjeDyYTBEGGK1euPFAuMDAIffo8af65VavWqFmzJk6fOV0srKWCYW0DBjWRa2Ng25utM7oL9x2dMLLY2gED4xAXN6jUvbZs3oSNGzciLy8XlStXRvywYeUeKTMzE+npl1C3bt1i65ct/RgfL1mMoKAa6D9gAFq0aGnFediOYW0lBjWRe2BgS9/iJUuhVqvNP5fWqy7St18s+vaLRXp6OpL274OfX5Uyyxv0esyfNxdRbdsiPLyeef3/jXkJYWHhkMlkOPTzz5gzezbeevsd1KtXr4za7IOzwa3AoCZyL5wlbh+CINi8AIBarYZGozEv5YV1keDgYNQNCcGihQtKLWPQ6zFnzmx4e3sjYVRCsW0NGz4Mb29vKBQKRMfEoGWrljj080/WvyA2YFhXEIOayD0xsN2T0WAs8Zo1UBjUc+fOgcFgwKv/Hf/AjPH7yQTnRSbDugIY1ETujYEtMgc/IjM3Jwd79+5BdnY2TCYT/rx4ERs3bkDTps0eKGswGDB33hzk5eVi/GsTHuit38jIwMmTJ6DX62EwGHDw4AEkJyejtZNmhvOatYUY1ESegdewXZggIGn/fqz+bBX0egN8fX0QGfko4gYNBgDMmD4NDRo2RGxsf5xOTcWR5GQoFEo8959nzVX0i41FbGx/5Obm4pOVK3H16lXI5TLUqFET4155BREREc45NYNBz4+N5WBQEwAUmEw4cUkPP40Mtf35OdfdFZhMuHjDgLt5JvhrZQzsCtDpdHjm6eE4HjQGBTJvq+uRFeThkasL8Omq1dBoNCK20PVwGLwcDGoiz8Qhcds5eBTcrTGsy8CgJvJsDGySCoZ1KRjURASUHdh38wpw7roeubyaWAo+IlMsvPBWAgY1Ef1bSZPOfNUCLvxthMkE/H3XiFpV+Ov0ASLdbpTYs34Ag5qISnJ/D/v8jcKgBoCsnAIOj5eIPWuxMKz/hUFNRGWRCQKqVX7w16ahANDlM6zJfjhu8w8GNRGV525eAS7+bSxx221dAbTe7P/8G0fBxcP/WWBQE5FlLt8yoLTR7kwOhZeAw+BiYVgDeHnOVgY1EZWrVhUv+KiEEiPEWABk5xU4vE2Sxi9ai8bjh8H3HDmLL3b9alFZBjWRZ9N6y6D1lsFYYMKd3AJk6gpwJ9eEov70tawCVFLJndpGck8eH9bfHEy1qByDmoiKyGUC/DRy+GnkMBaYkJVTgOtZRmiV7AkWZ+tQNl/PIh4f1tdv3S23DIOaiEojlwmoopWjipY96vsxqsXj8desox6pW+Z2BjURETmbx4d1/06PoEa1yiVuY1ATEdnAQyeYbdu2Dbdv3xa1To8P62p+WuyY9xwi6lQrtr5DizDs+mgEg5qIyGqe+dWt2bPn4KGHItC+fQdMmjQZu3btwt275V9yLYvHX7MGgPDgqjj86UtISb2EKzeyUDvQD03q1eCza4mIbOGhd0X58ccfcOvWbRw4kIR9+/Zh6tREnD17Fs2bN8euXd9aVSfD+h+CIKBlg2BnN4OIiNxAlSp+iIiIwJUrV3H16jVcvnwZBQXWfw+fYU1ERCSi5557HgcOHEDVqv7o0KEDhgwZjI8+WgAfHx+r62RYExGRXQiCYNPlRFe9FLl37174+Pjg8ce7ICYmBm3bRkGj0dhUp8dPMCMiInvxzAlm586l4X//W43AwOpYvnwZHnmkCbp1644ZM2ZYXSd71kRERCJr3LgxQkJCUK9ePYSGhmLNmjVITk7GG2+8YVV9DgvrV764gh9PZTvqcMV0aKDF3CE1nHJsIqKSeMTvRAE2zgYXrSUOlZj4FpKSkvDbb7/hoYfqISYmBgsXLkR0dIzVdTosrH88lQ290QSF3LGvvt5octobgoioNPyd6L6ysrLw4osvIiYmGtWqVSt/Bws4dBhcIRewf1KEIw+JmGmWPfqSiMjR+DvRPc2dO8f897///htVq1a1uU5OMCMiIrsomg1uy+KKcnJyMHbsOAQF1UC9eg8hKKgGxo4dh+xs60c0GNZERGQnnjkb/I033sTZs2fw1VdbkZp6Ctu2fYW0tDRMmjTZ6jo5G5yIiOzDQ5+R+fXXX+PgwYPw968CAKhevTpWrfoUUVFtMW/eXKvqZM+aiIhIRCaTCTJZ8U8agiCDyWSyuk6GNRER2YlnDoN369YNTz31NFJSfsGNGzdw9GgKnn32WXTv3t3qOhnWRERkF4IIf1zRjBnTUbt2MLp3746HHorAE088gVq1amL69GlW18lr1kREZCc2PiLTRcO6UqVKWLhwIT766CPcuHED1apVs3lmO8OaiIjIDgRBQEBAgCh1MayJiIhsVKdOXYt6zxcvXrCqfsmH9aTXx+Pbb75G+l9/4ru9SWj8SBNnN4nIZunp6Rg1ahQyMm7Ay0uO8eNfQ79+fZ3dLJK43NxcJIx4FmdST0GlVqNatQDMen8uQsPCnd20kgk2DoO70E1RPv98jV3rl3xY9+zdFy+MGYsne3ZzdlOIROPl5YWZM2eiSZMmuHbtGjp0eAxdu3aBVqt1dtNI4oY/9Qw6Pd4VgiBg5fKP8erYMdj01U5nN6tEtk4Ss2bflSuWIzn5MHQ6HVQqNaKiojBs2HB4KRQPlNXpdFi29GOkpByFUqlEt+49MGDAQIu3/9vUqYnYvft7AMCsWbMwceLECre9LJKfDR7Vth1q1qzl7GYQiSooKAhNmhSOEgUGBqJqVX/cunXLya0iqVOpVOjcpZt5uLVFy9b4668/ndwqaenarTvmzf8Qqz77H96fPQcXL17A1q+2llh25coVuHv3LhYt/hhvvT0Nu7//Hj/++IPF2//tzJkzMBgMAICPPloo9mlJv2dN5O5++eVXGI0FCA4OdnZTyMUsX7oY3Xo84exmlE6kYfCcnJxiqxUKBRQl9JQBFH8fmUwQBBmuXLnyQLm8vDwcPJCEd6ZNh1arhVarRY8ePbBn92506PBYudvvFxMTjejoGISHhyMnJwfx8cNKbN+aNf+z8OSLY1gTOdHNm7eQkJCADz/8wNlNIRfzwbzZuHD+HNbN2ebsppRKrLuNjk4YWWz9gIFxiIsbVOp+WzZvwsaNG5GXl4vKlSsjftiDwXn58iUYDAaEhISa14WEhGLz5k0Wbb/fypUrsXXrVly8eBG7du3CI480tvQ0LcKwJnKSvLw8xMcPxbhxYxEZGens5pALWfzRh9i5fRvWbdoKjUbj7ObY3eIlS6FWq80/l9arLtK3Xyz69otFeno6kvbvg59flQfK5ObmwttbBblcbl6n0WrNvfjytt/P29sbcXFxAIDbtzM975o1kTsymUwYPfoFtG/fHoMHD3Z2c8iFLFn0ETZv2oC1G7fA19fP2c0pU9EouC0LAKjVamg0GvNSXlgXCQ4ORt2QECxauOCBbSqVCvn5eTAajeZ1Ol22+UNBedvLYsudykoj+bAe/8rLaPFIA1y5fAlD4vohqnVTZzeJyGY///wzNm3ahB07diA6OhrR0dE4ceKEs5tFEnf58iW8NeUNZGXdxoC+vfD4Y+3wRNeOzm5WqaTwPGujwVjiNeuaNWtBLpfj4oUL5nUXLlxAnTp1LNruaJIfBn9/Lq/lkfuJiorC7duc/U0VU7NmLVy5keXsZlhMEACZ7fPLLJabk4Offv4JbdpEQqPR4K8//8TGjRvQtGmzB8p6e3ujbdt2WLv2C7z88jhkZmXim693YtDgIRZtdzTJhzUREZFFBAFJ+/dj9WeroNcb4Ovrg8jIRxE3qPBS04zp09CgYUPExvYHAPznueexdOkSJCSMhFKpRPfuPYrN9C5vuyMxrImIyC4EG6eDV7RnrVKpMHnK1FK3v/HmpGI/azQajB37Sqnly9temmXLlmPEiOcfWP/yy2PxwQfzK1wf4ALXrImIyDV55tOsgYULF2Lr1uI3YnnllVdtmpfCnjUREdmFYONNUcSYYOYMGzasR58+T6Jq1aqIjo7Ga6+9hpSUFGzdusXqOhnWREREIqpXrx5Wr/4M8fHD0L59DE6dSsVXX22Fr6+v1XUyrImIyC5kAmDyjIdu4ffffy/2s7e3N0aNGoUlS5Zg+fJlSE9PR3p6Oho3tu7OZgxrIiKyC0dPMHOm6OgYCIIAk8n0wLbevfsAKBzWv3XrplX1M6yJiIhsZO/7JjCsiYjILjypZ21vDg1rvdGEmGmnHXlI6I0mKOT8Fyci6XH334kyQYDJA2eDX758GdOnT8evv/6KO3fuFtt27NhvVtXpsLDu0ECLH09lO+pwZgq5gA4NtA4/LhFRWTzhd6KtUeuaUQ2MHDkSarUGY8eOFe2paA4L67lDajjqUEREksffie7r119/w7lzaVAqlaLVyTuYERGRXYj1iExX06BBA1y7dk3UOjnBjIiI7MJTJ5j17t0bQ4YMwfPPj0D16gHFtj3xxBNW1cmwJiIiu/DUCWbLly8HAMyZM6fYekEQGNZERERScPz4MdHrZFgTEZFdeOowuD0wrImIyC486atb3bp1x7fffgPg3q1HS7J//z6r6mdYExGRXdg8o9uF0vr5558z//2FF0aLXj/DmoiIyEYDBw40/33o0KGi18+w/he90YSMO0YEVJbzFqVERDay9Zq1K/Wsd+7caVE5zgYXQb7BhL/vFuBObgHCAhQMbCIiGwjwnHHwCRMmlluGX90SidZbhhp+cly5bcS5DD0Dm4iILGKPr2v9G8P6PtUqyQGAgU1ED8jXG7Bx7+/44/w1PFS7GuK7N4dMxrs2l0bmQcPg9sawLgEDm4iK6A1G7PvlPFbvPIpt+0/CYCwwbxs3bxu+nB6Px9s85MQWSpcnXbO2N4Z1KRjYRJ5LbzDix5Rz2PLjCWxPOolbWTmllhs4cTV+Wvl/aBBS3cGtlD7+xhQPw7oMDGwiz2FpQN+vwGTC9E92Y/VbQ+zcQvJkDOtyMLCJ3FvqxetYsO5ghQL6fkf+SBe5Ve5BsPWuKLzfqBnD2gIMbCL3tHD9QUxe8i2MBQXlFy5DlcpqkVrkXjjBTDycxmihapXkqOEnR74BOJehh95ocnaTiMgGPx+/iElLvrE5qAGgY6twEVrkfoo61rYsVIhhXQEMbCL3sfb731BQYPt7WBCAV+M7iNAiotIxrCuIgU3kHs78eUOUejq1qgd/H40odbkb9qzFw7C2AgObyPWFB1cVpZ7Yjo+IUo87kkGweaFCDGsrMbCJXNtTT7SETGZbGHjJZXiiXQORWkRUOoa1DRjYRK6rZcNgvP50R5vq6NgqnEPgZeAwuHgY1jZiYBO5rj7tH4ZGpbB6/74dGovYGvfDsBYPv2ctAn4Pm8j1pF68jt6vfApdrt6q/RVecvSMbihyq9yLo+8NrtfrsWLFchw/dgx37mTB398ffZ7si06dOj9Q9kZGBsaNG3vf/vlo3rwFJkx8HQCQOHUKTp9OhVx+Lyo/+HAB/P39K3wqtmJYi4SBTeQ6Ui9eR69xn+D6rbtW1/FYyzDeDEVijEYjqvj5YfKUqQgMDMSZM2cwc8Y0VK1aFU2bNitWtlpAAFb/b435Z4Nej1GjRqBdu+hi5eKHDUfPnr0c0fwyMaxFxMAmkj4xghrgELglBEEovOWolUz/7JuTU/w2sAqFAgrFg5cvVCoVBg2+d4/2iIgINGrUGKf++OOBsL7f4eTDKCgwoU1kpNXttSeGtcgY2ETSJVZQcwjcMjZfdxYAE4DRCSOLrR4wMA5xcYPK3T0/Px9nz55BdHRMuWX37tmNmJgYKJXKYus3bdyADevXIyAgAD179UKHDo9V5AxEw7C2AwY2kfSIFdQA8GT7hzkEbgFbL1kDhWG9eMlSqNX3Xu+SetUP7GcyYcmSxahRo0a5veWMjOs4duw44oc9VWz90KHxCA4OhtLbG7//fhzz5s6FWqV2Su+bs8HthLPEiaSjokHd7dEIjB0cXeI2X60KiSO7itk8KodarYZGozEv5YW1yWTC8mVLceXyJYwfPwEyWdlRt3fvXoSGhiIkJKTY+oj69aHRauHl5YVmzZqjS5cuOHjwgK2nYxX2rO2IPWwi56toUHePqo/PEgfDW+mF1o1qY+rSXTj719/wVnghulkI5o7rg9qBfvZttJuQ2TgMbhKAij5mxWQyYcXyZTh79gwmT0mERqsts3xBQQF+2LsHffvFllu3LdffbcWwtjMGNpHz2BLUANAr+mH0in4Yd3R5UHrJzevJMrZOMLMm6VesWI7U1FOYMvUtVKpUqdzyx479hjt37iD6vlng2dnZSE09hUaNGkPh5YUTJ0/gu+92YVTC6Aq3SQz8n+cADGwix7M1qP+tssZb7OaRHWRkXMeub7+BQqHAC6MTzOtj2rfHyJGjMGP6NDRo2BCxsf3N2/bs2Y3IR6Me6IEbDQZsWL8eH8yfBwAICAjAU08/g6ioto45mfsIBoOeF1Md5MZdI67cNkLpBQa2CyowmXDikh5+Ghlq+/NzrpSJGdRUcTqdDs88PRzKju9C8FJZXY/JkIv8vRPw6arV0Gg8+7aunGDmQJx0RmR/DGrpkAm2L1SIYe1gDGwi+2FQS4sgwkKFGNZOwMAmEh+DmtwZw9pJGNhE4mFQS1PhHcwEGxZnn4F0MKydiIFNZDsGtXTxEZniYVg7GQObyHoMammTwcYJZs4+AQnhayEBDGyiimNQkydhWEsEA5vIcgxq18BhcPEwrCWEgU1UPga16xBE+EOFGNYSw8AmKh2D2rXwpijiYVhLEAOb6EEMavJkDGuJYmAT3cOgdlG2Xq9mz9qMYS1hDGwiBrUr4wQz8TCsJc6ZgZ2eno6ePXuiTZtItG3bFps3b3HYsck16HQ6NG7cGG++Ocku9TOoiQrxf7QLcNbzsL28vDBz5kw0adIE165dQ4cOj6Fr1y7Q3vfcV/Jcs2fPQatWre1SN4Pa9RXdNtSW/akQe9Yuwhk97KCgIDRp0gQAEBgYiKpV/XHr1i27H5dcQ1paGk6fPo0uXR4XvW4GtXvgbHDxMKxdiDOHxH/55VcYjQUIDg522DFJ2iZNmoTExKmi18ugdh8lPfKyogsVYli7GGcE9s2bt5CQkIAPPphv92ORa9ixYwfCw+uhXr16otbLoCYqGf+HuyBHXsPOy8tDfPxQjBs3FpGRkXY5Brme5OQj2LRpE7Zu3YK7d7NhMBjg41MZEyZMsLpOBrX7sXVGNy9Z38P/5S7KEYFtMpkwevQLaN++PQYPHixq3eTaEhOnmofA16xZg5Mn/2BQ0wNkggAZ01oUHAZ3YfYeEv/555+xadMm7NixA9HR0YiOjsaJEydEPQYRg9p98XvW4uH/dhdnzx52VFQUbt/m7G8qW3x8vNX7MqiJLMOetRvgnc7IFTGo3R971uJhWLsJBja5Ega1Z5CJsFAhvhZuhIFNroBBTVRxDGs3w8AmKWNQexYOg4uHYe2GGNgkRQxqz1N0b3BbFirEsHZTDGySEga1Z2LPWjwMazfGwCYpYFAT2Y5h7eYY2ORMDGrPxqduiYdh7QEY2OQMDGqCrUPgDGszhrWHYGCTIzGoCQAEEf5QIYa1B2FgkyMwqInEx7D2MAxssicGNf0br1mLh+8QD+TI52GT52BQ0/0c/TxrvV6PFSuW4/ixY7hzJwv+/v7o82RfdOrUucTyiVOn4PTpVMjl9/4PfvDhAvj7+wMAdDodli39GCkpR6FUKtGtew8MGDDQ6vOxBd8lHoqBTWJiUFNJHB3WRqMRVfz8MHnKVAQGBuLMmTOYOWMaqlatiqZNm5W4T/yw4ejZs1eJ21auXIG7d+9i0eKPkZmZiXfefgsBAQHo0OGxijVMBBwG92AcEicxMKjJ3nJycqDT6cyLXq8vsZxKpcKgwUMQFBQEQRAQERGBRo0a49Qff1T4mHl5eTh4IAmDhwyBVqtFzZo10aNHD+zZvdvW07EK3y0ejj1ssgWDmsoiwLZbhhbNBh+dMLLY+gED4xAXN6jc/fPz83H27BlER8eUWmbTxg3YsH49AgIC0LNXL3Ov+fLlSzAYDAgJCTWXDQkJxebNm6w4E9vxHUMMbLIKg5rKY+tjLovG+hYvWQq1Wm1er1Aoyt/XZMKSJYtRo0YNtImMLLHM0KHxCA4OhtLbG7//fhzz5s6FWqVGm8hI5ObmwttbBblcbi6v0WqRk5NjwxlZj8PgBIBD4lQxDGpyJLVaDY1GY17KC2uTyYTly5biyuVLGD9+AmSykqMuon59aLRaeHl5oVmz5ujSpQsOHjwAoHBIPT8/D0aj0Vxep8su9qHBkRjWZMbAJkswqMlSzniQh8lkworly3D27Bm8OWkKNFptBdp774A1a9aCXC7HxQsXzOsuXLiAOnXqVLxRImBYUzEMbCoLg5oqwhlhvWLFcqSmnsKkyVNRqVKlUstlZ2cjJeUo8vLyUGA04vjxY/juu12IfPRRAIC3tzfatm2HtWu/gC47G1euXMY3X+9Ep86PW/ty2ITvIHoAr2FTSRjUVFEyQYDMhglmpgrum5FxHbu+/QYKhQIvjE4wr49p3x4jR47CjOnT0KBhQ8TG9ofRYMCG9evxwfx5AICAgAA89fQziIpqa97vP889j6VLlyAhYSSUSiW6d+/hlK9tAYBgMOjZdaIS3bhrxJXbRii9wMAGUGAy4cQlPfw0MtT296wAYlBTReh0Ojzz9HA0GTIfcqX113iN+Tk49sVYfLpqNTQajYgtdD0cBqdScUicAAY1Wc8Zw+DuimFNZWJgezYGNdmCYS0ehjWVi4HtmRjUZCuZCAsV4mtBFmFgexYGNZG0MKzJYgxsz8CgJrEIgmDzQoUY1lQhDGz3xqAmUdl6vZpZbcZ3GFWYJ30P21hgwtVMI4wFgOmfOxVn5xXgz78NAIBKKgH+WnlZVbgMBjWRdPFdRlbxlMDWG024mV1w3zogM6fgn7+7R1gzqMkeHP08a3fGYXCymicMiasUMmiUpf/GqFrJ9d9CDGqyF5lg+0KFXP83DTmVJwR2oE/JPWdvL8BX7dpvIQY12ZMgwh8q5Nq/aUgS3D2wK6lK7l1X95G79GxVBjWR62BYkyjcPbDv7127eq+aQU2OwDuYicd1f9uQ5LhzYBf2ru/97Mq9agY1OQqvWYuHYU2icufArv5P71omuG6vmkFNjsSetXhc8zcOSZq7BnZllRx+GgHBVVyzV82gJnJdfBeSXbjr97Br+yuc3QSrMKjJGWy9Zagrfii2F/asyW7ctYftahjU5CyCCAsVYliTXTGwnYtBTeQeGNZkdwxs52BQk7NxNrh4GNbkEAxsx2JQkxRwNrh4GNbkMAxsx2BQk1TwedbiYViTQzGw7YtBTeSeGNbkcAxs+2BQk9TwmrV4GNbkFAxscTGoSYoE2HjN2tknICEMa3IaBrY4GNQkZfyOtTgY1uRUDGzbMKiJPAPfseR07nprUntjUJPUyQQBMhtmdNuyr7thz5okgT3simFQkyvg96zFw7AmyWBgW4ZBTa6CYS0ehjVJCgO7bAxqIs/EsCbJYWCXjEFNroY9a/EwrEmSGNjFMajJFclEWKgQXwuSrLICOye/AJm6Aie2znEY1ETEdzNJWklf68rTm3DhbwNMJiBCqYC3l/uOlTGoyZXZ+jAOPsjjHr6jSfL+Hdhnr+lhLACK+tiZugJU95E7r3F2xKAmV2frdeeK7qvX67FixXIcP3YMd+5kwd/fH32e7ItOnTo/UDYzMxOrPv0EJ0+eQE5ODgIDgxAXNwitWrc2l3nxhQTcvp0JmaxwEFoul+HTVautPyEb8F1NLqFaJTny9CbczC4+9J2ZY3TLsGZQkzuw9WEcFd3XaDSiip8fJk+ZisDAQJw5cwYzZ0xD1apV0bRps2Jlc3NzEBIaivhhw1GlShWkpBzFB/PnYebMdxFcu7a53Mtjx6JNm0jrT0IkvGZNLuFubgFulXCNOlcP5Bnca/IZg5qouJycHOh0OvOi1+tLLKdSqTBo8BAEBQVBEARERESgUaPGOPXHHw+UDQwMQp8+T6Jq1aqQyWRo1ao1atasidNnTtv7dKzCdzdJnt547xp1SdxpKJxBTe5ErGHw0Qkji60fMDAOcXGDyt0/Pz8fZ8+eQXR0TLllMzMzkZ5+CXXr1i22ftnSj/HxksUICqqB/gMGoEWLlpafgIj4DifJkwmAWiFAl19yWt/WucdQ+PnLNxnU5FbEmmC2eMlSqNVq83qFQlHuviaTCUuWLEaNGjXQJrLsYWyDXo/58+Yiqm1bhIfXM6//vzEvISwsHDKZDId+/hlzZs/GW2+/g3r16pVRm33wXU6SJ5cJCK+uQL7BhMycwq9s5ejvBXeeofCrXGql617VMZlMeGn2VgY1uRVbH3VZtK9arYZGo7F4P5PJhOXLluLK5UuYPHmqeYJYSQx6PebMmQ1vb28kjEootq1hw4fNf4+OicHh5EM49PNPDGuisii9BARUliOgstwc3H/fNUJvBHL0JqiVzm6h9X47cwX7fjlnUVkGNVHpTCYTVixfhrNnz2DylERotNpSyxr0esydOwcGgwGvTZgIr3J67DLBeR0C1+2KkEcrCu4GNZRoVNML/lrXHgb/69pti8oxqMmVFM0Gt2WpqBUrliM19RQmTZ6KSpUqlVrOYDBg7rw5yMvLxfjXJjwwtH4jIwMnT56AXq+HwWDAwYMHkJycjNZOmhnOdzy5vLKGuFxFzQCfcsswqMnVOPp71hkZ17Hr22+gUCjwwuh7Q9ox7dtj5MhRmDF9Gho0bIjY2P44nZqKI8nJUCiUeO4/z5rL9ouNRWxsf+Tm5uKTlStx9epVyOUy1KhRE+NeeQURERHWn5ANBINB717feyFyQSaTCW2e+RCn/7xR4nYGNbkSnU6HZ54ejoGvLIbCW13+DqXQ5+Vg/dzR+HTV6gpds3ZHrt8lIXIDgiDgi2nxqFGt8gPbhnRtxqAml1Q0G9yWhQrx3U8kEfVqV0PSshexae9xHDx2EYH+ldC9bQN0bBnu7KYRWUWw8Q5mzOp7GNZEElLNT4uR/R7FyH6POrspRDYT66tbxGFwIiIiyWPPmoiI7MLRs8HdGcOaiIjsQiYIkNmQuLbs624Y1kREZBfsWYuH16yJiIgkjj1rIiKyC/asxcOwJiIiuxBgY1iL1hLXx7AmskBWVhbOnUvD9evXYdDr4aVQoHr16ggLC4ePT/n39SbyRDIIkNkQubbs624Y1kSlyMzMxO7d3+OHvXtw9erVUssFBQWhY6fO6NSpM3x9fR3YQiLyFAxrovvk5+dj3bq12LF9O4xGA+rXb4COHTsjLDwctWoFQ6lQIF+vx6VL6TiXloaUlKP44vM1WLd2LXr26oW4uEFQKl344dpEIuE1a/EwrIn+5dy5c1jw4XxcunQJ0THt0a9vLEJCQ0ssGxgYiBYtWmLAwDhcOH8em7dswldbt+DokWSMeWkswsLCHNx6ImlhWIuHX90i+sfJEyeQOHUysrN1mPj6mxg37tVSg/p+IaGhGDfuVUyc+Aays3VInDoZJ0+csHOLichTMKyJUNijnjlzBqpU8cesd99H69ZtrKqndZtIzHr3/cJ6Zs3AuXPnRG4pkeuQCbYvVIhhTR4vPz8fCz6cD7VajamJbyMgIMCm+gICAjA18W2oVGos+HA+8vPzRWopkWspHAa35XnWzj4D6WBYk8dbt24tLl26hITRL9gc1EUCAgKQkDAaly5dwrp1a0Wpk8jVCCIsVIhhTR4tMzMTO7ZvR3RMe6uHvkvTuk0k2kXHYOeO7cjMzBS1biLyLAxr8mi7d38Po9GAfn1jLd5n9erVqFSpErZt21Zu2X79YmEwGLBnz25bmknkkopmg9uyUCGGNXm0H/buQf36DSye9X3x4kV8+umnaNPGsl54aGgYIurXx16GNXkgwcbJZQzrexjW5LGysrJw9epVtGjR0qLyBQUFePHFFzF79uwK3fSkRfOWuHr1Ku7cuWNtU4lckm2TywoXKsSwJo917lwaACAsPNyi8gsWLMCjjz6K5s2bV+g4RfUXHY+IqKJ4BzPyWNevXwcA1KoVXG7ZEydOYOvWrfj2228rfJyi+q9du1bhfYlcGe9gJh6GNXksg14PAFAqFOWWPXjwIC5evIimTZsCKAzeMWPG4OrVqxgxYkSZ+yqVimLHI/IUMtg2fMuh33sY1uSxvP4J6XwLQnTEiBHFQrl79+548cUX0bt373L3zc/XFzseEVFF8YMLeazq1asDAC5dSrfrcYrqDwwMtOtxiKSGX90SD3vW5LHCwv6Z+JWWZvGM8CLffPONxWXPpaUVOx6Rp7B1Rjdng9/DnjV5LB8fHwQFBSEl5ahdj5Pyy1EEBQWhcuXKdj0OkdTwQR7iYViTR3usYyekpp7ChfPn7VL/+fPncDo1FR07dbZL/UTkGRjW5NE6d34ccrkXNm/ZZJf6N2/eBC8vL3RiWJMH4jVr8TCsyaP5+vqiZ69eSNq/D8nJh0WtO/nwIRxI2o8nevaCr6+vqHUTuQKGtXgY1uTx4uIGoVatWliyeBEyMjJEqTMjIwNLlixCrVrBiIsbJEqdRK5GEOEPFeJscPJ4SqUSY14ai8Spk/FW4hRMTXzbpudaZ2RkIHHqZOTm5mLi629W6D7iRGQ9vV6PFSuW4/ixY7hzJwv+/v7o82TfUi9D6XQ6LFv6MVJSjkKpVKJb9x4YMGCgxdsdiT1rIgBhYWGYOPEN3Lp1ExMnjLd6SDz58CFMnPBf3L59CxMnvoGwsDCRW0rkOhw9G9xoNKKKnx8mT5mKVZ/9Dy+8OAarP1uF3377tcTyK1euwN27d7Fo8cd46+1p2P399/jxxx8s3u5IDGuifzzcqBES33oHWq0Gs2ZOx9y5sy2eJX7+/DnMnTsbs2bNgFarReJb7+DhRo3s3GIiaXP0NWuVSoVBg4cgKCgIgiAgIiICjRo1xqk//nigbF5eHg4eSMLgIUOg1WpRs2ZN9OjRA3t277Zou6NxGJzoX8LCwvDue7Oxbt1a7NyxHQeS9iOifn20aN4SYeHhqFUrGEqlAvn5ely6lI5zaWlI+eUoTqemwsvLC32e7Iu4uEEc+iYCkJebI8r+OTnF61EoFFBYcPve/Px8nD17BtHRMQ9su3z5EgwGA0JC7j3LPiQkFJs3b7Jou6MxrInuo1QqMWzYcPTu3Qd79uzG3j278eWXn5davkaNGhg6NB4dO3XmrG8iAF5eXvDz88MHb/2fzXWpVCqMThhZbN2AgXHlTtw0mUxYsmQxatSogTaRkQ9sz83Nhbe3CnK53LxOo9WaPxiUt93RGNZEpfD19UW/frHo1y8WWVlZOH/+HK5duwaDXg8vhQKBgYEICwvnncmI7qNUKvHRwsUwGAw212UymR647Wh5vWqTyYTly5biyuVLmDx5KmSyB6/4qlQq5OfnwWg0mgNZp8uGWq22aLujMayJLODj44OmTZs5uxlELkOpVDrlcpDJZMKK5ctw9uwZTJ6SCI1WW2K5mjVrQS6X4+KFCwgLL7xv/4ULF1CnTh2LtjsaJ5gREZHbWLFiOVJTT2HS5KmoVKlSqeW8vb3Rtm07rF37BXTZ2bhy5TK++XonOnV+3KLtjiYYDHqTU45MREQkooyM63jxhdFQKBSQye5da45p3x4jR47CjOnT0KBhQ8TG9gdQ+D3qpUuXIOVo4feou3fvgQED48z7lbfdkRjWREREEsdhcCIiIoljWBMREUkcw5qIiEjiGNZEREQSx7AmIiKSOIY1ERGRxDGsiYiIJI5hTUREJHEMayIiIoljWBMREUkcw5qIiEjiGNZEREQSx7AmIiKSOIY1ERGRxDGsiYiIJI5hTUREJHEMayIiIoljWBMREUkcw5qIiEjiGNZEREQSx7AmIiKSOIY1ERGRxDGsiYiIJO7/AfE3U/ypqgSeAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "recovered_matrix = trace.final.od_matrix\n", "from tabench import Scenario\n", "recovered_trace = Trace()\n", "BiconjugateFrankWolfeModel().solve(\n", " Scenario(\"recovered\", sc.network, Demand(recovered_matrix), family=sc.family),\n", " Budget(iterations=5000, target_relative_gap=1e-10), RngBundle(0), recovered_trace,\n", ")\n", "display(viz.plot_network_flows(sc.network, BRAESS_TRUTH))\n", "display(viz.plot_flow_scatter(\n", " (\"truth (D=6)\", BRAESS_TRUTH),\n", " {\"vzw-entropy recovered\": recovered_trace.final.link_flows},\n", "))" ] }, { "cell_type": "markdown", "id": "56a491f6", "metadata": {}, "source": [ "## Takeaways & pointers\n", "\n", "- **Certified, not self-reported.** The Braess `od_rmse` above came from\n", " `ODCertifier`'s own re-assignment of the emitted OD matrix, never from\n", " `vzw-entropy`'s internal proportions.\n", "- **The exponent form is distinctive.** One damped pass gives `(c/p)^p`, not\n", " a linear `gls`-style blend — verified exactly above, not asserted.\n", "- **Where next.** the quadratic-tradeoff sibling on the SAME network\n", " [`gls`](01-gls.ipynb); the count-only end of the spectrum\n", " [`spiess`](02-spiess.ipynb); the lineage 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": "estimation", "unit": "vzw-entropy" } }, "nbformat": 4, "nbformat_minor": 5 }