{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "90239f2a",
   "metadata": {
    "id": "90239f2a"
   },
   "source": "<img src=\"data:image/png;base64,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\" width=\"170\"/>\n\n**BVK Technology · Quantum Business Solutions** · QUANTUM ADVANTAGE STRESS-TEST · REAL-HARDWARE EDITION (IBM FEZ · ORIGIN WUKONG)\n\n# KKB — Quantum Advantage Stress-Test on Real Quantum Hardware (IBM Fez · Origin Wukong)\n### 100,000 synthetic bureau applicants, a quantum-structured risk signal and portfolio tail risk — simulated, rehearsed with device noise, then run on two real quantum computers\n\nThe KKB stress-test showed in simulation where a quantum method beats the classical one and where it does not. This edition takes the experiments to two real quantum computers: IBM Fez (IBM Heron r2, 156 qubits) and Origin Wukong (Origin Quantum superconducting processor). Every hardware experiment is first rehearsed with the device's own error rates, then submitted within a stated QPU budget, and the results flow into the same tables, figures and report. The quantum model is switched to the projected quantum kernel, which needs three circuits per applicant instead of one per pair of applicants — the difference between a few minutes and several days of QPU time. All data are synthetic; no KKB or member-bank record is used.\n\n**Tracks in this notebook**\n\n1. **Realistic bureau data: scorecard and gradient boosting vs quantum kernels (100,000 synthetic applicants, 2024 → 2025 out-of-time)**\n2. **Quantum-structured risk signal with the projected quantum kernel: learning curves, data efficiency, device-noise rehearsal**\n3. **Portfolio tail risk: amplitude estimation vs Monte Carlo (21-qubit credit-risk circuit + 49,720-loan book)**\n4. **Real hardware (IBM Fez, Origin Wukong): projected-kernel credit scoring and a 3-qubit amplitude-estimation oracle on the QPU**\n5. **Advantage screen: the test KKB can run on its own data inside its sandbox**\n\n**How to run.** *Rehearsal* (default): Google Colab → *Runtime → Run all*; no keys needed, about 15 minutes on a free CPU. *Real hardware*: add Colab Secrets `IBM_QUANTUM_TOKEN`, `IBM_QUANTUM_INSTANCE` (instance CRN) and/or `ORIGIN_QCLOUD_API_KEY`, set `RUN_MODE = \"submit\"`, start with `PRESET = \"smoke\"`, set `CONFIRM_QPU_SPEND = True`, and run all. Jobs are logged to `kkb_hw_jobs.json`; if the queue is long, re-open the notebook later with `RUN_MODE = \"retrieve\"`. Keys are read from Secrets only and never printed or saved.\n\n**Ground rules (BVK method).** Every quantum method runs next to the classical methods a client would use today, on the same data, and every number in the generated report is computed here. Quantum circuits are simulated exactly; each circuit is also transpiled for an IBM Heron-class device to show what a hardware run would face. No result is cherry-picked: seeds are fixed and every run is reproducible."
  },
  {
   "cell_type": "markdown",
   "id": "b0cc297d",
   "metadata": {
    "id": "b0cc297d"
   },
   "source": "## Setup — libraries, the BVK engine and the logo"
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "391005ae",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:44.226776Z",
     "iopub.status.busy": "2026-10-03T21:34:44.226377Z",
     "iopub.status.idle": "2026-10-03T21:34:47.436434Z",
     "shell.execute_reply": "2026-10-03T21:34:47.433099Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "391005ae",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085885063,
     "user_tz": -180,
     "elapsed": 3755,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "d5b15fb7-5f73-4465-b18b-6481ec94d24a"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "environment ready\n"
     ]
    }
   ],
   "source": "import importlib, subprocess, sys\nfor mod, pkg in [('qiskit', 'qiskit>=2.1'), ('qiskit_algorithms', 'qiskit-algorithms>=0.4'), ('qiskit_ibm_runtime', 'qiskit-ibm-runtime'), ('ortools', 'ortools'), ('kyber_py', 'kyber-py'), ('dilithium_py', 'dilithium-py'), ('docx', 'python-docx'), ('pyarrow', 'pyarrow'), ('qiskit_aer', 'qiskit-aer')]:\n    try:\n        importlib.import_module(mod)\n    except ImportError:\n        subprocess.run([sys.executable, '-m', 'pip', 'install', '-q', pkg], check=True)\nimport base64\nopen('bvk_logo.png', 'wb').write(base64.b64decode('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'))\nprint('environment ready')"
  },
  {
   "cell_type": "markdown",
   "id": "52efa393",
   "metadata": {
    "id": "52efa393"
   },
   "source": "The BVK engine (`bvkq.py`) is written out in full below so that every method is inspectable. It is identical in every BVK PoC notebook."
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "6a4ccf0f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:47.445118Z",
     "iopub.status.busy": "2026-10-03T21:34:47.444599Z",
     "iopub.status.idle": "2026-10-03T21:34:47.546859Z",
     "shell.execute_reply": "2026-10-03T21:34:47.544994Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "6a4ccf0f",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085885239,
     "user_tz": -180,
     "elapsed": 14,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "da9fce24-3c6d-4d06-8439-42854f87bdac"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Overwriting bvkq.py\n"
     ]
    }
   ],
   "source": "%%writefile bvkq.py\n\"\"\"bvkq — BVK Technology quantum proof-of-concept engine (v3.0, October 2026).\n\nOne shared, inspectable library behind every BVK industry PoC notebook. It provides:\n  * QUBO models with hard constraints (one-hot, cardinality) and five solver families on the SAME model:\n    exact enumeration, CP-SAT (OR-Tools), simulated annealing, standard penalty QAOA (X mixer) and\n    constraint-preserving QAOA (XY mixers + Dicke initial states, Hadfield et al. 2019) with classical local search.\n  * Exact, noiseless simulation of the QAOA circuits (subspace simulation for constraint-preserving QAOA),\n    cross-checked against Qiskit statevector simulation of the very same circuit, and a transpilation report\n    for an IBM Heron-class device (FakeFez) with an estimated success probability.\n  * Quantum-kernel classification / regression and a small VQC, always next to tuned classical models.\n  * Iterative quantum amplitude estimation vs Monte Carlo at equal query budgets.\n  * VQE on small molecules (PySCF integrals, Jordan–Wigner) vs Hartree–Fock and exact diagonalisation.\n  * Hybrid post-quantum cryptography (X25519 + ML-KEM-768, ML-DSA-65), Mosca risk model and CBOM waves.\n  * A narrator that turns every computed number into an executive Word report.\nNothing in a report is typed by hand: every figure comes from a computation in the notebook.\n\"\"\"\nfrom __future__ import annotations\nimport os, time, math, json, itertools, warnings, datetime\nimport numpy as np\nimport pandas as pd\nimport matplotlib\nimport matplotlib.pyplot as plt\nfrom scipy.optimize import minimize\n\nwarnings.filterwarnings('ignore', category=DeprecationWarning)\nwarnings.filterwarnings('ignore', message='.*CSC.*')\nwarnings.filterwarnings('ignore', module='scipy.sparse')\n\n# ----------------------------------------------------------------------------------------------- style\nNAVY, BLUE, BLUE2, AMBER, GRAY, TEAL, RED, ICE = '#182B5E', '#264295', '#4A6BD1', '#E7A834', '#9AA5B8', '#2A9D8F', '#C0392B', '#EEF4FB'\nFIG_DIR = 'figs'\nSEED = 7\nplt.rcParams.update({'figure.dpi': 110, 'axes.spines.top': False, 'axes.spines.right': False, 'axes.titlesize': 11,\n                     'axes.titleweight': 'bold', 'axes.labelsize': 9, 'xtick.labelsize': 8, 'ytick.labelsize': 8,\n                     'legend.fontsize': 8, 'font.family': 'DejaVu Sans'})\n\n\ndef setup(seed: int = 7, fig_dir: str = 'figs'):\n    global FIG_DIR, SEED\n    FIG_DIR, SEED = fig_dir, seed\n    os.makedirs(fig_dir, exist_ok=True)\n    np.random.seed(seed)\n\n\ndef savefig(name: str) -> str:\n    path = os.path.join(FIG_DIR, f'{name}.png')\n    plt.savefig(path, dpi=170, bbox_inches='tight', facecolor='white')\n    return path\n\n\ndef fmt_pct(v, d=1):\n    return f'{100 * v:.{d}f}%'\n\n\ndef pct(v):\n    \"\"\"Percentage with enough decimals to stay truthful for small shares.\"\"\"\n    v = 100 * float(v)\n    return f'{v:.2f}%' if 0 < v < 1 else (f'{v:.1f}%' if v < 10 else f'{v:.0f}%')\n\n\ndef fmt_esp(p):\n    p = float(p)\n    return '≈ 0 (below 1e-12)' if p < 1e-12 else (f'{p:.1e}' if p < 0.01 else f'{p:.2f}')\n\n\ndef join_names(names):\n    names = [n if (n[:2].isupper() or n.split('-')[0].isupper()) else n[0].lower() + n[1:] for n in names]\n    return names[0] if len(names) == 1 else ', '.join(names[:-1]) + ' and ' + names[-1]\n\n\ndef art(n):\n    \"\"\"'a' or 'an' before a spoken number (an 8-qubit, an 11-qubit, an 18-qubit).\"\"\"\n    return 'an' if str(n).startswith('8') or n in (11, 18) else 'a'\n\n\n# =============================================================================================== QUBO\nclass QUBO:\n    \"\"\"Binary quadratic model  E(x) = c + sum_i h_i x_i + sum_{i<j} J_ij x_i x_j  with hard constraints.\n\n    Hard constraints are 'onehot' (exactly one of idx) or 'card' (exactly k of idx). Constraints flagged\n    mixer=True are enforced *by construction* in constraint-preserving QAOA (XY mixer + Dicke start) and in the\n    annealer's move set; all other hard constraints become quadratic penalties. Soft business penalties\n    (capacity overload, lateness, ...) belong in the objective itself.\n    \"\"\"\n\n    def __init__(self, n: int, names=None, label: str = ''):\n        self.n = n\n        self.names = list(names) if names is not None else [f'x{i}' for i in range(n)]\n        self.h = np.zeros(n)\n        self.J = np.zeros((n, n))\n        self.c = 0.0\n        self.cons = []\n        self.label = label\n\n    # --- building\n    def lin(self, i, v):\n        self.h[i] += v\n\n    def quad(self, i, j, v):\n        if i == j:\n            self.h[i] += v\n            return\n        a, b = (i, j) if i < j else (j, i)\n        self.J[a, b] += v\n\n    def const(self, v):\n        self.c += v\n\n    def add_square(self, coeffs: dict, target: float, weight: float):\n        \"\"\"weight * (sum_i coeffs[i] x_i - target)^2, expanded exactly (x_i^2 = x_i).\"\"\"\n        items = list(coeffs.items())\n        for i, a in items:\n            self.lin(i, weight * (a * a - 2 * a * target))\n        for (i, a), (j, b) in itertools.combinations(items, 2):\n            self.quad(i, j, 2 * weight * a * b)\n        self.const(weight * target * target)\n\n    def onehot(self, idx, name='', mixer=True):\n        self.cons.append({'type': 'onehot', 'idx': list(idx), 'k': 1, 'name': name, 'mixer': mixer})\n\n    def card(self, idx, k, name='', mixer=True):\n        self.cons.append({'type': 'card', 'idx': list(idx), 'k': int(k), 'name': name, 'mixer': mixer})\n\n    def lin_eq(self, coeffs: dict, b, name='linear equality'):\n        \"\"\"Hard weighted equality sum_i a_i x_i == b (e.g. a budget or liquidity limit written with slack bits).\n        Integer coefficients recommended (CP-SAT needs integers). Never mixer-preserved: penalised.\"\"\"\n        self.cons.append({'type': 'lineq', 'idx': sorted(int(i) for i in coeffs), 'coeffs': {int(i): float(a) for i, a in coeffs.items()},\n                          'k': float(b), 'name': name, 'mixer': False})\n\n    def exclude(self, pairs, name='conflicts'):\n        \"\"\"Hard pairwise exclusions x_i * x_j = 0 (e.g. two aircraft on one stand). Never mixer-preserved: penalised.\"\"\"\n        self.cons.append({'type': 'excl', 'idx': sorted({int(i) for p in pairs for i in p}), 'pairs': [tuple(map(int, p)) for p in pairs],\n                          'k': None, 'name': name, 'mixer': False})\n\n    def perm(self, mat, name='', mixer=True):\n        \"\"\"Permutation block: mat[j][t] is the variable 'item j in position t'; every row and every column one-hot.\n        In constraint-preserving QAOA it is preserved exactly by a position-swap mixer.\"\"\"\n        mat = np.array(mat, dtype=int)\n        self.cons.append({'type': 'perm', 'idx': list(mat.reshape(-1)), 'mat': mat, 'k': None, 'name': name, 'mixer': mixer})\n\n    # --- evaluation\n    def energy(self, X):\n        X = np.atleast_2d(X).astype(float)\n        return self.c + X @ self.h + np.einsum('ij,ij->i', X @ self.J, X)\n\n    def violation(self, X, which='all'):\n        X = np.atleast_2d(X)\n        v = np.zeros(len(X))\n        for c in self.cons:\n            if which == 'nonmixer' and c['mixer']:\n                continue\n            if c['type'] == 'perm':\n                M = c['mat']\n                for r in range(M.shape[0]):\n                    v += (X[:, M[r]].sum(1) - 1) ** 2\n                for t in range(M.shape[1]):\n                    v += (X[:, M[:, t]].sum(1) - 1) ** 2\n            elif c['type'] == 'excl':\n                for i, j in c['pairs']:\n                    v += X[:, i].astype(float) * X[:, j]\n            elif c['type'] == 'lineq':\n                idx = list(c['coeffs']); a = np.array([c['coeffs'][i] for i in idx])\n                v += (X[:, idx].astype(float) @ a - c['k']) ** 2\n            else:\n                v += (X[:, c['idx']].sum(1) - c['k']) ** 2\n        return v\n\n    def feasible(self, X):\n        return self.violation(X) == 0\n\n    def penalised(self, P, which='all') -> 'QUBO':\n        q = QUBO(self.n, self.names, self.label)\n        q.h, q.J, q.c = self.h.copy(), self.J.copy(), self.c\n        for c in self.cons:\n            if which == 'nonmixer' and c['mixer']:\n                continue\n            if c['type'] == 'perm':\n                M = c['mat']\n                for r in range(M.shape[0]):\n                    q.add_square({int(i): 1.0 for i in M[r]}, 1, P)\n                for t in range(M.shape[1]):\n                    q.add_square({int(i): 1.0 for i in M[:, t]}, 1, P)\n            elif c['type'] == 'excl':\n                for i, j in c['pairs']:\n                    q.quad(i, j, P)\n            elif c['type'] == 'lineq':\n                q.add_square(c['coeffs'], c['k'], P)\n            else:\n                q.add_square({i: 1.0 for i in c['idx']}, c['k'], P)\n        return q\n\n    def ising(self):\n        \"\"\"Return (const, hz, Jzz) with x = (1 - z)/2.\"\"\"\n        n = self.n\n        hz = -self.h / 2 - (self.J + self.J.T).sum(1) / 4\n        Jzz = np.triu(self.J, 1) / 4\n        const = self.c + self.h.sum() / 2 + self.J.sum() / 4\n        return const, hz, Jzz\n\n    def mixer_groups(self):\n        groups, used = [], set()\n        for c in self.cons:\n            if c['mixer']:\n                if used & set(c['idx']):\n                    raise ValueError('mixer constraints must be disjoint')\n                used |= set(c['idx'])\n                groups.append(c)\n        free = [i for i in range(self.n) if i not in used]\n        return groups, free\n\n    def decode(self, x):\n        return [self.names[i] for i in range(self.n) if x[i] > 0.5]\n\n\n# ------------------------------------------------------------------------------------------- enumeration\ndef all_states(n: int) -> np.ndarray:\n    idx = np.arange(2 ** n, dtype=np.int64)\n    return ((idx[:, None] >> np.arange(n)) & 1).astype(np.uint8)\n\n\ndef k_patterns(m: int, k: int) -> np.ndarray:\n    pats = []\n    for comb in itertools.combinations(range(m), k):\n        p = np.zeros(m, dtype=np.uint8)\n        p[list(comb)] = 1\n        pats.append(p)\n    return np.array(pats, dtype=np.uint8)\n\n\ndef perm_patterns(mat):\n    N = mat.shape[0]\n    pats = []\n    for pm in itertools.permutations(range(N)):\n        p = np.zeros((N, N), dtype=np.uint8)\n        for j, t in enumerate(pm):\n            p[j, t] = 1\n        pats.append(p.reshape(-1))\n    return np.array(pats, dtype=np.uint8)\n\n\nclass Subspace:\n    \"\"\"Product space of the mixer-preserved patterns (one tensor axis per mixer group, one per free bit).\"\"\"\n\n    def __init__(self, q: QUBO):\n        self.q = q\n        self.groups, self.free = q.mixer_groups()\n        self.pats = [perm_patterns(g['mat']) if g['type'] == 'perm' else k_patterns(len(g['idx']), g['k']) for g in self.groups]\n        self.dims = [len(p) for p in self.pats] + [2] * len(self.free)\n        self.D = int(np.prod(self.dims)) if self.dims else 1\n        if self.D > 6_000_000:\n            raise ValueError(f'subspace too large for exact simulation: {self.D:,}')\n        grids = np.indices(self.dims).reshape(len(self.dims), -1).T\n        S = np.zeros((self.D, q.n), dtype=np.uint8)\n        for a, (g, P) in enumerate(zip(self.groups, self.pats)):\n            S[:, g['idx']] = P[grids[:, a]]\n        for b, i in enumerate(self.free):\n            S[:, i] = grids[:, len(self.groups) + b]\n        self.S = S\n        self.full_index = (S.astype(np.int64) << np.arange(q.n, dtype=np.int64)).sum(1)\n        # ring-pair swap tables per group, and the initial amplitude vector per axis\n        self.pairs, self.init = [], []\n        for g, P in zip(self.groups, self.pats):\n            if g['type'] == 'perm':\n                N = g['mat'].shape[0]\n                perms = [tuple(int(np.flatnonzero(p.reshape(N, N)[j])[0]) for j in range(N)) for p in P]\n                key = {pm: r for r, pm in enumerate(perms)}\n                ring = [(t, t + 1) for t in range(N - 1)] + ([(N - 1, 0)] if N > 2 else [])\n                tabs = []\n                for t1, t2 in ring:\n                    us, vs = [], []\n                    for r, pm in enumerate(perms):\n                        sw = tuple(t2 if s_ == t1 else t1 if s_ == t2 else s_ for s_ in pm)\n                        r2 = key[sw]\n                        if r < r2:\n                            us.append(r); vs.append(r2)\n                    tabs.append((t1, t2, np.array(us, dtype=np.int64), np.array(vs, dtype=np.int64)))\n                self.pairs.append(tabs)\n                v0 = np.zeros(len(P)); v0[key[tuple(range(N))]] = 1.0      # basis start: item j in position j\n                self.init.append(v0)\n                continue\n            self.init.append(np.full(len(P), 1 / math.sqrt(len(P))))      # Dicke / W state\n            m = len(g['idx'])\n            ring = [(i, i + 1) for i in range(m - 1)] + ([(m - 1, 0)] if m > 2 else [])\n            key = {tuple(p): r for r, p in enumerate(P)}\n            tabs = []\n            for a, b in ring:\n                us, vs = [], []\n                for r, p in enumerate(P):\n                    if p[a] == 1 and p[b] == 0:\n                        p2 = p.copy(); p2[a], p2[b] = 0, 1\n                        us.append(r); vs.append(key[tuple(p2)])\n                tabs.append((a, b, np.array(us, dtype=np.int64), np.array(vs, dtype=np.int64)))\n            self.pairs.append(tabs)\n        for _ in self.free:\n            self.init.append(np.full(2, 1 / math.sqrt(2)))\n\n\n# =============================================================================================== solvers\ndef exact_solve(q: QUBO, space: Subspace | None = None):\n    t0 = time.perf_counter()\n    space = space or Subspace(q)\n    S = space.S\n    feas = q.violation(S, 'nonmixer') == 0\n    E = q.energy(S)\n    Ef = E[feas]\n    i = np.flatnonzero(feas)[np.argmin(Ef)]\n    return {'x': S[i].astype(int), 'E': float(E[i]), 'n_feasible': int(feas.sum()), 'E_mean': float(Ef.mean()),\n            'E_worst': float(Ef.max()), 'time': time.perf_counter() - t0, 'E_all': E, 'feas': feas, 'space': space}\n\n\ndef penalty_weight(q: QUBO, space: Subspace, which='nonmixer', factor=1.5, mode='tight'):\n    \"\"\"Penalty for the constraints the mixer does not preserve — derived, never hand-tuned.\n    mode='tight': factor x the smallest P for which every infeasible state of the space costs more than the best feasible\n    one, P_min = max_x (E_opt - E(x)) / violation(x) (computable exactly at PoC size; at scale it is bounded instead).\n    mode='range': factor x the objective range (always safe, but flattens the landscape the optimiser sees).\"\"\"\n    S = space.S if space.D <= 2_000_000 else space.S[np.random.default_rng(0).choice(space.D, 200_000)]\n    E = q.energy(S)\n    rng = float(E.max() - E.min())\n    if mode == 'range':\n        return factor * max(rng, 1e-9)\n    V = q.violation(S, which)\n    if not (V == 0).any() or not (V > 0).any():\n        return factor * max(rng, 1e-9)\n    e_opt = float(E[V == 0].min())\n    pmin = float(np.max((e_opt - E[V > 0]) / V[V > 0]))\n    return factor * max(pmin, 0.05 * rng, 1e-9)\n\n\ndef _moves(q: QUBO, x, groups, free, rng):\n    x = x.copy()\n    r = rng.random()\n    if groups and (not free or r < 0.85):\n        g = groups[rng.integers(len(groups))]\n        if g['type'] == 'perm':\n            M = g['mat']; a, b = rng.choice(M.shape[0], 2, replace=False)\n            ta, tb = int(np.flatnonzero(x[M[a]])[0]), int(np.flatnonzero(x[M[b]])[0])\n            x[M[a, ta]], x[M[b, tb]], x[M[a, tb]], x[M[b, ta]] = 0, 0, 1, 1\n            return x\n        idx = np.array(g['idx'])\n        on, off = idx[x[idx] == 1], idx[x[idx] == 0]\n        if len(on) and len(off):\n            x[rng.choice(on)], x[rng.choice(off)] = 0, 1\n    elif free:\n        i = free[rng.integers(len(free))]\n        x[i] ^= 1\n    return x\n\n\ndef anneal(q: QUBO, P=None, sweeps=4000, T0=None, seed=7, restarts=4):\n    \"\"\"Simulated annealing with constraint-preserving moves (swaps inside groups); other constraints penalised.\"\"\"\n    t0 = time.perf_counter()\n    rng = np.random.default_rng(seed)\n    groups, free = q.mixer_groups()\n    space = None\n    if P is None:\n        P = penalty_weight(q, Subspace(q)) if any(not c['mixer'] for c in q.cons) else 0.0\n    qp = q.penalised(P, 'nonmixer')\n    f = lambda z: float(qp.energy(z)[0])\n    best_x, best_e = None, np.inf\n    scale = np.abs(qp.h).max() + np.abs(qp.J).max() + 1e-9\n    T0 = T0 or 0.5 * scale\n    for rs in range(restarts):\n        x = np.zeros(q.n, dtype=np.uint8)\n        for g in groups:\n            if g['type'] == 'perm':\n                M = g['mat']; pm = rng.permutation(M.shape[0])\n                for j, t in enumerate(pm):\n                    x[M[j, t]] = 1\n            else:\n                x[rng.choice(g['idx'], g['k'], replace=False)] = 1\n        for i in free:\n            x[i] = rng.integers(2)\n        e = f(x)\n        for t in range(sweeps):\n            T = T0 * (1 - t / sweeps) + 1e-6 * scale\n            x2 = _moves(q, x, groups, free, rng)\n            e2 = f(x2)\n            if e2 <= e or rng.random() < math.exp(-(e2 - e) / T):\n                x, e = x2, e2\n                if e < best_e and q.violation(x)[0] == 0:\n                    best_x, best_e = x.copy(), e\n    if best_x is None:\n        best_x = x\n    return {'x': best_x.astype(int), 'E': float(q.energy(best_x)[0]), 'feasible': bool(q.violation(best_x)[0] == 0),\n            'time': time.perf_counter() - t0}\n\n\ndef local_search(q: QUBO, x, P=None):\n    \"\"\"Best-improvement local search with group-preserving swaps and free-bit flips (classical repair step).\"\"\"\n    groups, free = q.mixer_groups()\n    if P is None:\n        P = penalty_weight(q, Subspace(q)) if any(not c['mixer'] for c in q.cons) else 0.0\n    qp = q.penalised(P, 'nonmixer')\n    x = np.array(x, dtype=np.uint8)\n    e = float(qp.energy(x)[0])\n    while True:\n        cands = []\n        for g in groups:\n            if g['type'] == 'perm':\n                M = g['mat']; pos = [int(np.flatnonzero(x[M[j]])[0]) for j in range(M.shape[0])]\n                for a, b in itertools.combinations(range(M.shape[0]), 2):\n                    y = x.copy(); y[M[a, pos[a]]], y[M[b, pos[b]]], y[M[a, pos[b]]], y[M[b, pos[a]]] = 0, 0, 1, 1\n                    cands.append(y)\n                continue\n            idx = np.array(g['idx'])\n            for i in idx[x[idx] == 1]:\n                for j in idx[x[idx] == 0]:\n                    y = x.copy(); y[i], y[j] = 0, 1\n                    cands.append(y)\n        for i in free:\n            y = x.copy(); y[i] ^= 1\n            cands.append(y)\n        if not cands:\n            break\n        C = np.array(cands)\n        Ec = qp.energy(C)\n        k = int(np.argmin(Ec))\n        if Ec[k] < e - 1e-12:\n            x, e = C[k], float(Ec[k])\n        else:\n            break\n    return x.astype(int)\n\n\ndef cpsat_solve(q: QUBO, time_limit=10.0, workers=2):\n    \"\"\"Exact/anytime classical reference: OR-Tools CP-SAT on the same model (objective scaled to integers).\"\"\"\n    from ortools.sat.python import cp_model\n    t0 = time.perf_counter()\n    m = cp_model.CpModel()\n    x = [m.NewBoolVar(f'x{i}') for i in range(q.n)]\n    scale = 1e5 / max(np.abs(q.h).max(), np.abs(q.J).max(), 1e-9)\n    terms = []\n    for i in range(q.n):\n        if q.h[i] != 0:\n            terms.append(int(round(q.h[i] * scale)) * x[i])\n    I, Jx = np.nonzero(q.J)\n    for i, j in zip(I, Jx):\n        w = int(round(q.J[i, j] * scale))\n        if w == 0:\n            continue\n        y = m.NewBoolVar(f'y{i}_{j}')\n        m.AddMultiplicationEquality(y, [x[i], x[j]])\n        terms.append(w * y)\n    for c in q.cons:\n        if c['type'] == 'perm':\n            M = c['mat']\n            for r in range(M.shape[0]):\n                m.Add(sum(x[int(i)] for i in M[r]) == 1)\n            for t in range(M.shape[1]):\n                m.Add(sum(x[int(i)] for i in M[:, t]) == 1)\n        elif c['type'] == 'excl':\n            for i, j in c['pairs']:\n                m.Add(x[i] + x[j] <= 1)\n        elif c['type'] == 'lineq':\n            m.Add(sum(int(round(a)) * x[i] for i, a in c['coeffs'].items()) == int(round(c['k'])))\n        else:\n            m.Add(sum(x[i] for i in c['idx']) == c['k'])\n    m.Minimize(sum(terms))\n    s = cp_model.CpSolver()\n    s.parameters.max_time_in_seconds = time_limit\n    s.parameters.num_workers = workers\n    s.parameters.random_seed = 7\n    st = s.Solve(m)\n    if st not in (cp_model.OPTIMAL, cp_model.FEASIBLE):       # no solution within the time limit: report it, never a fake value\n        return {'x': None, 'E': float('nan'), 'status': s.StatusName(st), 'optimal': False, 'time': time.perf_counter() - t0}\n    xs = np.array([s.Value(v) for v in x], dtype=int)\n    return {'x': xs, 'E': float(q.energy(xs)[0]), 'status': s.StatusName(st), 'optimal': st == cp_model.OPTIMAL,\n            'time': time.perf_counter() - t0}\n\n\n# =============================================================================================== QAOA\nclass CPQAOA:\n    \"\"\"Constraint-preserving QAOA: Dicke/W initial state per mixer group, XY ring mixers, cost phase from the\n    (normalised) objective plus penalties for constraints the mixer does not preserve. Simulated exactly in the\n    mixer-preserved subspace — equivalent to a full statevector simulation of the same circuit.\"\"\"\n\n    def __init__(self, q: QUBO, p=3, P=None, space: Subspace | None = None, prep_layers=None):\n        self.q, self.p = q, p\n        self.space = space or Subspace(q)\n        has_perm = any(g['type'] == 'perm' for g in self.space.groups)\n        # permutation blocks start from a basis permutation; fixed (untrained) mixer layers at beta = pi/4 spread it\n        self.prep = (2 if has_perm else 0) if prep_layers is None else prep_layers\n        sp = self.space\n        has_pen = any(not c['mixer'] for c in q.cons)\n        self.P = (P if P is not None else penalty_weight(q, sp)) if has_pen else 0.0\n        self.qc = q.penalised(self.P, 'nonmixer')\n        const, hz, Jzz = self.qc.ising()\n        self.norm = max(np.abs(hz).max(), np.abs(Jzz).max(), 1e-12)\n        self.E_true = q.energy(sp.S)\n        self.feas = q.violation(sp.S, 'nonmixer') == 0\n        self.E_cost = self.qc.energy(sp.S)\n        self.phase_E = (self.E_cost - self.E_cost.mean()) / self.norm\n        self.history = []\n        self.n_eval = 0\n\n    def state(self, gammas, betas):\n        sp = self.space\n        psi = np.ones(1, dtype=complex)\n        for v0 in sp.init:\n            psi = np.multiply.outer(psi, v0) if psi.ndim else psi * v0\n        psi = psi.reshape(sp.dims).astype(complex)\n        ph = self.phase_E.reshape(sp.dims)\n        gammas = [0.0] * self.prep + list(gammas)\n        betas = [math.pi / 4] * self.prep + list(betas)\n        for g, b in zip(gammas, betas):\n            if g != 0.0:\n                psi *= np.exp(-1j * g * ph)\n            c, s = math.cos(b), math.sin(b)\n            for ax, tabs in enumerate(sp.pairs):\n                view = np.moveaxis(psi, ax, 0)\n                for (_, _, us, vs) in tabs:\n                    if len(us) == 0:\n                        continue\n                    a_u, a_v = view[us].copy(), view[vs].copy()\n                    view[us] = c * a_u - 1j * s * a_v\n                    view[vs] = c * a_v - 1j * s * a_u\n            F = len(sp.free)\n            flat = psi.reshape(-1)\n            for fb in range(F):\n                post = 2 ** (F - fb - 1)\n                v = flat.reshape(-1, 2, post)\n                a0 = v[:, 0, :].copy()\n                v[:, 0, :] *= c; v[:, 0, :] -= 1j * s * v[:, 1, :]\n                v[:, 1, :] *= c; v[:, 1, :] -= 1j * s * a0\n            psi = flat.reshape(sp.dims)\n        return psi.reshape(-1)\n\n    def expectation(self, theta):\n        p = self.p\n        psi = self.state(theta[:p], theta[p:])\n        self.n_eval += 1\n        return float(np.real(np.vdot(psi, self.phase_E * psi)))\n\n    def optimise(self, seed=7, maxiter=300, grid=(16, 8)):\n        \"\"\"Layer-by-layer INTERP strategy (Zhou et al., PRX 2020): grid search at p=1, then interpolate the\n        angles to p+1 and refine with COBYLA. Robust and reproducible; the evaluation history is kept.\"\"\"\n        t0 = time.perf_counter()\n        hist = []\n        f = lambda t: (lambda v: (hist.append(v), v)[1])(self.expectation(t))\n        sd = float(np.std(self.phase_E)) or 1.0\n        big = (getattr(self, 'space', None).D if getattr(self, 'space', None) is not None else len(self.phase_E)) > 100_000\n        if big:                                  # large state spaces: smaller, still reproducible, training budget\n            maxiter, grid = min(maxiter, 120), (8, 4)\n            self.extra_starts = min(getattr(self, 'extra_starts', 3), 1)\n        p_target = self.p\n        self.p = 1\n        G = np.linspace(0.05, 2.5, grid[0]) / sd\n        Bt = np.linspace(0.05, np.pi / 2 - 0.05, grid[1])\n        vals = [(f(np.array([g, b])), g, b) for g in G for b in Bt]\n        _, g0, b0 = min(vals)\n        th = minimize(f, np.array([g0, b0]), method='COBYLA', options={'maxiter': maxiter, 'rhobeg': 0.2}).x\n        self.stage_values = [min(hist)]\n        for p in range(2, p_target + 1):\n            gam, bet = th[:p - 1], th[p - 1:]\n            def interp(v):\n                vv = np.concatenate([[0.0], v, [0.0]])\n                return np.array([((i - 1) / (p - 1)) * vv[i - 1] + ((p - i) / (p - 1)) * vv[i] for i in range(1, p + 1)])\n            self.p = p\n            th = minimize(f, np.concatenate([interp(gam), interp(bet)]), method='COBYLA',\n                          options={'maxiter': maxiter, 'rhobeg': 0.15}).x\n            self.stage_values.append(min(hist))\n        best_val = f(th)\n        rng = np.random.default_rng(seed)\n        for _ in range(getattr(self, 'extra_starts', 3)):          # a few random restarts at full depth, keep the best\n            th0 = np.concatenate([rng.uniform(0.1, 2.5, self.p) / sd, rng.uniform(0.05, 1.5, self.p)])\n            r = minimize(f, th0, method='COBYLA', options={'maxiter': maxiter, 'rhobeg': 0.3})\n            if r.fun < best_val:\n                th, best_val = r.x, r.fun\n        self.theta, self.history = th, hist\n        self.time = time.perf_counter() - t0\n        psi = self.state(self.theta[:self.p], self.theta[self.p:])\n        self.probs = np.abs(psi) ** 2\n        return self\n\n    def report(self, ex, top_k=32):\n        \"\"\"Compare with exact result `ex` (from exact_solve on the same subspace).\"\"\"\n        pr, E, feas = self.probs, self.E_true, self.feas\n        Eopt, Eu = ex['E'], ex['E_mean']\n        p_feas = float(pr[feas].sum())\n        E_q = float((pr[feas] * E[feas]).sum() / max(p_feas, 1e-15))\n        opt_mask = feas & (np.abs(E - Eopt) < 1e-9 * max(1, abs(Eopt)))\n        p_opt = float(pr[opt_mask].sum())\n        order = np.argsort(-pr)[:top_k]\n        top_feas = [i for i in order if feas[i]]\n        i_top = min(top_feas, key=lambda i: E[i]) if top_feas else None\n        x_top = self.space.S[i_top].astype(int) if i_top is not None else None\n        x_hyb = local_search(self.q, x_top if x_top is not None else self.space.S[order[0]], self.P)\n        E_hyb = float(self.q.energy(x_hyb)[0])\n        rng_ = (Eu - Eopt) if abs(Eu - Eopt) > 1e-12 else 1.0\n        has_mixer = any(c['mixer'] for c in self.q.cons)\n        return {'p_feasible': p_feas, 'p_feasible_uniform': float(feas.mean()), 'E_expected': E_q, 'has_mixer': has_mixer,\n                'amp_vs_bitstring': float(p_opt / max(opt_mask.sum() / len(feas), 1e-15)),\n                'quality_pct': float(100 * (Eu - E_q) / rng_), 'p_opt': p_opt,\n                'p_opt_uniform': float(opt_mask.sum() / max(feas.sum(), 1)),\n                'amplification': float(p_opt / max(opt_mask.sum() / max(feas.sum(), 1), 1e-15)),\n                'x_top': x_top, 'E_top': float(E[i_top]) if i_top is not None else None,\n                'x_hybrid': x_hyb, 'E_hybrid': E_hyb, 'hybrid_feasible': bool(self.q.violation(x_hyb)[0] == 0),\n                'iters': len(self.history), 'evals': self.n_eval, 'time': self.time, 'p': self.p,\n                'subspace': self.space.D, 'penalty': self.P}\n\n    # ---- the same circuit in Qiskit\n    def circuit(self, theta=None, measure=False):\n        from qiskit import QuantumCircuit\n        from qiskit.circuit.library import PauliEvolutionGate\n        from qiskit.quantum_info import SparsePauliOp\n        theta = self.theta if theta is None else theta\n        q, sp, p = self.q, self.space, self.p\n        qc = QuantumCircuit(q.n)\n        for g in sp.groups:\n            if g['type'] == 'perm':\n                for j in range(g['mat'].shape[0]):\n                    qc.x(int(g['mat'][j, j]))\n            else:\n                dicke_prep(qc, g['idx'], g['k'])\n        for i in sp.free:\n            qc.h(i)\n        _, hz, Jzz = self.qc.ising()\n        xy = SparsePauliOp(['XX', 'YY'], [0.5, 0.5])\n        layers = [(0.0, math.pi / 4)] * self.prep + [(theta[l], theta[p + l]) for l in range(p)]\n        for (gm, bt) in layers:\n            for i in range(q.n):\n                if abs(hz[i]) > 1e-12 and gm != 0.0:\n                    qc.rz(2 * gm * hz[i] / self.norm, i)\n            I, Jx = np.nonzero(np.abs(Jzz) > 1e-12)\n            for i, j in zip(I, Jx):\n                if gm != 0.0:\n                    qc.rzz(2 * gm * Jzz[i, j] / self.norm, i, j)\n            for g, tabs in zip(sp.groups, sp.pairs):\n                if g['type'] == 'perm':\n                    M = g['mat']\n                    for (t1, t2, _, _) in tabs:\n                        for a, b in itertools.combinations(range(M.shape[0]), 2):\n                            # swap items a,b between positions t1,t2: |a@t1,b@t2> <-> |a@t2,b@t1>\n                            qc.append(PauliEvolutionGate(SWAP4, time=bt), [int(M[a, t1]), int(M[b, t2]), int(M[a, t2]), int(M[b, t1])])\n                    continue\n                for (a, b, _, _) in tabs:\n                    qc.append(PauliEvolutionGate(xy, time=bt), [g['idx'][a], g['idx'][b]])\n            for i in sp.free:\n                qc.rx(2 * bt, i)\n        if measure:\n            qc.measure_all()\n        return qc\n\n    def crosscheck(self):\n        \"\"\"Max |p_sim - p_qiskit| between this simulator and Qiskit's statevector of the same circuit.\"\"\"\n        from qiskit.quantum_info import Statevector\n        if self.q.n > 20:\n            return None\n        pq = Statevector(self.circuit()).probabilities()\n        full = np.zeros(2 ** self.q.n)\n        full[self.space.full_index] = self.probs\n        return float(np.abs(pq - full).max())\n\n\nclass PenaltyQAOA:\n    \"\"\"Standard QAOA: all hard constraints as penalties (P derived from the cost scale), X mixer, |+>^n start.\"\"\"\n\n    def __init__(self, q: QUBO, p=1, P=None):\n        if q.n > 22:\n            raise ValueError('standard QAOA full-space simulation limited to 22 qubits')\n        self.q, self.p = q, p\n        self.S = all_states(q.n)\n        self.E_true = q.energy(self.S)\n        self.feas = q.violation(self.S) == 0\n        rngE = float(self.E_true.max() - self.E_true.min())\n        if P is None:\n            V = q.violation(self.S)\n            if (V == 0).any() and (V > 0).any():\n                e_opt = float(self.E_true[V == 0].min())\n                P = 1.5 * max(float(np.max((e_opt - self.E_true[V > 0]) / V[V > 0])), 0.05 * rngE, 1e-9)\n            else:\n                P = 1.5 * max(rngE, 1e-9)\n        self.P = P\n        self.qp = q.penalised(self.P, 'all')\n        _, hz, Jzz = self.qp.ising()\n        self.norm = max(np.abs(hz).max(), np.abs(Jzz).max(), 1e-12)\n        Ec = self.qp.energy(self.S)\n        self.phase_E = (Ec - Ec.mean()) / self.norm\n        self.n_eval = 0\n        self.history = []\n\n    def state(self, gammas, betas):\n        n = self.q.n\n        psi = np.full(2 ** n, 1 / math.sqrt(2 ** n), dtype=complex)\n        for g, b in zip(gammas, betas):\n            psi *= np.exp(-1j * g * self.phase_E)\n            c, s = math.cos(b), math.sin(b)\n            for i in range(n):\n                v = psi.reshape(2 ** (n - i - 1), 2, 2 ** i)\n                a0, a1 = v[:, 0, :].copy(), v[:, 1, :].copy()\n                v[:, 0, :] = c * a0 - 1j * s * a1\n                v[:, 1, :] = c * a1 - 1j * s * a0\n        return psi\n\n    def expectation(self, theta):\n        psi = self.state(theta[:self.p], theta[self.p:])\n        self.n_eval += 1\n        return float(np.real(np.vdot(psi, self.phase_E * psi)))\n\n    def optimise(self, seed=7, maxiter=300, grid=(16, 8)):\n        \"\"\"Layer-by-layer INTERP strategy (Zhou et al., PRX 2020): grid search at p=1, then interpolate the\n        angles to p+1 and refine with COBYLA. Robust and reproducible; the evaluation history is kept.\"\"\"\n        t0 = time.perf_counter()\n        hist = []\n        f = lambda t: (lambda v: (hist.append(v), v)[1])(self.expectation(t))\n        sd = float(np.std(self.phase_E)) or 1.0\n        big = (getattr(self, 'space', None).D if getattr(self, 'space', None) is not None else len(self.phase_E)) > 100_000\n        if big:                                  # large state spaces: smaller, still reproducible, training budget\n            maxiter, grid = min(maxiter, 120), (8, 4)\n            self.extra_starts = min(getattr(self, 'extra_starts', 3), 1)\n        p_target = self.p\n        self.p = 1\n        G = np.linspace(0.05, 2.5, grid[0]) / sd\n        Bt = np.linspace(0.05, np.pi / 2 - 0.05, grid[1])\n        vals = [(f(np.array([g, b])), g, b) for g in G for b in Bt]\n        _, g0, b0 = min(vals)\n        th = minimize(f, np.array([g0, b0]), method='COBYLA', options={'maxiter': maxiter, 'rhobeg': 0.2}).x\n        self.stage_values = [min(hist)]\n        for p in range(2, p_target + 1):\n            gam, bet = th[:p - 1], th[p - 1:]\n            def interp(v):\n                vv = np.concatenate([[0.0], v, [0.0]])\n                return np.array([((i - 1) / (p - 1)) * vv[i - 1] + ((p - i) / (p - 1)) * vv[i] for i in range(1, p + 1)])\n            self.p = p\n            th = minimize(f, np.concatenate([interp(gam), interp(bet)]), method='COBYLA',\n                          options={'maxiter': maxiter, 'rhobeg': 0.15}).x\n            self.stage_values.append(min(hist))\n        best_val = f(th)\n        rng = np.random.default_rng(seed)\n        for _ in range(getattr(self, 'extra_starts', 3)):          # a few random restarts at full depth, keep the best\n            th0 = np.concatenate([rng.uniform(0.1, 2.5, self.p) / sd, rng.uniform(0.05, 1.5, self.p)])\n            r = minimize(f, th0, method='COBYLA', options={'maxiter': maxiter, 'rhobeg': 0.3})\n            if r.fun < best_val:\n                th, best_val = r.x, r.fun\n        self.theta, self.history = th, hist\n        self.time = time.perf_counter() - t0\n        psi = self.state(self.theta[:self.p], self.theta[self.p:])\n        self.probs = np.abs(psi) ** 2\n        return self\n\n    def report(self, ex, top_k=32):\n        pr, E, feas = self.probs, self.E_true, self.feas\n        p_feas = float(pr[feas].sum())\n        E_q = float((pr[feas] * E[feas]).sum() / max(p_feas, 1e-15)) if p_feas > 0 else float('nan')\n        opt_mask = feas & (np.abs(E - ex['E']) < 1e-9 * max(1, abs(ex['E'])))\n        order = np.argsort(-pr)[:top_k]\n        top_feas = [i for i in order if feas[i]]\n        i_top = min(top_feas, key=lambda i: E[i]) if top_feas else None\n        rng_ = (ex['E_mean'] - ex['E']) if abs(ex['E_mean'] - ex['E']) > 1e-12 else 1.0\n        return {'p_feasible': p_feas, 'p_feasible_uniform': float(feas.mean()), 'E_expected': E_q,\n                'quality_pct': float(100 * (ex['E_mean'] - E_q) / rng_) if p_feas > 0 else float('nan'),\n                'p_opt': float(pr[opt_mask].sum()), 'x_top': self.S[i_top].astype(int) if i_top is not None else None,\n                'E_top': float(E[i_top]) if i_top is not None else None, 'iters': len(self.history), 'evals': self.n_eval,\n                'time': self.time, 'p': self.p, 'penalty': self.P}\n\n    def circuit(self, theta=None, measure=False):\n        from qiskit import QuantumCircuit\n        theta = self.theta if theta is None else theta\n        n, p = self.q.n, self.p\n        _, hz, Jzz = self.qp.ising()\n        qc = QuantumCircuit(n)\n        qc.h(range(n))\n        for l in range(p):\n            gm, bt = theta[l], theta[p + l]\n            for i in range(n):\n                if abs(hz[i]) > 1e-12:\n                    qc.rz(2 * gm * hz[i] / self.norm, i)\n            I, Jx = np.nonzero(np.abs(Jzz) > 1e-12)\n            for i, j in zip(I, Jx):\n                qc.rzz(2 * gm * Jzz[i, j] / self.norm, i, j)\n            qc.rx(2 * bt, range(n))\n        if measure:\n            qc.measure_all()\n        return qc\n\n    def crosscheck(self):\n        from qiskit.quantum_info import Statevector\n        pq = Statevector(self.circuit()).probabilities()\n        return float(np.abs(pq - self.probs).max())\n\n\ndef _swap4_op():\n    from qiskit.quantum_info import SparsePauliOp, Operator\n    M = np.zeros((16, 16))\n    a = 0b0011   # qubits 0,1 set (little-endian): item a at t1, item b at t2\n    b = 0b1100   # qubits 2,3 set: item a at t2, item b at t1\n    M[a, b] = M[b, a] = 1\n    return SparsePauliOp.from_operator(Operator(M)).simplify()\n\n\ntry:\n    SWAP4 = _swap4_op()\nexcept Exception:   # qiskit not yet installed when the module is first written\n    SWAP4 = None\n\n\ndef dicke_prep(qc, qubits, k):\n    \"\"\"Bärtschi & Eidenbenz (2019) deterministic Dicke-state preparation |D^n_k> on `qubits` (W state for k=1).\"\"\"\n    from qiskit.circuit.library import RYGate\n    q = list(qubits)\n    n = len(q)\n    if k == 0:\n        return\n    if k == n:\n        for i in q:\n            qc.x(i)\n        return\n\n    def scs(nn, kk):\n        qc.cx(q[nn - 2], q[nn - 1])\n        qc.cry(2 * np.arccos(np.sqrt(1 / nn)), q[nn - 1], q[nn - 2])\n        qc.cx(q[nn - 2], q[nn - 1])\n        for l in range(2, kk + 1):\n            qc.cx(q[nn - l - 1], q[nn - 1])\n            qc.append(RYGate(2 * np.arccos(np.sqrt(l / nn))).control(2), [q[nn - 1], q[nn - l], q[nn - l - 1]])\n            qc.cx(q[nn - l - 1], q[nn - 1])\n\n    for i in range(n - k, n):\n        qc.x(q[i])\n    for l in range(n, k, -1):\n        scs(l, k)\n    for l in range(k, 1, -1):\n        scs(l, l - 1)\n\n\n# ------------------------------------------------------------------------------------------- hardware\n_FAKE = None\n\n\ndef heron_backend():\n    global _FAKE\n    if _FAKE is None:\n        from qiskit_ibm_runtime.fake_provider import FakeFez\n        _FAKE = FakeFez()\n    return _FAKE\n\n\ndef hardware_report(qc, seed=7, opt_level=3):\n    \"\"\"Transpile for an IBM Heron r2 model (FakeFez, 156 qubits, calibrated error rates) and estimate the\n    success probability ESP = prod(1 - error) over all scheduled gates and measurements.\"\"\"\n    from qiskit import transpile\n    be = heron_backend()\n    qcm = qc.copy()\n    if not any(inst.operation.name == 'measure' for inst in qcm.data):\n        qcm.measure_all()\n    t0 = time.perf_counter()\n    tq = transpile(qcm, be, optimization_level=opt_level, seed_transpiler=seed)\n    target = be.target\n    esp, n2q = 1.0, 0\n    for inst in tq.data:\n        name = inst.operation.name\n        qs = tuple(tq.find_bit(b).index for b in inst.qubits)\n        if name in ('barrier', 'delay'):\n            continue\n        if len(qs) == 2:\n            n2q += 1\n        try:\n            err = target[name][qs].error\n        except Exception:\n            err = None\n        if err:\n            esp *= (1 - err)\n    return {'qubits': qc.num_qubits, 'logical_depth': qc.depth(), 'transpiled_depth': tq.depth(), 'two_qubit_gates': n2q,\n            'esp': esp, 'backend': be.name, 'transpile_s': time.perf_counter() - t0}\n\n\n# ------------------------------------------------------------------------------------------- benchmark\ndef optimisation_benchmark(q: QUBO, p_cp=4, p_std=1, cpsat_limit=10, run_std=True, heuristic=None, label_heur='Rule-based heuristic',\n                           seed=7, verbose=True):\n    \"\"\"Run every solver on the same QUBO and return (table, details).\"\"\"\n    sp = Subspace(q)\n    ex = exact_solve(q, sp)\n    Eopt = ex['E']\n    gap = lambda e: 100 * (e - Eopt) / max(abs(Eopt), 1e-9)\n    rows, det = [], {'exact': ex, 'space': sp}\n    rows.append({'Solver': f'Exact enumeration ({ex[\"n_feasible\"]:,} valid plans)', 'Valid output': '100%', 'Objective': Eopt,\n                 'Gap to optimum %': 0.0, 'Time s': ex['time']})\n    rows.append({'Solver': 'Random valid plan (average)', 'Valid output': '100%', 'Objective': ex['E_mean'],\n                 'Gap to optimum %': gap(ex['E_mean']), 'Time s': np.nan})\n    if heuristic is not None:\n        t0 = time.perf_counter()\n        xh = np.array(heuristic(), dtype=int)\n        th = time.perf_counter() - t0\n        eh = float(q.energy(xh)[0])\n        det['heuristic'] = {'x': xh, 'E': eh, 'feasible': bool(q.violation(xh)[0] == 0)}\n        rows.append({'Solver': label_heur, 'Valid output': '100%' if det['heuristic']['feasible'] else 'no',\n                     'Objective': eh, 'Gap to optimum %': gap(eh), 'Time s': th})\n    cs = cpsat_solve(q, cpsat_limit)\n    det['cpsat'] = cs\n    rows.append({'Solver': f'CP-SAT (OR-Tools, {cs[\"status\"].lower()})', 'Valid output': '100%' if cs['x'] is not None else 'no solution', 'Objective': cs['E'],\n                 'Gap to optimum %': gap(cs['E']), 'Time s': cs['time']})\n    sa = anneal(q, seed=seed)\n    det['sa'] = sa\n    rows.append({'Solver': 'Simulated annealing (classical)', 'Valid output': '100%' if sa['feasible'] else 'no', 'Objective': sa['E'],\n                 'Gap to optimum %': gap(sa['E']), 'Time s': sa['time']})\n    unconstrained = len(q.cons) == 0\n    no_mixer = not any(c['mixer'] for c in q.cons)\n    if run_std and q.n <= 21 and not unconstrained and not no_mixer:\n        big = q.n >= 18\n        st = PenaltyQAOA(q, p=p_std).optimise(seed=seed, maxiter=150 if big else 300, grid=(8, 4) if big else (16, 8))\n        rs = st.report(ex)\n        det['std'], det['std_obj'] = rs, st\n        rows.append({'Solver': f'Standard QAOA (penalty + X mixer, p={p_std}, {q.n} qubits)',\n                     'Valid output': fmt_pct(rs['p_feasible']), 'Objective': rs['E_expected'],\n                     'Gap to optimum %': gap(rs['E_expected']) if rs['p_feasible'] > 0 else np.nan, 'Time s': rs['time']})\n    cp = CPQAOA(q, p=p_cp).optimise(seed=seed)\n    rc = cp.report(ex)\n    det['cp'], det['cp_obj'] = rc, cp\n    cp_name = (f'QAOA (X mixer, p={p_cp}) — expected' if unconstrained else\n               f'QAOA (X mixer, constraints as penalties, p={p_cp}) — expected' if no_mixer else f'Constraint-preserving QAOA (XY mixer, p={p_cp}) — expected')\n    rows.append({'Solver': cp_name, 'Valid output': fmt_pct(rc['p_feasible']),\n                 'Objective': rc['E_expected'], 'Gap to optimum %': gap(rc['E_expected']), 'Time s': rc['time']})\n    if rc['E_top'] is not None:\n        rows.append({'Solver': ('QAOA' if unconstrained else 'Constraint-preserving QAOA') + ' — best of 32 most likely', 'Valid output': '100%', 'Objective': rc['E_top'],\n                     'Gap to optimum %': gap(rc['E_top']), 'Time s': rc['time']})\n    rows.append({'Solver': 'Hybrid: QAOA top-32 + classical local search', 'Valid output': '100%' if rc['hybrid_feasible'] else 'no',\n                 'Objective': rc['E_hybrid'], 'Gap to optimum %': gap(rc['E_hybrid']), 'Time s': rc['time']})\n    tab = pd.DataFrame(rows)\n    tab['Objective'] = tab['Objective'].astype(float).round(4)\n    tab['Gap to optimum %'] = tab['Gap to optimum %'].astype(float).round(2)\n    tab['Time s'] = tab['Time s'].astype(float).round(3)\n    det['gap'] = gap\n    return tab, det\n\n\ndef plot_qaoa(det, title, xlabel='Objective (lower is better)', name='qaoa'):\n    ex, cp = det['exact'], det['cp_obj']\n    E, feas = cp.E_true, cp.feas\n    fig, axes = plt.subplots(1, 2, figsize=(11.5, 3.5), gridspec_kw={'width_ratios': [1.45, 1]})\n    Ef = E[feas]\n    bins = np.linspace(Ef.min(), Ef.max(), 32)\n    axes[0].hist(Ef, bins=bins, weights=np.full(len(Ef), 1 / len(Ef)), color=GRAY, alpha=0.75, label='Random valid plan' if cp.q.cons else 'Random assignment')\n    has_mixer = any(c['mixer'] for c in cp.q.cons)\n    lab = (f'Constraint-preserving QAOA (p={cp.p})' if has_mixer else (f'QAOA, X mixer (p={cp.p})' if not cp.q.cons else\n           f'QAOA, X mixer + penalties (p={cp.p}), valid part'))\n    axes[0].hist(E[feas], bins=bins, weights=cp.probs[feas], color=BLUE, alpha=0.8, label=lab)\n    if 'std_obj' in det:\n        st = det['std_obj']\n        axes[0].hist(st.E_true[st.feas], bins=bins, weights=st.probs[st.feas], histtype='step', lw=1.6, color=AMBER,\n                     label=f'Standard QAOA, valid part ({100 * det[\"std\"][\"p_feasible\"]:.0f}% of shots)')\n    axes[0].axvline(ex['E'], color=NAVY, ls='--', lw=1.6)\n    axes[0].text(ex['E'], axes[0].get_ylim()[1] * 0.92, ' optimum', color=NAVY, fontsize=8)\n    axes[0].set_xlabel(xlabel); axes[0].set_ylabel('Probability'); axes[0].legend(frameon=False)\n    axes[0].set_title(title)\n    h = np.minimum.accumulate(cp.history)\n    axes[1].plot(np.arange(1, len(h) + 1), h, color=BLUE, lw=2)\n    axes[1].set_xlabel('Optimiser evaluation'); axes[1].set_ylabel('Expected cost (best so far, normalised)')\n    axes[1].set_title(f'QAOA training ({cp.q.n} qubits, {len(cp.history)} evaluations)')\n    plt.tight_layout()\n    return savefig(name)\n\n\n# =============================================================================================== QML\ndef angle_features(Xtr, Xte, q, seed=7):\n    \"\"\"Standardise -> PCA(q) -> min-max to [0, 1] fitted on training data only (test clipped).\"\"\"\n    from sklearn.preprocessing import StandardScaler, MinMaxScaler\n    from sklearn.decomposition import PCA\n    sc = StandardScaler().fit(Xtr)\n    pca = PCA(n_components=q, random_state=seed).fit(sc.transform(Xtr))\n    Ztr, Zte = pca.transform(sc.transform(Xtr)), pca.transform(sc.transform(Xte))\n    mm = MinMaxScaler().fit(Ztr)\n    return np.clip(mm.transform(Ztr), 0, 1), np.clip(mm.transform(Zte), 0, 1), float(pca.explained_variance_ratio_.sum())\n\n\ndef feature_states(Z, bw, reps=2):\n    \"\"\"Statevectors of Qiskit's ZZ feature map (zz_feature_map, linear entanglement) for angles x = bw * pi * z.\n    Computed with an exact vectorised NumPy implementation of the same circuit (H layer, then the diagonal\n    phase exp(i[sum 2x_i b_i + sum 2(pi-x_i)(pi-x_j)(b_i xor b_j)]), repeated `reps` times); check_feature_map()\n    verifies it against Qiskit's own statevector simulation.\"\"\"\n    X = bw * np.pi * np.asarray(Z, float)\n    N, q = X.shape\n    D = 2 ** q\n    bits = ((np.arange(D)[:, None] >> np.arange(q)) & 1).astype(float)\n    ph = 2 * X @ bits.T\n    for i in range(q - 1):\n        xor = np.abs(bits[:, i] - bits[:, i + 1])\n        ph += 2 * np.outer((np.pi - X[:, i]) * (np.pi - X[:, i + 1]), xor)\n    phase = np.exp(1j * ph)\n    psi = np.zeros((N, D), complex)\n    psi[:, 0] = 1\n    r2 = 1 / math.sqrt(2)\n    for _ in range(reps):\n        for i in range(q):\n            v = psi.reshape(N, 2 ** (q - i - 1), 2, 2 ** i)\n            a0, a1 = v[:, :, 0, :].copy(), v[:, :, 1, :].copy()\n            v[:, :, 0, :] = (a0 + a1) * r2\n            v[:, :, 1, :] = (a0 - a1) * r2\n        psi *= phase\n    return psi\n\n\ndef check_feature_map(q=6, n=6, reps=2, seed=0):\n    \"\"\"Max kernel deviation between the NumPy feature map and Qiskit's statevector of zz_feature_map.\"\"\"\n    from qiskit.circuit.library import zz_feature_map\n    from qiskit.quantum_info import Statevector\n    rng = np.random.default_rng(seed)\n    Z = rng.uniform(0, 1, (n, q))\n    fm = zz_feature_map(q, reps=reps, entanglement='linear')\n    P = list(fm.parameters)\n    ref = np.array([Statevector(fm.assign_parameters(dict(zip(P, np.pi * z)))).data for z in Z])\n    return float(np.abs(fidelity_kernel(ref) - fidelity_kernel(feature_states(Z, 1.0, reps))).max())\n\n\ndef feature_map_circuit(q, reps=2):\n    from qiskit.circuit.library import zz_feature_map\n    return zz_feature_map(q, reps=reps, entanglement='linear')\n\n\ndef fidelity_kernel(A, B=None):\n    B = A if B is None else B\n    return np.abs(A.conj() @ B.T) ** 2\n\n\ndef recall_at(y, s, rate):\n    k = max(1, int(round(rate * len(s))))\n    top = np.argsort(-s)[:k]\n    return float(y[top].sum() / max(y.sum(), 1))\n\n\ndef classical_models(kind='clf', seed=7):\n    from sklearn.linear_model import LogisticRegression, Ridge\n    from sklearn.svm import SVC\n    from sklearn.kernel_ridge import KernelRidge\n    from sklearn.ensemble import HistGradientBoostingClassifier, HistGradientBoostingRegressor, RandomForestClassifier\n    from sklearn.model_selection import GridSearchCV\n    if kind == 'clf':\n        return {\n            'Logistic regression': GridSearchCV(LogisticRegression(max_iter=3000, class_weight='balanced'), {'C': [0.01, 0.1, 1, 10]}, scoring='roc_auc', cv=4),\n            'RBF-SVM': GridSearchCV(SVC(kernel='rbf', class_weight='balanced'), {'C': [0.1, 1, 10], 'gamma': ['scale', 0.1, 1.0]}, scoring='roc_auc', cv=4),\n            'Random forest': RandomForestClassifier(n_estimators=300, min_samples_leaf=2, class_weight='balanced', random_state=seed, n_jobs=2),\n            'Gradient boosting': GridSearchCV(HistGradientBoostingClassifier(random_state=seed, class_weight='balanced'),\n                                              {'learning_rate': [0.05, 0.1], 'max_depth': [3, None]}, scoring='roc_auc', cv=4),\n        }\n    return {\n        'Ridge regression': GridSearchCV(Ridge(), {'alpha': [0.01, 0.1, 1, 10]}, scoring='neg_root_mean_squared_error', cv=4),\n        'RBF kernel ridge': GridSearchCV(KernelRidge(kernel='rbf'), {'alpha': [0.01, 0.1, 1], 'gamma': [0.1, 0.5, 1, 2]}, scoring='neg_root_mean_squared_error', cv=4),\n        'Gradient boosting': GridSearchCV(HistGradientBoostingRegressor(random_state=seed), {'learning_rate': [0.05, 0.1], 'max_depth': [3, None]},\n                                          scoring='neg_root_mean_squared_error', cv=4),\n    }\n\n\ndef _scores(m, X):\n    if hasattr(m, 'decision_function'):\n        return m.decision_function(X)\n    return m.predict_proba(X)[:, 1]\n\n\ndef kernel_classification(Xtr, ytr, Xte, yte, q=10, bandwidths=(0.05, 0.1, 0.2, 0.35, 0.5, 0.75, 1.0), Cs=(0.1, 1, 10),\n                          alert_rate=0.05, seed=7, Xtr_full=None, Xte_full=None):\n    \"\"\"Quantum fidelity-kernel SVM (bandwidth + C chosen by 4-fold CV on training data only) against tuned classical\n    models on the SAME q PCA features; optional classical reference on all original features.\"\"\"\n    from sklearn.svm import SVC\n    from sklearn.model_selection import StratifiedKFold\n    from sklearn.metrics import roc_auc_score, average_precision_score\n    t0 = time.perf_counter()\n    Ztr, Zte, evr = angle_features(Xtr, Xte, q, seed)\n    skf = StratifiedKFold(4, shuffle=True, random_state=seed)\n    grid = []\n    states_tr = {}\n    for bw in bandwidths:\n        S = feature_states(Ztr, bw)\n        states_tr[bw] = S\n        K = fidelity_kernel(S)\n        for C in Cs:\n            aucs = []\n            for a, b in skf.split(Ztr, ytr):\n                m = SVC(kernel='precomputed', C=C, class_weight='balanced').fit(K[np.ix_(a, a)], ytr[a])\n                aucs.append(roc_auc_score(ytr[b], m.decision_function(K[np.ix_(b, a)])))\n            grid.append({'bandwidth': bw, 'C': C, 'cv_auc': float(np.mean(aucs)), 'cv_sd': float(np.std(aucs))})\n    G = pd.DataFrame(grid)\n    best = G.sort_values('cv_auc', ascending=False).iloc[0]\n    bw, C = float(best['bandwidth']), float(best['C'])\n    Str, Ste = states_tr[bw], feature_states(Zte, bw)\n    qm = SVC(kernel='precomputed', C=C, class_weight='balanced').fit(fidelity_kernel(Str), ytr)\n    sq = qm.decision_function(fidelity_kernel(Ste, Str))\n    t_q = time.perf_counter() - t0\n    rows = [{'Model': f'Quantum kernel SVM ({q} qubits, ZZ map)', 'CV AUC': float(best['cv_auc']), 'Test AUC': roc_auc_score(yte, sq),\n             'Test PR-AUC': average_precision_score(yte, sq), f'Recall @ {int(alert_rate * 100)}% alerts': recall_at(yte, sq, alert_rate), 'Fit s': t_q}]\n    preds = {'Quantum kernel': sq}\n    for name, m in classical_models('clf', seed).items():\n        t1 = time.perf_counter()\n        m.fit(Ztr, ytr)\n        s_ = _scores(m, Zte)\n        cv = float(m.best_score_) if hasattr(m, 'best_score_') else np.nan\n        rows.append({'Model': f'{name} (same {q} features)', 'CV AUC': cv, 'Test AUC': roc_auc_score(yte, s_), 'Test PR-AUC': average_precision_score(yte, s_),\n                     f'Recall @ {int(alert_rate * 100)}% alerts': recall_at(yte, s_, alert_rate), 'Fit s': time.perf_counter() - t1})\n        preds[name] = s_\n    if Xtr_full is not None:\n        from sklearn.preprocessing import StandardScaler\n        m = classical_models('clf', seed)['Gradient boosting']\n        sc = StandardScaler().fit(Xtr_full)\n        m.fit(sc.transform(Xtr_full), ytr)\n        s_ = _scores(m, sc.transform(Xte_full))\n        rows.append({'Model': f'Gradient boosting (all {Xtr_full.shape[1]} features, reference)', 'CV AUC': float(m.best_score_),\n                     'Test AUC': roc_auc_score(yte, s_), 'Test PR-AUC': average_precision_score(yte, s_),\n                     f'Recall @ {int(alert_rate * 100)}% alerts': recall_at(yte, s_, alert_rate), 'Fit s': np.nan})\n    T = pd.DataFrame(rows)\n    for c in T.columns[1:]:\n        T[c] = T[c].astype(float).round(4)\n    cls = T.iloc[1:5]\n    return T, {'bandwidth': bw, 'C': C, 'grid': G, 'evr': evr, 'q': q, 'n_train': len(ytr), 'n_test': len(yte),\n               'pos_rate_train': float(ytr.mean()), 'pos_rate_test': float(yte.mean()),\n               'best_classical': cls.sort_values('Test AUC', ascending=False).iloc[0]['Model'],\n               'best_classical_auc': float(cls['Test AUC'].max()), 'best_classical_cv': float(cls['CV AUC'].max()),\n               'quantum_auc': float(T.iloc[0]['Test AUC']), 'quantum_cv': float(T.iloc[0]['CV AUC']),\n               'beaten': [m.split(' (')[0] for m, v in zip(cls['Model'], cls['Test AUC']) if v < T.iloc[0]['Test AUC']],\n               'near_classical_regime': bw <= 0.1, 'preds': preds, 'Zte': Zte, 'yte': yte}\n\n\ndef size_sweep(X, y, sizes, Xtest, ytest, q, bw, C, seeds=5, seed=7):\n    \"\"\"Training-size sweep: quantum kernel (fixed bandwidth/C) vs logistic regression, RBF-SVM and gradient boosting\n    (sensible fixed hyper-parameters), each trained on the same stratified subsample and scored on one test set.\"\"\"\n    from sklearn.svm import SVC\n    from sklearn.linear_model import LogisticRegression\n    from sklearn.ensemble import HistGradientBoostingClassifier\n    from sklearn.metrics import roc_auc_score\n    rows = []\n    for n in sizes:\n        for s in range(seeds):\n            rng = np.random.default_rng(seed + 100 * s + n)\n            pos, neg = np.flatnonzero(y == 1), np.flatnonzero(y == 0)\n            n_pos = max(3, int(round(n * y.mean())))\n            idx = np.concatenate([rng.choice(pos, min(n_pos, len(pos)), replace=False), rng.choice(neg, n - min(n_pos, len(pos)), replace=False)])\n            Ztr, Zte, _ = angle_features(X[idx], Xtest, q, seed)\n            ytr = y[idx]\n            Str, Ste = feature_states(Ztr, bw), feature_states(Zte, bw)\n            r = {'n': n, 'seed': s}\n            r['Quantum kernel'] = roc_auc_score(ytest, SVC(kernel='precomputed', C=C, class_weight='balanced').fit(fidelity_kernel(Str), ytr).decision_function(fidelity_kernel(Ste, Str)))\n            r['Logistic regression'] = roc_auc_score(ytest, LogisticRegression(max_iter=3000, C=1.0, class_weight='balanced').fit(Ztr, ytr).decision_function(Zte))\n            r['RBF-SVM'] = roc_auc_score(ytest, SVC(kernel='rbf', C=1.0, class_weight='balanced').fit(Ztr, ytr).decision_function(Zte))\n            r['Gradient boosting'] = roc_auc_score(ytest, HistGradientBoostingClassifier(max_depth=3, random_state=seed).fit(Ztr, ytr).predict_proba(Zte)[:, 1]) if n >= 40 else np.nan\n            rows.append(r)\n    D = pd.DataFrame(rows)\n    agg = D.groupby('n').agg(['mean', 'std']).drop(columns='seed', level=0)\n    best_cls = D.groupby('n')[['Logistic regression', 'RBF-SVM', 'Gradient boosting']].mean().max(1)\n    gap = (D.groupby('n')['Quantum kernel'].mean() - best_cls)\n    return D, agg, gap\n\n\ndef plot_sweep(D, title, name='size_sweep', metric='AUC'):\n    fig, ax = plt.subplots(figsize=(7.6, 3.4))\n    cols = {'Quantum kernel': BLUE, 'Logistic regression': GRAY, 'RBF-SVM': TEAL, 'Gradient boosting': AMBER}\n    g = D.groupby('n')\n    for c, col in cols.items():\n        m, s = g[c].mean(), g[c].std()\n        ax.plot(m.index, m.values, marker='o', color=col, lw=2.2 if c == 'Quantum kernel' else 1.4, label=c)\n        ax.fill_between(m.index, m - s, m + s, color=col, alpha=0.12)\n    ax.set_xscale('log'); ax.set_xlabel('Training examples (log)'); ax.set_ylabel(f'Test {metric}'); ax.set_title(title)\n    ax.legend(frameon=False, ncol=2); plt.tight_layout()\n    return savefig(name)\n\n\ndef kernel_regression(Xtr, ytr, Xte, yte, q=8, bandwidths=(0.05, 0.1, 0.2, 0.35, 0.5, 0.75, 1.0), alphas=(0.001, 0.01, 0.1, 1.0), seed=7):\n    from sklearn.kernel_ridge import KernelRidge\n    from sklearn.model_selection import KFold\n    from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_percentage_error\n    t0 = time.perf_counter()\n    Ztr, Zte, evr = angle_features(Xtr, Xte, q, seed)\n    mu, sd = ytr.mean(), ytr.std()\n    yt = (ytr - mu) / sd\n    kf = KFold(4, shuffle=True, random_state=seed)\n    grid, st = [], {}\n    for bw in bandwidths:\n        S = feature_states(Ztr, bw); st[bw] = S; K = fidelity_kernel(S)\n        for a_ in alphas:\n            err = []\n            for a, b in kf.split(Ztr):\n                m = KernelRidge(kernel='precomputed', alpha=a_).fit(K[np.ix_(a, a)], yt[a])\n                err.append(np.sqrt(np.mean((m.predict(K[np.ix_(b, a)]) - yt[b]) ** 2)) * sd)\n            grid.append({'bandwidth': bw, 'alpha': a_, 'cv_rmse': float(np.mean(err))})\n    G = pd.DataFrame(grid)\n    best = G.sort_values('cv_rmse').iloc[0]\n    bw, al = float(best['bandwidth']), float(best['alpha'])\n    m = KernelRidge(kernel='precomputed', alpha=al).fit(fidelity_kernel(st[bw]), yt)\n    pq = m.predict(fidelity_kernel(feature_states(Zte, bw), st[bw])) * sd + mu\n    rows = [{'Model': f'Quantum kernel ridge ({q} qubits)', 'CV RMSE': float(best['cv_rmse']), 'Test RMSE': float(np.sqrt(mean_squared_error(yte, pq))),\n             'Test MAPE %': 100 * float(mean_absolute_percentage_error(yte, pq)), 'Test R²': float(r2_score(yte, pq)), 'Fit s': time.perf_counter() - t0}]\n    preds = {'Quantum kernel': pq}\n    for name, mm in classical_models('reg', seed).items():\n        t1 = time.perf_counter()\n        mm.fit(Ztr, ytr)\n        p_ = mm.predict(Zte)\n        rows.append({'Model': f'{name} (same {q} features)', 'CV RMSE': float(-mm.best_score_), 'Test RMSE': float(np.sqrt(mean_squared_error(yte, p_))),\n                     'Test MAPE %': 100 * float(mean_absolute_percentage_error(yte, p_)), 'Test R²': float(r2_score(yte, p_)), 'Fit s': time.perf_counter() - t1})\n        preds[name] = p_\n    T = pd.DataFrame(rows)\n    for c in T.columns[1:]:\n        T[c] = T[c].astype(float).round(4)\n    cls = T.iloc[1:]\n    return T, {'bandwidth': bw, 'alpha': al, 'grid': G, 'evr': evr, 'q': q, 'preds': preds, 'yte': yte,\n               'quantum_rmse': float(T.iloc[0]['Test RMSE']), 'best_classical_rmse': float(cls['Test RMSE'].min()),\n               'best_classical': cls.sort_values('Test RMSE').iloc[0]['Model'], 'quantum_mape': float(T.iloc[0]['Test MAPE %']),\n               'best_classical_mape': float(cls['Test MAPE %'].min()), 'beaten': [m_.split(' (')[0] for m_, v in zip(cls['Model'], cls['Test RMSE']) if v > T.iloc[0]['Test RMSE']],\n               'near_classical_regime': bw <= 0.1}\n\n\nclass VQC:\n    \"\"\"Variational quantum classifier: ZZ feature map (reps=2) + RealAmplitudes ansatz (reps=2, linear), readout\n    <Z> on qubit 0 with a trainable scale and bias; trained with COBYLA on a class-balanced logistic loss.\"\"\"\n\n    def __init__(self, q=8, reps=2, maxiter=300, seed=7, bw=1.0):\n        from qiskit.circuit.library import real_amplitudes\n        self.q, self.reps, self.maxiter, self.seed, self.bw = q, reps, maxiter, seed, bw\n        self.ansatz = real_amplitudes(q, reps=reps, entanglement='linear')\n        self.n_params = self.ansatz.num_parameters\n        self.params = list(self.ansatz.parameters)\n        self.obs = np.array([1.0 if (i & 1) == 0 else -1.0 for i in range(2 ** q)])     # Z on qubit 0\n\n    def _U(self, th):\n        from qiskit.quantum_info import Operator\n        return Operator(self.ansatz.assign_parameters(dict(zip(self.params, th)))).data\n\n    def _raw(self, S, th):\n        psi = S @ self._U(th).T\n        return (np.abs(psi) ** 2) @ self.obs\n\n    def fit(self, Z, y):\n        S = feature_states(Z, self.bw)\n        w = np.where(y == 1, 0.5 / max(y.mean(), 1e-9), 0.5 / max(1 - y.mean(), 1e-9))\n        self.hist = []\n\n        def loss(th):\n            s = th[-2] * self._raw(S, th[:-2]) + th[-1]\n            p = 1 / (1 + np.exp(-np.clip(s, -30, 30)))\n            l = -np.mean(w * (y * np.log(p + 1e-9) + (1 - y) * np.log(1 - p + 1e-9)))\n            self.hist.append(l)\n            return l\n        rng = np.random.default_rng(self.seed)\n        t0 = time.perf_counter()\n        th0 = np.concatenate([rng.uniform(-0.5, 0.5, self.n_params), [3.0, 0.0]])\n        r = minimize(loss, th0, method='COBYLA', options={'maxiter': self.maxiter, 'rhobeg': 0.4})\n        self.theta, self.time = r.x, time.perf_counter() - t0\n        return self\n\n    def decision_function(self, Z):\n        return self.theta[-2] * self._raw(feature_states(Z, self.bw), self.theta[:-2]) + self.theta[-1]\n\n    def circuit(self):\n        fm = feature_map_circuit(self.q, 2)\n        return fm.compose(self.ansatz)\n\n\n# =============================================================================================== QAE\ndef iqae_vs_mc(pmf, threshold, epsilons=(0.05, 0.02, 0.01, 0.005, 0.002), alpha=0.05, repeats=10, seed=7, label='P(loss > threshold)', shots=100, A=None, objective_qubit=None, true_p=None):\n    \"\"\"Iterative amplitude estimation (Grinko et al. 2021) of a tail probability vs plain Monte Carlo at the SAME number\n    of oracle calls. The distribution is loaded exactly (StatePreparation) — efficient loading is an open hardware\n    problem, stated in every report.\"\"\"\n    from qiskit import QuantumCircuit\n    from qiskit.circuit.library import StatePreparation\n    from qiskit.primitives import StatevectorSampler\n    from qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\n    from qiskit_algorithms import IterativeAmplitudeEstimation, EstimationProblem\n    if A is None:\n        pmf = np.asarray(pmf, float); pmf = pmf / pmf.sum()\n        n = int(np.log2(len(pmf)))\n        assert 2 ** n == len(pmf)\n        amps = np.zeros(2 ** (n + 1))\n        for i, p in enumerate(pmf):\n            amps[i + (2 ** n if i >= threshold else 0)] = math.sqrt(p)\n        A = QuantumCircuit(n + 1)\n        A.append(StatePreparation(amps), range(n + 1))\n        true_p = float(pmf[threshold:].sum())\n        objective_qubit = n\n    n = objective_qubit\n    pm = generate_preset_pass_manager(optimization_level=1, basis_gates=['rz', 'rx', 'ry', 'h', 'cx', 'x', 'sx', 'u'])\n    rows = []\n    rng = np.random.default_rng(seed)\n    k_max_all = 0\n    for eps in epsilons:\n        est, q_used = [], []\n        for r in range(repeats):\n            ae = IterativeAmplitudeEstimation(epsilon_target=eps, alpha=alpha, sampler=StatevectorSampler(default_shots=shots, seed=seed + r), transpiler=pm)\n            res = ae.estimate(EstimationProblem(state_preparation=A, objective_qubits=[n]))\n            est.append(res.estimation); q_used.append(res.num_oracle_queries)\n            k_max_all = max(k_max_all, max(res.powers) if len(res.powers) else 0)\n        Nq = int(np.median(q_used))\n        mc = rng.binomial(max(Nq, 1), true_p, size=400) / max(Nq, 1)\n        rows.append({'epsilon target': eps, 'Oracle calls (median)': Nq, 'IQAE estimate (mean)': float(np.mean(est)),\n                     'IQAE abs. error (mean)': float(np.mean(np.abs(np.array(est) - true_p))),\n                     'MC abs. error at same calls': float(np.mean(np.abs(mc - true_p))),\n                     'MC calls for IQAE error': int(true_p * (1 - true_p) / max(np.mean(np.abs(np.array(est) - true_p)) ** 2, 1e-12) * (2 / math.pi))})\n    T = pd.DataFrame(rows)\n    # hardware view: two-qubit gates of A and of one Grover iterate Q on an IBM Heron model; deepest circuit = A Q^k\n    prob = EstimationProblem(state_preparation=A, objective_qubits=[n])\n    hA = hardware_report(A)\n    hQ = hardware_report(prob.grover_operator)\n    deep_2q = hA['two_qubit_gates'] + k_max_all * hQ['two_qubit_gates']\n    esp_deep = float(np.exp(deep_2q * np.log(1 - 0.0039)))\n    return T, {'true_p': true_p, 'n_qubits': A.num_qubits, 'A': A, 'label': label, 'k_max': int(k_max_all),\n               'twoq_A': hA['two_qubit_gates'], 'twoq_Q': hQ['two_qubit_gates'], 'twoq_deepest': int(deep_2q), 'esp_deepest': esp_deep,\n               'best_ratio': float((T['MC abs. error at same calls'] / T['IQAE abs. error (mean)'].clip(lower=1e-12)).max())}\n\n\ndef plot_qae(T, true_p, title, name='qae'):\n    fig, ax = plt.subplots(figsize=(7.4, 3.4))\n    ax.loglog(T['Oracle calls (median)'], T['IQAE abs. error (mean)'], 'o-', color=BLUE, lw=2, label='Iterative amplitude estimation')\n    ax.loglog(T['Oracle calls (median)'], T['MC abs. error at same calls'], 's--', color=AMBER, lw=1.6, label='Monte Carlo, same number of calls')\n    x = np.array(T['Oracle calls (median)'], float)\n    ax.loglog(x, math.sqrt(true_p * (1 - true_p)) / np.sqrt(x) * 0.8, ':', color=GRAY, label='~1/√N (classical)')\n    ax.loglog(x, 1.0 / x, ':', color=NAVY, label='~1/N (quantum, ideal)')\n    ax.set_xlabel('Oracle calls / samples'); ax.set_ylabel('Absolute error'); ax.set_title(title); ax.legend(frameon=False)\n    plt.tight_layout()\n    return savefig(name)\n\n\n# =============================================================================================== public data\nDATA_DIR = 'data'\nURLS = {\n    'ai4i.zip': 'https://archive.ics.uci.edu/static/public/601/ai4i+2020+predictive+maintenance+dataset.zip',\n    'steel.zip': 'https://archive.ics.uci.edu/static/public/198/steel+plates+faults.zip',\n    'secom.zip': 'https://archive.ics.uci.edu/static/public/179/secom.zip',\n    'airfoil.zip': 'https://archive.ics.uci.edu/static/public/291/airfoil+self+noise.zip',\n    'telco.csv': 'https://raw.githubusercontent.com/IBM/telco-customer-churn-on-icp4d/master/data/Telco-Customer-Churn.csv',\n    'ff49.zip': 'https://mba.tuck.dartmouth.edu/pages/faculty/ken.french/ftp/49_Industry_Portfolios_CSV.zip',\n    'Net3.inp': 'https://raw.githubusercontent.com/OpenWaterAnalytics/EPANET/dev/example-networks/Net3.inp',\n    'cmapss.zip': 'https://phm-datasets.s3.amazonaws.com/NASA/6.+Turbofan+Engine+Degradation+Simulation+Data+Set.zip',\n    'creditcard.pq': 'https://data.openml.org/datasets/0000/1597/dataset_1597.pq',\n    'kdd99.pq': 'https://data.openml.org/datasets/0000/1113/dataset_1113.pq',\n    'eeg.pq': 'https://data.openml.org/datasets/0000/1471/dataset_1471.pq',\n}\nSOURCES = {\n    'ai4i': 'UCI Machine Learning Repository — AI4I 2020 Predictive Maintenance Dataset (Matzka, 2020), 10,000 records',\n    'steel': 'UCI Machine Learning Repository — Steel Plates Faults (Buscema et al., 2010), 1,941 plates, 27 features, 7 fault types',\n    'secom': 'UCI Machine Learning Repository — SECOM semiconductor manufacturing (McCann & Johnston, 2008), 1,567 runs, 590 sensors',\n    'airfoil': 'UCI Machine Learning Repository — NASA Airfoil Self-Noise (Brooks, Pope & Marcolini, 1989), 1,503 wind-tunnel runs',\n    'telco': 'IBM Telco Customer Churn sample dataset (7,043 customers), github.com/IBM',\n    'ff49': 'Kenneth R. French Data Library — 49 Industry Portfolios, monthly value-weighted returns (Dartmouth Tuck)',\n    'net3': 'EPANET example network Net3 (US EPA / OpenWaterAnalytics), 92 junctions, 117 pipes',\n    'cmapss': 'NASA Prognostics Center — C-MAPSS turbofan engine degradation simulation, sub-set FD001 (Saxena et al., 2008)',\n    'creditcard': 'ULB Machine Learning Group — Credit Card Fraud Detection (OpenML 1597), 284,807 card transactions, 0.17% fraud',\n    'kdd99': 'KDD Cup 1999 network intrusion data, 10% subset (OpenML 1113), 494,020 connections',\n    'eeg': 'UCI / OpenML 1471 — EEG Eye State (Rösler & Suendermann, 2013), 14 Emotiv channels, 14,980 samples',\n}\n\n\ndef fetch(name):\n    import urllib.request\n    os.makedirs(DATA_DIR, exist_ok=True)\n    path = os.path.join(DATA_DIR, name)\n    if not os.path.exists(path):\n        urllib.request.urlretrieve(URLS[name], path)\n    return path\n\n\ndef _zip_read(zpath, member_suffix, **kw):\n    import zipfile, io\n    with zipfile.ZipFile(zpath) as z:\n        m = [n for n in z.namelist() if n.endswith(member_suffix)][0]\n        return z.read(m)\n\n\ndef load_ai4i():\n    import io\n    df = pd.read_csv(io.BytesIO(_zip_read(fetch('ai4i.zip'), 'ai4i2020.csv')))\n    X = df[['Air temperature [K]', 'Process temperature [K]', 'Rotational speed [rpm]', 'Torque [Nm]', 'Tool wear [min]']].copy()\n    X['Power [W]'] = X['Torque [Nm]'] * X['Rotational speed [rpm]'] * 2 * np.pi / 60\n    X['Temp delta [K]'] = X['Process temperature [K]'] - X['Air temperature [K]']\n    X['Strain [min·Nm]'] = X['Tool wear [min]'] * X['Torque [Nm]']\n    for t in 'LMH':\n        X[f'Type {t}'] = (df['Type'] == t).astype(float)\n    return X, df['Machine failure'].values.astype(int), df\n\n\ndef load_steel():\n    import io\n    raw = _zip_read(fetch('steel.zip'), 'Faults.NNA').decode()\n    A = np.loadtxt(io.StringIO(raw))\n    names = ['X_Minimum', 'X_Maximum', 'Y_Minimum', 'Y_Maximum', 'Pixels_Areas', 'X_Perimeter', 'Y_Perimeter', 'Sum_of_Luminosity',\n             'Minimum_of_Luminosity', 'Maximum_of_Luminosity', 'Length_of_Conveyer', 'TypeOfSteel_A300', 'TypeOfSteel_A400',\n             'Steel_Plate_Thickness', 'Edges_Index', 'Empty_Index', 'Square_Index', 'Outside_X_Index', 'Edges_X_Index', 'Edges_Y_Index',\n             'Outside_Global_Index', 'LogOfAreas', 'Log_X_Index', 'Log_Y_Index', 'Orientation_Index', 'Luminosity_Index', 'SigmoidOfAreas']\n    faults = ['Pastry', 'Z_Scratch', 'K_Scatch', 'Stains', 'Dirtiness', 'Bumps', 'Other_Faults']\n    X = pd.DataFrame(A[:, :27], columns=names)\n    y = np.array(faults)[A[:, 27:].argmax(1)]\n    return X, y\n\n\ndef load_secom():\n    import io\n    X = pd.read_csv(io.BytesIO(_zip_read(fetch('secom.zip'), 'secom.data')), sep=' ', header=None)\n    lab = pd.read_csv(io.BytesIO(_zip_read(fetch('secom.zip'), 'secom_labels.data')), sep=' ', header=None)\n    X = X.loc[:, X.notna().mean() > 0.9]\n    X = X.fillna(X.median())\n    X = X.loc[:, X.std() > 1e-9]\n    return X, (lab[0].values == 1).astype(int)\n\n\ndef load_airfoil():\n    import io\n    A = np.loadtxt(io.BytesIO(_zip_read(fetch('airfoil.zip'), 'airfoil_self_noise.dat')))\n    X = pd.DataFrame(A[:, :5], columns=['Frequency [Hz]', 'Angle of attack [deg]', 'Chord length [m]', 'Free-stream velocity [m/s]', 'Suction-side displacement thickness [m]'])\n    return X, A[:, 5]\n\n\ndef load_telco():\n    df = pd.read_csv(fetch('telco.csv'))\n    df['TotalCharges'] = pd.to_numeric(df['TotalCharges'], errors='coerce').fillna(0)\n    y = (df['Churn'] == 'Yes').astype(int).values\n    num = df[['tenure', 'MonthlyCharges', 'TotalCharges', 'SeniorCitizen']].astype(float)\n    cat = pd.get_dummies(df[['Contract', 'InternetService', 'PaymentMethod', 'OnlineSecurity', 'TechSupport', 'PaperlessBilling', 'Partner', 'Dependents']], drop_first=True).astype(float)\n    return pd.concat([num, cat], axis=1), y, df\n\n\ndef load_creditcard():\n    df = pd.read_parquet(fetch('creditcard.pq'))\n    y = df['Class'].astype(str).str.strip(\"'\").astype(int).values\n    X = df.drop(columns=['Class', 'Time']).astype(float)\n    X['Amount'] = np.log1p(X['Amount'])\n    return X, y\n\n\ndef load_kdd():\n    df = pd.read_parquet(fetch('kdd99.pq'))\n    y = (df.iloc[:, -1].astype(str) != 'normal').astype(int).values\n    X = df.iloc[:, :-1].copy()\n    for c in X.columns:\n        if X[c].dtype == object or str(X[c].dtype).startswith('category'):\n            X[c] = X[c].astype('category').cat.codes\n    return X.astype(float), y, df.iloc[:, -1].astype(str).values\n\n\ndef load_eeg():\n    df = pd.read_parquet(fetch('eeg.pq'))\n    y = (df.iloc[:, -1].astype(str) == '2').astype(int).values\n    X = df.iloc[:, :-1].astype(float)\n    X.columns = ['AF3', 'F7', 'F3', 'FC5', 'T7', 'P7', 'O1', 'O2', 'P8', 'T8', 'FC6', 'F4', 'F8', 'AF4']\n    keep = (np.abs((X - X.median()) / (X.quantile(0.75) - X.quantile(0.25) + 1e-9)) < 8).all(1)   # drop recording spikes\n    return X[keep].reset_index(drop=True), y[keep.values]\n\n\ndef load_cmapss(subset='FD001', horizon=20):\n    import zipfile, io\n    inner = _zip_read(fetch('cmapss.zip'), 'CMAPSSData.zip')\n    with zipfile.ZipFile(io.BytesIO(inner)) as z:\n        txt = z.read(f'train_{subset}.txt').decode()\n    A = np.loadtxt(io.StringIO(txt))\n    cols = ['unit', 'cycle', 'set1', 'set2', 'set3'] + [f's{i}' for i in range(1, 22)]\n    df = pd.DataFrame(A, columns=cols)\n    df['RUL'] = df.groupby('unit')['cycle'].transform('max') - df['cycle']\n    sensors = [c for c in df.columns if c.startswith('s') and df[c].std() > 1e-6]\n    for c in sensors:   # 10-cycle rolling mean per engine (standard smoothing)\n        df[c + '_m'] = df.groupby('unit')[c].transform(lambda v: v.rolling(10, min_periods=1).mean())\n    X = df[[c + '_m' for c in sensors]]\n    return X, (df['RUL'] <= horizon).astype(int).values, df\n\n\ndef load_ff49(start='2000-01', end='2025-12'):\n    import io\n    raw = _zip_read(fetch('ff49.zip'), '49_Industry_Portfolios.csv').decode('latin-1').splitlines()\n    i0 = next(i for i, l in enumerate(raw) if 'Average Value Weighted Returns -- Monthly' in l)\n    hdr = [h.strip() for h in raw[i0 + 1].split(',')]\n    rows = []\n    for l in raw[i0 + 2:]:\n        p = [x.strip() for x in l.split(',')]\n        if len(p) < 2 or not p[0].isdigit() or len(p[0]) != 6:\n            break\n        rows.append(p)\n    df = pd.DataFrame(rows, columns=['date'] + hdr[1:])\n    df['date'] = pd.to_datetime(df['date'], format='%Y%m')\n    df = df.set_index('date').astype(float).replace([-99.99, -999], np.nan) / 100\n    return df.loc[start:end].dropna(axis=1)\n\n\ndef load_net3():\n    import networkx as nx\n    sec, nodes, edges, coords = None, {}, [], {}\n    for line in open(fetch('Net3.inp'), encoding='latin-1'):\n        line = line.split(';')[0].strip()\n        if not line:\n            continue\n        if line.startswith('['):\n            sec = line.upper()\n            continue\n        p = line.split()\n        if sec == '[JUNCTIONS]':\n            nodes[p[0]] = {'kind': 'junction', 'elev': float(p[1]), 'demand': float(p[2]) if len(p) > 2 else 0.0}\n        elif sec == '[RESERVOIRS]':\n            nodes[p[0]] = {'kind': 'reservoir', 'elev': float(p[1]), 'demand': 0.0}\n        elif sec == '[TANKS]':\n            nodes[p[0]] = {'kind': 'tank', 'elev': float(p[1]), 'demand': 0.0}\n        elif sec == '[PIPES]':\n            edges.append((p[1], p[2], {'kind': 'pipe', 'id': p[0], 'length': float(p[3]), 'diameter': float(p[4])}))\n        elif sec in ('[PUMPS]', '[VALVES]'):\n            edges.append((p[1], p[2], {'kind': sec.strip('[]').lower()[:-1], 'id': p[0], 'length': 1.0, 'diameter': 0.0}))\n        elif sec == '[COORDINATES]':\n            coords[p[0]] = (float(p[1]), float(p[2]))\n    G = nx.Graph()\n    for k, v in nodes.items():\n        G.add_node(k, **v, pos=coords.get(k))\n    G.add_edges_from(edges)\n    return G\n\n\n# =============================================================================================== chemistry (VQE)\ndef _ladder(j, n, dagger):\n    from qiskit.quantum_info import SparsePauliOp\n    z = 'Z' * j\n    pre = 'I' * (n - j - 1)\n    return SparsePauliOp([pre + 'X' + z, pre + 'Y' + z], [0.5, (0.5j if dagger else -0.5j) * -1 if False else (-0.5j if dagger else 0.5j)])\n\n\ndef jordan_wigner_hamiltonian(h1, h2, ecore):\n    \"\"\"Molecular Hamiltonian (chemist-notation integrals, spatial orbitals) -> qubit operator via Jordan–Wigner.\n    Spin-orbital order: alpha orbitals 0..m-1, beta orbitals m..2m-1.\"\"\"\n    from qiskit.quantum_info import SparsePauliOp\n    m = h1.shape[0]\n    n = 2 * m\n    cr = [_ladder(j, n, True) for j in range(n)]\n    an = [_ladder(j, n, False) for j in range(n)]\n    terms = [SparsePauliOp(['I' * n], [ecore])]\n    for p in range(m):\n        for q in range(m):\n            if abs(h1[p, q]) > 1e-12:\n                for s in (0, m):\n                    terms.append(h1[p, q] * cr[p + s].dot(an[q + s]))\n    for p, q, r, t in itertools.product(range(m), repeat=4):\n        v = h2[p, q, r, t]\n        if abs(v) < 1e-12:\n            continue\n        for s1 in (0, m):\n            for s2 in (0, m):\n                if p + s1 == r + s2 or q + s1 == t + s2:\n                    continue\n                terms.append(0.5 * v * cr[p + s1].dot(cr[r + s2]).dot(an[t + s2]).dot(an[q + s1]))\n    H = SparsePauliOp.sum(terms).simplify(atol=1e-10)\n    return SparsePauliOp(H.paulis, np.real(H.coeffs)).simplify(atol=1e-10)\n\n\ndef molecule(atom, basis='sto-3g', active=None, charge=0, spin=0, label=''):\n    \"\"\"PySCF RHF -> (optional) CASCI active space -> JW qubit Hamiltonian; exact energy in the correct\n    particle-number sector by sparse diagonalisation; returns dict with HF, exact (CASCI) and the operator.\"\"\"\n    from pyscf import gto, scf, mcscf, ao2mo\n    from scipy.sparse.linalg import eigsh\n    mol = gto.M(atom=atom, basis=basis, charge=charge, spin=spin, verbose=0)\n    mf = scf.RHF(mol).run()\n    if active:\n        ne, no = active\n        mc = mcscf.CASCI(mf, no, ne)\n        h1, ecore = mc.get_h1eff()\n        h2 = ao2mo.restore(1, mc.get_h2eff(), no)\n        e_cas = float(mc.kernel()[0])\n    else:\n        no, ne = mol.nao, mol.nelectron\n        C = mf.mo_coeff\n        h1 = C.T @ mf.get_hcore() @ C\n        h2 = ao2mo.restore(1, ao2mo.kernel(mol, C), no)\n        ecore = mol.energy_nuc()\n        from pyscf import fci\n        e_cas = float(fci.FCI(mf).kernel()[0])\n    H = jordan_wigner_hamiltonian(np.asarray(h1), np.asarray(h2), float(ecore))\n    n = 2 * no\n    Hs = H.to_matrix(sparse=True)\n    idx = np.arange(2 ** n)\n    na = np.array([bin(i & ((1 << no) - 1)).count('1') for i in idx])\n    nb = np.array([bin(i >> no).count('1') for i in idx])\n    sector = np.flatnonzero((na == ne // 2) & (nb == ne - ne // 2))\n    Hsec = Hs[sector][:, sector]\n    e_exact = float(np.linalg.eigvalsh(Hsec.toarray()).min()) if len(sector) <= 4096 else float(eigsh(Hsec, k=1, which='SA')[0][0])\n    hf_bits = [1 if (j < no and j < ne // 2) or (j >= no and j - no < ne - ne // 2) else 0 for j in range(n)]\n    return {'label': label or atom, 'H': H, 'Hs': Hs, 'n_qubits': n, 'n_terms': len(H), 'e_hf': float(mf.e_tot), 'e_exact': e_exact,\n            'e_casci_pyscf': e_cas, 'hf_bits': hf_bits, 'n_electrons': ne, 'n_orbitals': no}\n\n\ndef uccsd_generators(mol):\n    \"\"\"Spin-conserving singles and doubles from the Hartree–Fock reference, as Jordan–Wigner Hermitian generators\n    G_k = i (T_k - T_k^dagger); exp(-i theta G_k) is applied exactly (G_k^3 = G_k).\"\"\"\n    from qiskit.quantum_info import SparsePauliOp\n    m, ne, n = mol['n_orbitals'], mol['n_electrons'], mol['n_qubits']\n    na, nb = ne // 2, ne - ne // 2\n    occ = [j for j in range(na)] + [m + j for j in range(nb)]\n    vir = [j for j in range(na, m)] + [m + j for j in range(nb, m)]\n    spin = lambda j: 0 if j < m else 1\n    cr = [_ladder(j, n, True) for j in range(n)]\n    an = [_ladder(j, n, False) for j in range(n)]\n    exc, gens = [], []\n    pairs = [((i,), (a,)) for i in occ for a in vir if spin(i) == spin(a)]\n    pairs += [((i, j), (a, b)) for i, j in itertools.combinations(occ, 2) for a, b in itertools.combinations(vir, 2)\n              if sorted([spin(i), spin(j)]) == sorted([spin(a), spin(b)])]\n    for o, v in pairs:\n        A = cr[v[0]].dot(an[o[0]]) if len(o) == 1 else cr[v[0]].dot(cr[v[1]]).dot(an[o[1]]).dot(an[o[0]])\n        G = (1j * (A - A.adjoint())).simplify(atol=1e-12)\n        G = SparsePauliOp(G.paulis, np.real(G.coeffs)).simplify(atol=1e-12)\n        if len(G):\n            exc.append((o, v)); gens.append(G)\n    return exc, gens\n\n\ndef uccsd_circuit(mol, theta, gens=None):\n    from qiskit import QuantumCircuit\n    from qiskit.circuit.library import PauliEvolutionGate\n    gens = gens if gens is not None else uccsd_generators(mol)[1]\n    qc = QuantumCircuit(mol['n_qubits'])\n    for j, b in enumerate(mol['hf_bits']):\n        if b:\n            qc.x(j)\n    for t, G in zip(theta, gens):\n        qc.append(PauliEvolutionGate(G, time=float(t)), range(mol['n_qubits']))\n    return qc\n\n\ndef vqe(mol, restarts=2, maxiter=500, seed=7):\n    \"\"\"VQE with the UCCSD ansatz from the Hartree–Fock state. Exact, fast NumPy simulation of the circuit\n    (exp(-i t G) = I + (cos t - 1) G^2 - i sin t G for each excitation generator); L-BFGS-B with restarts.\n    The optimised circuit is rebuilt in Qiskit for the hardware report and cross-checked.\"\"\"\n    from qiskit.quantum_info import Statevector\n    exc, gens = uccsd_generators(mol)\n    Gs = [G.to_matrix(sparse=True).tocsr() for G in gens]\n    G2 = [(g @ g).tocsr() for g in Gs]\n    n = mol['n_qubits']\n    v0 = np.zeros(2 ** n, complex)\n    v0[sum(b << j for j, b in enumerate(mol['hf_bits']))] = 1.0\n    Hs = mol['Hs'].tocsr()\n    hist = []\n\n    def state(th):\n        v = v0.copy()\n        for t, g, g2 in zip(th, Gs, G2):\n            v = v + (math.cos(t) - 1) * (g2 @ v) - 1j * math.sin(t) * (g @ v)\n        return v\n\n    def energy(th):\n        v = state(th)\n        e = float(np.real(np.vdot(v, Hs @ v)))\n        hist.append(e)\n        return e\n    rng = np.random.default_rng(seed)\n    t0 = time.perf_counter()\n    best = None\n    for r in range(restarts):\n        th0 = np.zeros(len(Gs)) if r == 0 else rng.normal(0, 0.1, len(Gs))\n        res = minimize(energy, th0, method='L-BFGS-B', options={'maxiter': maxiter, 'eps': 1e-7})\n        if best is None or res.fun < best.fun:\n            best = res\n    err = best.fun - mol['e_exact']\n    circ = uccsd_circuit(mol, best.x, gens)\n    xcheck = float(abs(np.vdot(Statevector(circ).data, state(best.x))) - 1) if n <= 14 else None\n    return {'e_vqe': float(best.fun), 'error_mha': 1000 * float(err), 'chem_acc': bool(abs(err) < 1.6e-3),\n            'corr_recovered_pct': 100 * float((mol['e_hf'] - best.fun) / max(mol['e_hf'] - mol['e_exact'], 1e-12)),\n            'n_params': len(Gs), 'evals': len(hist), 'time': time.perf_counter() - t0, 'circuit': circ, 'history': hist,\n            'crosscheck': xcheck, 'excitations': exc}\n\n\ndef dissociation_curve(atom_fmt, distances, active=None, reps=2, label=''):\n    rows = []\n    for d in distances:\n        m = molecule(atom_fmt.format(d=d), active=active, label=label)\n        v = vqe(m, restarts=1, maxiter=300)\n        rows.append({'Bond length Å': d, 'Hartree–Fock Ha': m['e_hf'], 'VQE Ha': v['e_vqe'], 'Exact Ha': m['e_exact'],\n                     'VQE error mHa': v['error_mha']})\n    return pd.DataFrame(rows)\n\n\n# =============================================================================================== PQC\ndef pqc_track(cfg, fig_prefix='pqc'):\n    \"\"\"Hybrid post-quantum protection of one domain message + sizes/timings vs classical + volume scaling +\n    Mosca exposure + illustrative crypto-inventory (CBOM) waves. cfg keys: sender, recipient, message (dict),\n    aad, daily_volume, volume_label, volume_source, data_classes {name: years}, migration_years, systems [(name, crypto,\n    horizon, exposure, criticality)], this_year.\"\"\"\n    import os as _os\n    from kyber_py.ml_kem import ML_KEM_768\n    from dilithium_py.ml_dsa import ML_DSA_65\n    from cryptography.hazmat.primitives.asymmetric import x25519, rsa, ec, padding\n    from cryptography.hazmat.primitives import hashes, serialization\n    from cryptography.hazmat.primitives.kdf.hkdf import HKDF\n    from cryptography.hazmat.primitives.ciphers.aead import AESGCM\n    out = {}\n    PLAIN = json.dumps(cfg['message'], ensure_ascii=False).encode()\n    r_x_sk = x25519.X25519PrivateKey.generate(); r_x_pk = r_x_sk.public_key()\n    r_ek, r_dk = ML_KEM_768.keygen()\n    s_pk, s_sk = ML_DSA_65.keygen()\n    info = f\"{cfg['sender']} hybrid X25519+ML-KEM-768\".encode()\n    aad = cfg.get('aad', b'BVK-PQC-v1')\n\n    def seal(pt):\n        eph = x25519.X25519PrivateKey.generate()\n        ss_c = eph.exchange(r_x_pk)\n        ss_q, kct = ML_KEM_768.encaps(r_ek)\n        key = HKDF(algorithm=hashes.SHA256(), length=32, salt=None, info=info).derive(ss_c + ss_q)\n        nonce = _os.urandom(12)\n        ct = AESGCM(key).encrypt(nonce, pt, aad)\n        epk = eph.public_key().public_bytes(serialization.Encoding.Raw, serialization.PublicFormat.Raw)\n        env = epk + kct + nonce + ct\n        return {'env': env, 'sig': ML_DSA_65.sign(s_sk, env), 'kct': kct}\n\n    def open_(m):\n        env, sig = m['env'], m['sig']\n        if not ML_DSA_65.verify(s_pk, env, sig):\n            raise ValueError('signature invalid')\n        epk, kct, nonce, ct = env[:32], env[32:1120], env[1120:1132], env[1132:]\n        ss_c = r_x_sk.exchange(x25519.X25519PublicKey.from_public_bytes(epk))\n        ss_q = ML_KEM_768.decaps(r_dk, kct)\n        key = HKDF(algorithm=hashes.SHA256(), length=32, salt=None, info=info).derive(ss_c + ss_q)\n        return AESGCM(key).decrypt(nonce, ct, aad)\n    msg = seal(PLAIN)\n    ok = open_(msg) == PLAIN\n    tam = dict(msg, env=msg['env'][:-1] + bytes([msg['env'][-1] ^ 1]))\n    try:\n        open_(tam); tamper = False\n    except ValueError:\n        tamper = True\n    out.update({'plaintext_bytes': len(PLAIN), 'envelope_bytes': len(msg['env']), 'signature_bytes': len(msg['sig']),\n                'roundtrip_ok': bool(ok), 'tamper_detected': bool(tamper), 'overhead_bytes': len(msg['env']) + len(msg['sig']) - len(PLAIN)})\n\n    def bench(fn, n=10):\n        t0 = time.perf_counter()\n        for _ in range(n):\n            fn()\n        return (time.perf_counter() - t0) / n * 1000\n    rsa_sk = rsa.generate_private_key(public_exponent=65537, key_size=2048); rsa_pk = rsa_sk.public_key()\n    ec_sk = ec.generate_private_key(ec.SECP256R1()); ec_pk = ec_sk.public_key()\n    m32 = _os.urandom(32)\n    der = lambda pk: len(pk.public_bytes(serialization.Encoding.DER, serialization.PublicFormat.SubjectPublicKeyInfo))\n    oaep = padding.OAEP(mgf=padding.MGF1(hashes.SHA256()), algorithm=hashes.SHA256(), label=None)\n    pss = padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=padding.PSS.MAX_LENGTH)\n    rsa_sig = rsa_sk.sign(m32, pss, hashes.SHA256()); ec_sig = ec_sk.sign(m32, ec.ECDSA(hashes.SHA256()))\n    dsa_sig = ML_DSA_65.sign(s_sk, m32)\n    T = pd.DataFrame([\n        {'Scheme': 'RSA-2048 (key transport)', 'Quantum-safe': 'No', 'Public key B': der(rsa_pk), 'Ciphertext / signature B': 256, 'Op time ms': bench(lambda: rsa_pk.encrypt(m32, oaep))},\n        {'Scheme': 'X25519 (ECDH)', 'Quantum-safe': 'No', 'Public key B': 32, 'Ciphertext / signature B': 32, 'Op time ms': bench(lambda: x25519.X25519PrivateKey.generate().exchange(r_x_pk))},\n        {'Scheme': 'ML-KEM-768 (FIPS 203)', 'Quantum-safe': 'Yes', 'Public key B': len(r_ek), 'Ciphertext / signature B': len(msg['kct']), 'Op time ms': bench(lambda: ML_KEM_768.encaps(r_ek))},\n        {'Scheme': 'RSA-2048 PSS (signature)', 'Quantum-safe': 'No', 'Public key B': der(rsa_pk), 'Ciphertext / signature B': len(rsa_sig), 'Op time ms': bench(lambda: rsa_sk.sign(m32, pss, hashes.SHA256()))},\n        {'Scheme': 'ECDSA P-256 (signature)', 'Quantum-safe': 'No', 'Public key B': der(ec_pk), 'Ciphertext / signature B': len(ec_sig), 'Op time ms': bench(lambda: ec_sk.sign(m32, ec.ECDSA(hashes.SHA256())))},\n        {'Scheme': 'ML-DSA-65 (FIPS 204)', 'Quantum-safe': 'Yes', 'Public key B': len(s_pk), 'Ciphertext / signature B': len(dsa_sig), 'Op time ms': bench(lambda: ML_DSA_65.sign(s_sk, m32), n=3)},\n    ])\n    T['Op time ms'] = T['Op time ms'].round(3)\n    extra = (len(r_ek) + len(msg['kct'])) + (len(dsa_sig) - len(ec_sig))\n    vol = float(cfg['daily_volume'])\n    out.update({'extra_per_message': extra, 'gb_per_day': vol * extra / 1e9, 'gbit_s': vol * extra * 8 / 86400 / 1e9,\n                'daily_volume': vol, 'volume_label': cfg['volume_label'], 'volume_source': cfg.get('volume_source', ''),\n                'mlkem_ct': len(msg['kct']), 'mlkem_pk': len(r_ek), 'mldsa_sig': len(dsa_sig), 'mldsa_pk': len(s_pk)})\n    year = cfg.get('this_year', 2026)\n    y_m = cfg.get('migration_years', 5)\n    sc = {'Aggressive (2030)': 2030, 'Regulatory planning (2035)': 2035, 'Conservative (2040)': 2040}\n    rows = []\n    for d, x in cfg['data_classes'].items():\n        until = year + y_m + x\n        rows.append({'Data class': d, 'x (yrs)': x, 'Protected until': until, **{k: ('AT RISK' if until > z else 'ok') for k, z in sc.items()}})\n    M = pd.DataFrame(rows)\n    fig, ax = plt.subplots(figsize=(8.6, 0.42 * len(rows) + 1.5))\n    for i, (d, x) in enumerate(cfg['data_classes'].items()):\n        ax.barh(i, y_m, left=year, color=GRAY, height=0.55)\n        ax.barh(i, x, left=year + y_m, color=BLUE, height=0.55)\n    for (k, z), c in zip(sc.items(), [AMBER, NAVY, TEAL]):\n        ax.axvline(z, color=c, ls='--', lw=1.4, label=f'Quantum threat — {k}')\n    ax.set_yticks(range(len(rows))); ax.set_yticklabels(list(cfg['data_classes'].keys()), fontsize=8); ax.invert_yaxis()\n    ax.legend(frameon=False, fontsize=7.5, loc='lower right'); ax.set_xlabel('Year')\n    ax.set_title(f'Mosca model: migration ({y_m} yrs, grey) + confidentiality horizon (blue)')\n    plt.tight_layout(); f_mosca = savefig(f'{fig_prefix}_mosca'); plt.close()\n    C = pd.DataFrame(cfg['systems'], columns=['System (illustrative)', 'Typical current crypto', 'Data horizon yrs', 'Exposure', 'Criticality'])\n    C['HNDL risk'] = np.clip(C['Data horizon yrs'] / 4, 1, 5).round(1)\n    C['Priority score'] = (0.4 * C['HNDL risk'] + 0.3 * C['Exposure'] + 0.3 * C['Criticality']).round(2)\n    C['Wave'] = pd.cut(C['Priority score'], [0, 3.2, 4.0, 5.01], labels=['Wave 3 (2030–35)', 'Wave 2 (2028–30)', 'Wave 1 (2026–28)']).astype(str)\n    C = C.sort_values('Priority score', ascending=False).reset_index(drop=True)\n    fig, ax = plt.subplots(figsize=(8.6, 0.36 * len(C) + 1.3))\n    wc = {'Wave 1 (2026–28)': AMBER, 'Wave 2 (2028–30)': BLUE, 'Wave 3 (2030–35)': GRAY}\n    ax.barh(C['System (illustrative)'][::-1], C['Priority score'][::-1], color=[wc[w] for w in C['Wave'][::-1]])\n    from matplotlib.patches import Patch\n    ax.legend(handles=[Patch(color=c, label=w) for w, c in wc.items()], frameon=False, fontsize=8, loc='lower right')\n    ax.set_xlabel('Priority score (illustrative)'); ax.set_title('PQC migration waves — illustrative crypto inventory'); ax.tick_params(axis='y', labelsize=8)\n    plt.tight_layout(); f_cbom = savefig(f'{fig_prefix}_cbom'); plt.close()\n    out.update({'at_risk_2035': int((M['Regulatory planning (2035)'] == 'AT RISK').sum()), 'n_classes': len(M),\n                'wave1': C.loc[C['Wave'] == 'Wave 1 (2026–28)', 'System (illustrative)'].tolist(), 'migration_years': y_m})\n    return T, M, C, out, [f_mosca, f_cbom]\n\n\n# =============================================================================================== narrator\ndef docx_report(path, title, subtitle, sections, meta):\n    \"\"\"Executive Word report. sections: list of dicts {heading, paras:[str], bullets:[str], table: DataFrame|None,\n    figures:[path], note: str}. Every number in the text is produced by the notebook (no hand-typed figures).\"\"\"\n    from docx import Document\n    from docx.shared import Pt, Cm, RGBColor\n    from docx.enum.text import WD_ALIGN_PARAGRAPH\n    from docx.enum.table import WD_TABLE_ALIGNMENT\n    from docx.oxml.ns import qn\n    from docx.oxml import OxmlElement\n    NV, MU, BD, AM = RGBColor(0x18, 0x2B, 0x5E), RGBColor(0x7A, 0x87, 0x9C), RGBColor(0x3B, 0x4A, 0x63), RGBColor(0xC9, 0x8A, 0x1A)\n    doc = Document()\n    st = doc.styles['Normal']; st.font.name = 'Calibri'; st.font.size = Pt(10.5)\n    st.element.rPr.rFonts.set(qn('w:eastAsia'), 'Calibri')\n    for sec in doc.sections:\n        sec.top_margin = sec.bottom_margin = Cm(2.0); sec.left_margin = sec.right_margin = Cm(2.2)\n        hp = sec.header.paragraphs[0]\n        hp.text = f\"BVK Technology — Quantum Business Solutions  |  {meta.get('short', '')} PoC report  |  CONFIDENTIAL\"\n        hp.alignment = WD_ALIGN_PARAGRAPH.RIGHT; hp.runs[0].font.size = Pt(8); hp.runs[0].font.color.rgb = MU\n\n    def P(t, size=10.5, color=None, bold=False, italic=False, after=5):\n        p = doc.add_paragraph(); r = p.add_run(t); r.font.size = Pt(size); r.bold = bold; r.italic = italic\n        if color is not None:\n            r.font.color.rgb = color\n        p.paragraph_format.space_after = Pt(after)\n        return p\n\n    def shade(cell, fill):\n        tcPr = cell._tc.get_or_add_tcPr(); s_ = OxmlElement('w:shd'); s_.set(qn('w:val'), 'clear'); s_.set(qn('w:color'), 'auto'); s_.set(qn('w:fill'), fill); tcPr.append(s_)\n    if meta.get('logo') and os.path.exists(meta['logo']):\n        doc.add_picture(meta['logo'], width=Cm(3.2))\n    p = doc.add_paragraph(); p.paragraph_format.space_before = Pt(40)\n    r = p.add_run(meta.get('kicker', 'QUANTUM SOLUTIONS  |  PROOF OF CONCEPT REPORT')); r.bold = True; r.font.size = Pt(10); r.font.color.rgb = AM\n    P(title, size=23, color=NV, bold=True)\n    P(subtitle, size=12.5, color=BD)\n    P(f\"BVK Technology · İTÜ ARI Teknokent, İstanbul · {meta.get('date', datetime.date.today().strftime('%d %B %Y'))}\", size=10, color=MU)\n    P('This report was written automatically by the BVK Narrator Engine from the executed proof-of-concept notebook. '\n      'Every number is computed in the notebook on public or synthetic data; nothing is typed by hand. Results are simulations '\n      'of quantum algorithms on classical hardware and are always reported next to classical baselines.', size=9.5, color=MU, italic=True)\n    doc.add_page_break()\n    for s in sections:\n        h = doc.add_heading(level=1); rr = h.add_run(s['heading']); rr.font.color.rgb = NV; rr.font.size = Pt(15)\n        for t in s.get('paras', []):\n            P(t)\n        for t in s.get('bullets', []):\n            bp = doc.add_paragraph(style='List Bullet'); bp.add_run(t); bp.paragraph_format.space_after = Pt(3)\n        tb = s.get('table')\n        if tb is not None and len(tb):\n            tb = tb.copy()\n            t = doc.add_table(rows=len(tb) + 1, cols=len(tb.columns)); t.style = 'Table Grid'; t.alignment = WD_TABLE_ALIGNMENT.CENTER\n            for j, c in enumerate(tb.columns):\n                cell = t.cell(0, j); cell.text = ''; rr = cell.paragraphs[0].add_run(str(c)); rr.bold = True; rr.font.size = Pt(8.5); shade(cell, 'EEF4FB')\n            for i, row in enumerate(tb.itertuples(index=False), 1):\n                for j, v in enumerate(row):\n                    cell = t.cell(i, j); cell.text = ''\n                    txt = (f'{v:,.4f}'.rstrip('0').rstrip('.') if isinstance(v, float) and not np.isnan(v) else ('—' if isinstance(v, float) else str(v)))\n                    rr = cell.paragraphs[0].add_run(txt); rr.font.size = Pt(8.5)\n            doc.add_paragraph().paragraph_format.space_after = Pt(2)\n        for f in s.get('figures', []):\n            if f and os.path.exists(f):\n                doc.add_picture(f, width=Cm(16))\n        if s.get('note'):\n            P(s['note'], size=9, color=MU, italic=True)\n    doc.save(path)\n    return path\n\n\ndef to_jsonable(o):\n    if isinstance(o, dict):\n        return {str(k): to_jsonable(v) for k, v in o.items() if not callable(v)}\n    if isinstance(o, (list, tuple)):\n        return [to_jsonable(v) for v in o]\n    if isinstance(o, (np.integer,)):\n        return int(o)\n    if isinstance(o, (np.floating,)):\n        return None if np.isnan(o) else float(o)\n    if isinstance(o, np.ndarray):\n        return to_jsonable(o.tolist()) if o.size <= 64 else None\n    if isinstance(o, pd.DataFrame):\n        return to_jsonable(o.to_dict('records'))\n    if isinstance(o, float):\n        return None if math.isnan(o) else o\n    if isinstance(o, (str, int, bool)) or o is None:\n        return o\n    return None\n\n\ndef environment():\n    import platform, importlib\n    v = {'python': platform.python_version()}\n    for m in ('qiskit', 'qiskit_algorithms', 'numpy', 'scipy', 'sklearn', 'ortools', 'pyscf'):\n        try:\n            v[m] = importlib.import_module(m).__version__\n        except Exception:\n            pass\n    return v\n\n\n# =============================================================================================== track summaries\nTRACKS = []          # every track appends its summary here; the narrator and the results JSON read this list\nHARDWARE = []        # transpilation reports of the circuits each track would send to a QPU\n\n\ndef _hw(name, qc):\n    try:\n        r = hardware_report(qc)\n        r['circuit'] = name\n        HARDWARE.append(r)\n        return r\n    except Exception as e:      # never let a reporting step break a PoC run\n        return {'circuit': name, 'error': str(e)}\n\n\ndef summarise_opt(title, tab, det, L, figures=(), context='', extra_sentences=(), register=True):\n    \"\"\"L: labels {'plan': 'stand plan', 'plans': 'stand plans', 'size': '5 aircraft x 4 stands', 'objective': 'cost'}.\"\"\"\n    ex, rc = det['exact'], det['cp']\n    gap = det['gap']\n    q = det['cp_obj'].q\n    hyb_gap, top_gap = gap(rc['E_hybrid']), (gap(rc['E_top']) if rc['E_top'] is not None else float('nan'))\n    cs = det['cpsat']\n    std = det.get('std')\n    heur = det.get('heuristic')\n    verdict = 'Parity with classical (hybrid)' if (rc['hybrid_feasible'] and hyb_gap <= 0.5) else 'Classical ahead'\n    has_mixer = any(c['mixer'] for c in q.cons)\n    qname = 'QAOA' if len(q.cons) == 0 else ('Constraint-preserving QAOA' if has_mixer else 'QAOA with penalties and an X mixer')\n    if len(q.cons) == 0:\n        valid_txt = ''\n    elif rc['p_feasible'] > 0.999:\n        valid_txt = f\"only ever outputs valid {L['plans']} (100% valid) and \"\n    else:\n        rnd = 'random bit-strings' if not has_mixer else 'random sampling within the mixer space'\n        valid_txt = f\"puts {pct(rc['p_feasible'])} of its output on valid {L['plans']} ({rnd}: {pct(rc['p_feasible_uniform'])}) and \"\n    if cs['x'] is None:\n        s0 = (f\"The {L['size']} instance has {ex['n_feasible']:,} valid {L['plans']} and needs {q.n} qubits. Exact enumeration finds the optimum \"\n              f\"({L['objective']} {ex['E']:.4g}) in {ex['time']:.2f} s; CP-SAT found no plan within its time limit.\")\n    elif cs['optimal']:\n        s0 = (f\"The {L['size']} instance has {ex['n_feasible']:,} valid {L['plans']} and needs {q.n} qubits. Exact enumeration and CP-SAT both \"\n              f\"find the optimum ({L['objective']} {ex['E']:.4g}); CP-SAT proves it in {cs['time']:.2f} s.\")\n    else:\n        s0 = (f\"The {L['size']} instance has {ex['n_feasible']:,} valid {L['plans']} and needs {q.n} qubits. Exact enumeration finds the optimum \"\n              f\"({L['objective']} {ex['E']:.4g}); CP-SAT returns a plan {gap(cs['E']):.1f}% from it within its time limit.\")\n    amp_txt = (f\"the probability of sampling the optimum is {rc['amplification']:.1f}× that of a random valid {L['plan']}\" if has_mixer or not q.cons\n               else f\"the probability of sampling the optimum is {rc['amp_vs_bitstring']:.0f}× that of a random bit-string\")\n    if rc['E_top'] is None:\n        top_txt = \"Taking the best of its 32 most likely outputs: none of them is valid; \"\n    else:\n        top_txt = f\"Taking the best of its 32 most likely outputs gives a {top_gap:.1f}% gap; \"\n    if not rc['hybrid_feasible']:\n        hyb_txt = 'one classical local-search pass does not reach a valid plan — classical solvers are clearly ahead.'\n    else:\n        hyb_txt = (f\"one classical local-search pass brings the hybrid to {hyb_gap:.1f}% — \"\n                   f\"{'the same optimum exact enumeration finds' if hyb_gap <= 1e-6 else ('within 0.5% of the optimum' if hyb_gap <= 0.5 else 'still short of the exact optimum')}.\")\n    s = [s0,\n         f\"{qname} (p={rc['p']}) {valid_txt}moves the expected {L['plan']} {rc['quality_pct']:.0f}% of the way from a random valid {L['plan']} to the optimum; {amp_txt}.\",\n         top_txt + hyb_txt]\n    if std is not None:\n        std_tail = ' — most of its output is wasted.' if std['p_feasible'] < 0.5 else '.'\n        s.append(f\"Standard penalty QAOA (p={std['p']}) puts {pct(std['p_feasible'])} of its probability on valid {L['plans']} \"\n                 f\"(random bit-strings: {pct(std['p_feasible_uniform'])}){std_tail} Encoding constraints in the circuit, not in penalties, decides usefulness.\")\n    if heur is not None:\n        if heur['feasible']:\n            s.append(f\"The rule-based heuristic used today reaches a {gap(heur['E']):.1f}% gap to the optimum — the realistic baseline any solver must beat.\")\n        else:\n            s.append(\"The rule-based heuristic used today returns a plan that breaks a hard rule on this instance — exactly the failure an optimiser removes.\")\n    s += list(extra_sentences)\n    hw = _hw(title, det['cp_obj'].circuit())\n    caveat = (f\"On an IBM Heron-class device (FakeFez model) this circuit transpiles to {hw.get('two_qubit_gates', 0):,} two-qubit gates \"\n              f\"(estimated success probability {fmt_esp(hw.get('esp', 0))}); at this size exact enumeration takes {ex['time']:.2f} s\"\n              + (f\" and CP-SAT {cs['time']:.2f} s\" if cs['x'] is not None else '') + \". The PoC validates the model and the hybrid pipeline, not a speed-up.\")\n    out = {'kind': 'opt', 'title': title, 'verdict': verdict, 'context': context, 'sentences': s, 'caveat': caveat, 'table': tab,\n           'figures': list(figures), 'numbers': {'qubits': q.n, 'n_feasible': ex['n_feasible'], 'p_cp': rc['p'], 'cp_valid': rc['p_feasible'],\n           'quality_pct': rc['quality_pct'], 'amplification': rc['amplification'], 'amp_vs_bitstring': rc['amp_vs_bitstring'], 'top32_gap_pct': top_gap,\n           'hybrid_gap_pct': hyb_gap, 'hybrid_valid': rc['hybrid_feasible'], 'cpsat_status': cs['status'], 'exact_time_s': ex['time'],\n           'cpsat_time_s': cs['time'], 'std_valid': std['p_feasible'] if std else None, 'std_valid_uniform': std['p_feasible_uniform'] if std else None,\n           'heuristic_gap_pct': gap(heur['E']) if heur else None, 'hw_2q': hw.get('two_qubit_gates'), 'hw_esp': hw.get('esp'),\n           'sim_crosscheck': det['cp_obj'].crosscheck() if q.n <= 20 else None}}\n    if rc['quality_pct'] >= 10:\n        out['headline'] = {'value': f\"{rc['quality_pct']:.0f}%\", 'label': f\"QAOA quality, random → optimal ({100 * rc['p_feasible']:.0f}% valid)\"}\n    else:\n        out['headline'] = ({'value': f\"{hyb_gap:.1f}%\", 'label': f\"hybrid gap to optimum · exact solve {min(ex['time'], cs['time'] if cs['x'] is not None else 1e9):.2f} s\"}\n                           if rc['hybrid_feasible'] else {'value': pct(rc['p_feasible']), 'label': 'of QAOA output valid · classical solvers optimal'})\n    if register:\n        TRACKS.append(out)\n    return out\n\n\ndef summarise_qml(title, tab, info, L, figures=(), sweep_gap=None, context='', extra_sentences=(), register=True):\n    d = info['quantum_auc'] - info['best_classical_auc']\n    dcv = info['quantum_cv'] - info['best_classical_cv']\n    verdict = 'Quantum ahead on this data' if d >= 0.01 and dcv >= 0 else ('Parity' if abs(d) < 0.01 or (d > 0 and dcv < 0) else 'Classical ahead')\n    s = [f\"Task: {L['task']}. Data: {L['data']} ({info['n_train']:,} training / {info['n_test']:,} test examples, \"\n         f\"{100 * info['pos_rate_test']:.1f}% positives in test).\",\n         f\"{art(info['q']).capitalize()} {info['q']}-qubit fidelity quantum kernel (ZZ feature map; bandwidth {info['bandwidth']}, C {info['C']} chosen by cross-validation on training data) \"\n         f\"reaches test AUC {info['quantum_auc']:.3f} versus {info['best_classical_auc']:.3f} for the best classical model on the same features \"\n         f\"({info['best_classical'].split(' (')[0]}); cross-validated AUC {info['quantum_cv']:.3f} vs {info['best_classical_cv']:.3f}.\"]\n    if info['beaten']:\n        s.append(f\"It is ahead of {join_names(info['beaten'])} on the hold-out set and behind the others.\" if len(info['beaten']) < 4 else 'It is ahead of every classical model tested on the hold-out set.')\n    else:\n        s.append('It does not beat any of the tuned classical models on the hold-out set.')\n    if info['near_classical_regime']:\n        s.append(f\"The selected bandwidth ({info['bandwidth']}) lies in the low-bandwidth regime where a quantum kernel behaves much like a classical one (Shaydulin & Wild 2022)\"\n                 + (\" — parity is the honest reading.\" if verdict == 'Parity' else \" — it competes here essentially as a classical kernel.\"))\n    if sweep_gap is not None and len(sweep_gap):\n        best_n = int(sweep_gap.idxmax()); worst_n = int(sweep_gap.idxmin())\n        s.append(f\"Training-size sweep: the quantum-minus-best-classical AUC gap ranges from {sweep_gap.min():+.3f} (n={worst_n}) to {sweep_gap.max():+.3f} (n={best_n}).\")\n    s += list(extra_sentences)\n    hw = _hw(title, feature_map_circuit(info['q'], 2))\n    caveat = (f\"Each kernel entry needs {art(info['q'])} {info['q']}-qubit circuit with {hw.get('two_qubit_gates', 0)} two-qubit gates on IBM Heron (ESP {hw.get('esp', 0):.2f}); \"\n              f\"a {info['n_train']:,}-example kernel needs ~{info['n_train'] ** 2 / 2:,.0f} such circuits plus shot noise. Results are noiseless simulations; \"\n              f\"the literature reports no robust quantum advantage on tabular data (Bowles et al. 2024).\")\n    out = {'kind': 'qml', 'title': title, 'verdict': verdict, 'context': context, 'sentences': s, 'caveat': caveat, 'table': tab, 'figures': list(figures),\n           'numbers': {'qubits': info['q'], 'quantum_auc': info['quantum_auc'], 'best_classical_auc': info['best_classical_auc'],\n                       'best_classical': info['best_classical'], 'quantum_cv': info['quantum_cv'], 'best_classical_cv': info['best_classical_cv'],\n                       'auc_gap': d, 'bandwidth': info['bandwidth'], 'n_train': info['n_train'], 'n_test': info['n_test'],\n                       'sweep_gap': {int(k): float(v) for k, v in sweep_gap.items()} if sweep_gap is not None else None,\n                       'hw_2q': hw.get('two_qubit_gates'), 'hw_esp': hw.get('esp')}}\n    out['headline'] = {'value': f\"{d:+.3f}\", 'label': f\"AUC vs best classical ({info['quantum_auc']:.3f} vs {info['best_classical_auc']:.3f})\"}\n    if register:\n        TRACKS.append(out)\n    return out\n\n\ndef summarise_qreg(title, tab, info, L, figures=(), context='', extra_sentences=(), register=True):\n    rel = (info['quantum_rmse'] - info['best_classical_rmse']) / info['best_classical_rmse']\n    verdict = 'Quantum ahead on this data' if rel <= -0.02 else ('Parity' if abs(rel) < 0.02 else 'Classical ahead')\n    s = [f\"Task: {L['task']}. Data: {L['data']}.\",\n         f\"Quantum kernel ridge regression ({info['q']} qubits, bandwidth {info['bandwidth']}) reaches test RMSE {info['quantum_rmse']:.4g} \"\n         f\"(MAPE {info['quantum_mape']:.1f}%) versus {info['best_classical_rmse']:.4g} (MAPE {info['best_classical_mape']:.1f}%) for the best classical model \"\n         f\"({info['best_classical'].split(' (')[0]}) — {abs(100 * rel):.1f}% {'better' if rel < 0 else 'worse'}.\"]\n    if info['beaten']:\n        s.append(f\"It beats {join_names(info['beaten'])} on the hold-out set.\")\n    if info['near_classical_regime']:\n        s.append('The selected bandwidth is in the near-classical regime, so similarity to a classical kernel is expected.')\n    s += list(extra_sentences)\n    hw = _hw(title, feature_map_circuit(info['q'], 2))\n    caveat = (f\"Noiseless simulation; each kernel entry is {art(info['q'])} {info['q']}-qubit circuit with {hw.get('two_qubit_gates', 0)} two-qubit gates on IBM Heron (ESP {hw.get('esp', 0):.2f}). \"\n              f\"Classical gradient boosting remains the production champion until a quantum model wins on a blind hold-out.\")\n    out = {'kind': 'qreg', 'title': title, 'verdict': verdict, 'context': context, 'sentences': s, 'caveat': caveat, 'table': tab, 'figures': list(figures),\n           'numbers': {'qubits': info['q'], 'quantum_rmse': info['quantum_rmse'], 'best_classical_rmse': info['best_classical_rmse'],\n                       'quantum_mape': info['quantum_mape'], 'best_classical_mape': info['best_classical_mape'], 'rel_diff_pct': 100 * rel,\n                       'best_classical': info['best_classical'], 'bandwidth': info['bandwidth'], 'hw_2q': hw.get('two_qubit_gates'), 'hw_esp': hw.get('esp')}}\n    out['headline'] = {'value': f\"{100 * rel:+.1f}%\", 'label': f\"RMSE vs best classical ({info['best_classical'].split(' (')[0]})\"}\n    if register:\n        TRACKS.append(out)\n    return out\n\n\ndef summarise_qae(title, T, info, L, figures=(), context='', extra_sentences=(), register=True):\n    last = T.iloc[-1]\n    s = [f\"Quantity estimated: {L['quantity']} (exact value {info['true_p']:.4g}, computed by enumeration).\",\n         f\"Iterative amplitude estimation reaches an absolute error of {last['IQAE abs. error (mean)']:.2g} with ~{int(last['Oracle calls (median)']):,} oracle calls; \"\n         f\"plain Monte Carlo with the same number of samples errs by {last['MC abs. error at same calls']:.2g} — {info['best_ratio']:.0f}× worse at best — and would need \"\n         f\"~{int(last['MC calls for IQAE error']):,} samples to match.\",\n         f\"This is the textbook quadratic speed-up (error ∝ 1/N instead of 1/√N), achieved here in a noiseless simulation.\"]\n    s += list(extra_sentences)\n    caveat = (f\"The deepest circuit used (Grover power k={info['k_max']}) needs ~{info['twoq_deepest']:,} two-qubit gates on IBM Heron; \"\n              f\"estimated success probability {fmt_esp(info['esp_deepest'])}. Amplitude estimation for risk needs fault-tolerant hardware \"\n              f\"(thousands of logical qubits in published resource estimates) and an efficient way to load the distribution, which this PoC does exactly but expensively.\")\n    out = {'kind': 'qae', 'title': title, 'verdict': 'Speed-up in principle; hardware-gated', 'context': context, 'sentences': s, 'caveat': caveat,\n           'table': T, 'figures': list(figures),\n           'numbers': {'true_p': info['true_p'], 'qubits': info['n_qubits'], 'iqae_err': float(last['IQAE abs. error (mean)']),\n                       'mc_err': float(last['MC abs. error at same calls']), 'calls': int(last['Oracle calls (median)']),\n                       'mc_calls_equiv': int(last['MC calls for IQAE error']), 'best_ratio': info['best_ratio'], 'k_max': info['k_max'],\n                       'hw_2q': info['twoq_deepest'], 'hw_esp': info['esp_deepest']}}\n    out['headline'] = {'value': f\"{info['best_ratio']:.0f}×\", 'label': 'lower error than Monte Carlo at equal calls (noiseless)'}\n    HARDWARE.append({'circuit': title + ' (deepest Grover power)', 'qubits': info['n_qubits'], 'two_qubit_gates': info['twoq_deepest'], 'esp': info['esp_deepest'], 'backend': 'fake_fez'})\n    if register:\n        TRACKS.append(out)\n    return out\n\n\ndef summarise_vqe(title, mol, v, L, figures=(), table=None, context='', extra_sentences=(), register=True):\n    s = [f\"Molecule: {L['molecule']} ({mol['n_electrons']} active electrons in {mol['n_orbitals']} orbitals → {mol['n_qubits']} qubits, \"\n         f\"{mol['n_terms']} Pauli terms).\",\n         f\"VQE with a UCCSD ansatz ({v['n_params']} parameters) reaches {v['e_vqe']:.6f} Ha against the exact {mol['e_exact']:.6f} Ha \"\n         f\"(error {v['error_mha']:.3f} mHa — {'within' if v['chem_acc'] else 'outside'} chemical accuracy of 1.6 mHa), recovering \"\n         f\"{v['corr_recovered_pct']:.0f}% of the correlation energy missed by Hartree–Fock ({mol['e_hf']:.6f} Ha).\"]\n    s += list(extra_sentences)\n    hw = _hw(title, v['circuit'])\n    caveat = (f\"The optimised circuit transpiles to {hw.get('two_qubit_gates', 0):,} two-qubit gates on IBM Heron (ESP {hw.get('esp', 0):.2f}). \"\n              f\"A molecule this small is solved exactly on a laptop; industrially relevant {L.get('target', 'materials')} problems need \"\n              f\"fault-tolerant machines with thousands of logical qubits. The PoC builds the pipeline and the team skill, not an advantage.\")\n    out = {'kind': 'vqe', 'title': title, 'verdict': 'Pipeline ready; advantage needs fault tolerance', 'context': context, 'sentences': s, 'caveat': caveat,\n           'table': table, 'figures': list(figures),\n           'numbers': {'qubits': mol['n_qubits'], 'e_vqe': v['e_vqe'], 'e_exact': mol['e_exact'], 'e_hf': mol['e_hf'], 'error_mha': v['error_mha'],\n                       'chem_acc': v['chem_acc'], 'corr_pct': v['corr_recovered_pct'], 'params': v['n_params'], 'hw_2q': hw.get('two_qubit_gates'), 'hw_esp': hw.get('esp')}}\n    out['headline'] = {'value': f\"{abs(v['error_mha']):.2f} mHa\", 'label': f\"VQE error on {L['molecule'].split(' (')[0]} (chemical accuracy 1.6)\"}\n    if register:\n        TRACKS.append(out)\n    return out\n\n\ndef summarise_pqc(title, T, M, C, out, cfg, figures=(), context='', register=True):\n    g = out['gbit_s']\n    bw_txt = f\"{g:.2f} Gbit/s\" if g >= 1 else (f\"{1000 * g:.1f} Mbit/s\" if g >= 0.001 else f\"{1e6 * g:.0f} kbit/s\")\n    vol_txt = f\"{out['gb_per_day']:,.1f} GB/day\" if out['gb_per_day'] >= 0.1 else f\"{1000 * out['gb_per_day']:,.1f} MB/day\"\n    s = [f\"A {cfg['message_label']} ({out['plaintext_bytes']:,} B) from {cfg['sender']} to {cfg['recipient']} is protected with a hybrid key exchange \"\n         f\"(X25519 + ML-KEM-768, FIPS 203) and an ML-DSA-65 signature (FIPS 204): round-trip {'succeeded' if out['roundtrip_ok'] else 'FAILED'}, \"\n         f\"and a one-bit tamper was {'detected' if out['tamper_detected'] else 'NOT detected'}.\",\n         f\"Post-quantum overhead per message: {out['overhead_bytes']:,} B (ML-KEM ciphertext {out['mlkem_ct']:,} B, ML-DSA signature {out['mldsa_sig']:,} B). \"\n         f\"Upper bound at {out['volume_label']}: {vol_txt} ({bw_txt} on average) if every message carried a fresh key exchange — far less with session reuse.\",\n         f\"Mosca model: {out['at_risk_2035']} of {out['n_classes']} data classes are exposed under a 2035 quantum-threat scenario if migration takes {out['migration_years']} years from 2026.\",\n         f\"Wave-1 systems in the illustrative crypto inventory: {', '.join(out['wave1']) if out['wave1'] else 'none'}.\"]\n    caveat = ('Timings use pure-Python reference implementations of ML-KEM/ML-DSA (far slower than liboqs or HSM firmware) and are for relative '\n              'illustration only; sizes are exact per the FIPS standards. The inventory is a template to be filled in during discovery.')\n    o = {'kind': 'pqc', 'title': title, 'verdict': 'Ready now', 'context': context, 'sentences': s, 'caveat': caveat, 'table': T,\n         'tables_extra': {'mosca': M, 'cbom': C}, 'figures': list(figures),\n         'numbers': {k: v for k, v in out.items()}}\n    o['headline'] = {'value': f\"{out['overhead_bytes'] / 1000:.1f} kB\", 'label': f\"per message · {out['at_risk_2035']}/{out['n_classes']} data classes at risk by 2035\"}\n    if register:\n        TRACKS.append(o)\n    return o\n\n\ndef summarise_generic(kind, title, verdict, sentences, caveat, numbers, headline, table=None, figures=(), context='', register=True):\n    o = {'kind': kind, 'title': title, 'verdict': verdict, 'context': context, 'sentences': list(sentences), 'caveat': caveat, 'table': table,\n         'figures': list(figures), 'numbers': numbers, 'headline': headline}\n    if register:\n        TRACKS.append(o)\n    return o\n\n\ndef write_outputs(meta, report_path, results_path, next_steps=(), method_notes=()):\n    \"\"\"Narrator: executive Word report + machine-readable results for the deck and one-pager generators.\"\"\"\n    secs = [{'heading': '1. What we tested and what we found',\n             'paras': [meta['intro']],\n             'bullets': [f\"{t['title']} — {t['verdict']}: {t['sentences'][1] if len(t['sentences']) > 1 else t['sentences'][0]}\" for t in TRACKS]}]\n    for i, t in enumerate(TRACKS, 2):\n        secs.append({'heading': f\"{i}. {t['title']}\", 'paras': ([t['context']] if t.get('context') else []) + t['sentences'],\n                     'table': t['table'] if isinstance(t.get('table'), pd.DataFrame) else None, 'figures': t['figures'],\n                     'note': f\"Reading with care: {t['caveat']}\"})\n    if HARDWARE:\n        H = pd.DataFrame([{'Circuit': h.get('circuit'), 'Qubits': h.get('qubits'), 'Two-qubit gates (Heron)': h.get('two_qubit_gates'),\n                           'Est. success probability': h.get('esp')} for h in HARDWARE if 'error' not in h])\n        secs.append({'heading': f'{len(TRACKS) + 2}. Hardware readiness', 'paras': [\n            'Every circuit above was transpiled for an IBM Heron r2 model (FakeFez: 156 qubits, calibrated gate and readout errors). '\n            'The estimated success probability multiplies (1 − error) over all gates and measurements — a simple but honest indicator of whether a run '\n            'on today\\'s hardware would return signal or noise.'], 'table': H})\n    secs.append({'heading': f'{len(secs) + 1}. Method, data and reproducibility', 'bullets': list(method_notes) + [\n        f\"Software: {', '.join(f'{k} {v}' for k, v in environment().items())}.\",\n        'All random choices are seeded; the notebook re-creates every table, figure and sentence of this report.',\n        'Quantum circuits are simulated exactly (noiseless) and cross-checked against Qiskit statevector simulation of the same circuits.']})\n    if next_steps:\n        secs.append({'heading': f'{len(secs) + 1}. Recommended next steps', 'bullets': list(next_steps)})\n    docx_report(report_path, meta['report_title'], meta['report_subtitle'], secs, meta)\n    res = {'meta': {k: v for k, v in meta.items() if k not in ('logo',)}, 'generated': datetime.datetime.now().isoformat(timespec='seconds'),\n           'environment': environment(),\n           'tracks': [dict({k: to_jsonable(v) for k, v in t.items() if k not in ('table', 'tables_extra')},\n                           table=(to_jsonable(t['table'].round(4)) if isinstance(t.get('table'), pd.DataFrame) else None),\n                           table_columns=(list(map(str, t['table'].columns)) if isinstance(t.get('table'), pd.DataFrame) else None)) for t in TRACKS],\n           'hardware': to_jsonable(HARDWARE)}\n    with open(results_path, 'w', encoding='utf-8') as f:\n        json.dump(res, f, ensure_ascii=False, indent=1)\n    return res\n"
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "35b4a1dd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:47.549312Z",
     "iopub.status.busy": "2026-10-03T21:34:47.549058Z",
     "iopub.status.idle": "2026-10-03T21:34:48.777274Z",
     "shell.execute_reply": "2026-10-03T21:34:48.776117Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "35b4a1dd",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085885318,
     "user_tz": -180,
     "elapsed": 77,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "900bfd95-4f68-47ab-9725-3e138bc3c564"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "BVK engine loaded · python 3.13.15, qiskit 2.5.2, qiskit_algorithms 0.4.0, numpy 2.1.3, scipy 1.16.3, sklearn 1.6.1, ortools 9.15.6755\n"
     ]
    }
   ],
   "source": "import os, importlib, numpy as np, pandas as pd, matplotlib.pyplot as plt\nfrom IPython.display import display\nimport bvkq as B\nimportlib.reload(B)\nB.setup(seed=7, fig_dir='figs'); B.DATA_DIR = os.environ.get('BVK_DATA_DIR', 'data'); B.TRACKS.clear(); B.HARDWARE.clear()\npd.set_option('display.width', 200); pd.set_option('display.max_columns', 30)\nprint('BVK engine loaded ·', ', '.join(f'{k} {v}' for k, v in B.environment().items()))"
  },
  {
   "cell_type": "markdown",
   "id": "bfd5fe2f",
   "metadata": {
    "id": "bfd5fe2f"
   },
   "source": "---\n## What \"quantum advantage\" can mean for a credit bureau\n\n| Kind | Claim | Where tested |\n|---|---|---|\n| **Better models from the same data** | A quantum kernel learns risk from fewer labelled applicants or reaches a higher AUC | Track 1 (realistic data) and Track 2 (quantum-structured data) |\n| **Fewer samples for the same precision** | Amplitude estimation needs ~1/ε oracle calls where Monte Carlo needs ~1/ε² | Track 3 (portfolio tail risk) |\n| **Raw speed** | A quantum computer finishes sooner | Not tested: today's devices are slower than a laptop for every task here |\n| **Does it survive real hardware?** | The simulated effect is still there on a real QPU | Tracks 3 and 4: rehearsal with device noise, then IBM Fez and Origin Wukong |\n\nEvery quantum result below is reported next to the classical method a bureau or bank would use today, on the same data."
  },
  {
   "cell_type": "markdown",
   "id": "250795a2",
   "metadata": {
    "id": "250795a2"
   },
   "source": "---\n## Hardware configuration — modes, budget presets and credentials\n\n| Setting | Meaning |\n|---|---|\n| `RUN_MODE = \"rehearsal\"` | Everything runs on this CPU. Hardware experiments are rehearsed with each device's error rates. No keys needed. |\n| `RUN_MODE = \"submit\"` | Submits the hardware experiments of the chosen `PRESET` to the backends listed in `BACKENDS`, after printing the QPU budget. Requires `CONFIRM_QPU_SPEND = True`. |\n| `RUN_MODE = \"retrieve\"` | Fetches results of the last logged run (`kkb_hw_jobs.json`) and completes the analysis and the report. |\n| `RUN_MODE = \"dryrun\"` | Runs the complete submit → retrieve → analysis pipeline on local simulators (IBM local testing mode with the FakeFez noise model; pyqpanda3 CPU simulator). No keys, no QPU time. |\n\n| Preset | Track 4 applicants (quantum-structured / realistic control) | Shots | Track 4 Grover powers × repeats | Purpose |\n|---|---|---|---|---|\n| `smoke` | 40 + 40 / — | 500 | 4 × 1 | access, queues, mitigation; < 1 QPU minute |\n| `pilot` | 150 + 150 / 100 + 100 | 1,000 | 7 × 3 | first real test of the advantage |\n| `full` | 600 + 400 / 300 + 300 | 1,000 | 7 × 5 | learning curve on hardware |\n\nCredentials are read from **Colab Secrets** (or environment variables): `IBM_QUANTUM_TOKEN`, `IBM_QUANTUM_INSTANCE` (the instance CRN from quantum.cloud.ibm.com),\n`ORIGIN_QCLOUD_API_KEY`. They are never printed, logged or written to the report."
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "eb3fd498",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:48.781032Z",
     "iopub.status.busy": "2026-10-03T21:34:48.780444Z",
     "iopub.status.idle": "2026-10-03T21:34:48.791326Z",
     "shell.execute_reply": "2026-10-03T21:34:48.790207Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "eb3fd498",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085887019,
     "user_tz": -180,
     "elapsed": 1699,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "f2e6c326-4047-4c99-c213-ba613acf9052"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Mode rehearsal · preset pilot · backends ['ibm_fez', 'wukong'] · IBM credentials found · Origin key not set\n"
     ]
    }
   ],
   "source": "RUN_MODE = 'rehearsal'            # 'rehearsal' | 'dryrun' (whole submit/retrieve pipeline on local simulators) | 'submit' | 'retrieve'\nPRESET = 'pilot'                  # 'smoke' | 'pilot' | 'full'   (use 'smoke' for the first submission)\nBACKENDS = ['ibm_fez', 'wukong']  # remove one to use a single QPU\nCONFIRM_QPU_SPEND = False         # must be True to submit\nWAIT_MINUTES = 20                 # how long a submit run waits for results before asking you to retrieve later\nWUKONG_BACKEND_NAME = None        # None = auto-detect a Wukong backend in your Origin account\nWUKONG_BATCH = 100                # programs per Origin job\nPRESETS = {'smoke': dict(b_train=40, b_test=40, a_train=0, a_test=0, shots=500, qae_shots=1000, qae_repeats=1, ks=[0, 1, 2, 4]),\n           'pilot': dict(b_train=150, b_test=150, a_train=100, a_test=100, shots=1000, qae_shots=2000, qae_repeats=3, ks=[0, 1, 2, 3, 4, 6, 8]),\n           'full': dict(b_train=600, b_test=400, a_train=300, a_test=300, shots=1000, qae_shots=2000, qae_repeats=5, ks=[0, 1, 2, 3, 4, 6, 8])}\nHWS = PRESETS[PRESET]\ndef secret(name):\n    try:\n        from google.colab import userdata\n        v = userdata.get(name)\n        if v:\n            return v\n    except Exception:\n        pass\n    return os.environ.get(name)\n_IBM_TOKEN, _IBM_INSTANCE, _ORIGIN_KEY = secret('IBM_QUANTUM_TOKEN'), secret('IBM_QUANTUM_INSTANCE'), secret('ORIGIN_QCLOUD_API_KEY')\nprint(f\"Mode {RUN_MODE} · preset {PRESET} · backends {BACKENDS} · IBM credentials {'found' if _IBM_TOKEN else 'not set'} · Origin key {'found' if _ORIGIN_KEY else 'not set'}\")"
  },
  {
   "cell_type": "markdown",
   "id": "79526d10",
   "metadata": {
    "id": "79526d10"
   },
   "source": "The BVK hardware layer (`kkbhw.py`): projected-kernel features, the noise rehearsal, the hardware-sized credit-risk oracle, maximum-likelihood amplitude estimation, and the IBM / Origin runners with the job log. Written out in full so every step is inspectable."
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "8865eecf",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:48.794325Z",
     "iopub.status.busy": "2026-10-03T21:34:48.794013Z",
     "iopub.status.idle": "2026-10-03T21:34:48.813615Z",
     "shell.execute_reply": "2026-10-03T21:34:48.811989Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "8865eecf",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085887140,
     "user_tz": -180,
     "elapsed": 118,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "55956807-fd15-4c58-be1d-4f93ac047b38"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Overwriting kkbhw.py\n"
     ]
    }
   ],
   "source": "%%writefile kkbhw.py\n\"\"\"kkbhw — BVK hardware layer for the KKB quantum-advantage stress-test.\n\nRuns the same experiments three ways:\n  * exact simulation (NumPy statevectors, cross-checked against Qiskit),\n  * rehearsal: Pauli-trajectory noise simulation driven by a device calibration (IBM Fez snapshot or any error rates),\n  * real hardware: IBM Fez through Qiskit Runtime (SamplerV2) and Origin Wukong through pyqpanda3 QCloud.\n\nEverything that touches a QPU is logged to a JSON job file so that results can be retrieved later (queues can be long).\nCredentials are never stored here: pass them from Colab Secrets or environment variables.\n\"\"\"\nimport json, math, os, time\nimport numpy as np\n\nR2 = 1 / math.sqrt(2)\nJOBLOG = 'kkb_hw_jobs.json'\n\n\n# ============================================================================ projected quantum kernel (PQK) features\ndef _layers(q):\n    \"\"\"Gate list of Qiskit's zz_feature_map(q, reps=2, entanglement='linear') in its own order.\"\"\"\n    ops = []\n    for _ in range(2):\n        ops += [('h', k) for k in range(q)]\n        ops += [('p1', k) for k in range(q)]\n        for i in range(q - 1):\n            ops += [('cx', i, i + 1), ('p2', i, i + 1), ('cx', i, i + 1)]\n    return ops\n\n\ndef _popcount_table(D):\n    return np.array([bin(i).count('1') for i in range(D)], dtype=np.int8)\n\n\ndef _h(psi, k, q):\n    M = psi.shape[0]\n    v = psi.reshape(M, 2 ** (q - k - 1), 2, 2 ** k)\n    a0, a1 = v[:, :, 0, :].copy(), v[:, :, 1, :].copy()\n    v[:, :, 0, :] = (a0 + a1) * R2\n    v[:, :, 1, :] = (a0 - a1) * R2\n\n\ndef _phase(psi, k, q, phi):\n    M = psi.shape[0]\n    v = psi.reshape(M, 2 ** (q - k - 1), 2, 2 ** k)\n    v[:, :, 1, :] *= np.exp(1j * phi)[:, None, None]\n\n\ndef bloch_from_states(psi, q):\n    \"\"\"Single-qubit Bloch vectors (⟨X⟩, ⟨Y⟩, ⟨Z⟩ per qubit) of a batch of statevectors (little-endian, Qiskit order).\"\"\"\n    N = psi.shape[0]\n    out = np.zeros((N, q, 3))\n    for k in range(q):\n        v = psi.reshape(N, 2 ** (q - k - 1), 2, 2 ** k)\n        a0, a1 = v[:, :, 0, :].reshape(N, -1), v[:, :, 1, :].reshape(N, -1)\n        r01 = np.sum(a0 * a1.conj(), axis=1)\n        out[:, k, 0] = 2 * r01.real\n        out[:, k, 1] = -2 * r01.imag\n        out[:, k, 2] = np.sum(np.abs(a0) ** 2, 1) - np.sum(np.abs(a1) ** 2, 1)\n    return out.reshape(N, 3 * q)\n\n\ndef zz_states(Z, bw, p2=None, p1=None, traj=1, seed=0):\n    \"\"\"Statevectors of the ZZ feature map for angles x = bw·π·z, optionally with Pauli-trajectory noise:\n    after every CX a two-qubit depolarising error with probability p2[pair], after every H a one-qubit depolarising error\n    with probability p1[qubit]. Returns an array (len(Z)*traj, 2**q); trajectories of one point are contiguous.\"\"\"\n    X = bw * np.pi * np.repeat(np.asarray(Z, float), traj, axis=0)\n    M, q = X.shape\n    D = 2 ** q\n    idx = np.arange(D)\n    pc = _popcount_table(D)\n    rng = np.random.default_rng(seed)\n    psi = np.zeros((M, D), complex)\n    psi[:, 0] = 1\n    noisy = p2 is not None\n    for op in _layers(q):\n        if op[0] == 'h':\n            k = op[1]\n            _h(psi, k, q)\n            if noisy and p1 is not None and p1[k] > 0:\n                hit = np.flatnonzero(rng.random(M) < p1[k])\n                if len(hit):\n                    pa = rng.integers(1, 4, len(hit))          # 1=X 2=Y 3=Z\n                    xm = ((pa == 1) | (pa == 2)).astype(int) << k\n                    zm = ((pa == 2) | (pa == 3)).astype(int) << k\n                    sub = np.take_along_axis(psi[hit], idx[None, :] ^ xm[:, None], axis=1)\n                    psi[hit] = sub * (1 - 2 * (pc[idx[None, :] & zm[:, None]] & 1))\n        elif op[0] == 'p1':\n            k = op[1]\n            _phase(psi, k, q, 2 * X[:, k])\n        elif op[0] == 'p2':\n            i, j = op[1], op[2]\n            _phase(psi, j, q, 2 * (np.pi - X[:, i]) * (np.pi - X[:, j]))\n        else:                                               # cx(i, j)\n            i, j = op[1], op[2]\n            perm = idx ^ (((idx >> i) & 1) << j)\n            psi = psi[:, perm]\n            if noisy and p2[i] > 0:\n                hit = np.flatnonzero(rng.random(M) < p2[i])\n                if len(hit):\n                    pa = rng.integers(1, 16, len(hit))     # 15 non-identity two-qubit Paulis\n                    a, b = pa % 4, pa // 4\n                    xm = (((a == 1) | (a == 2)).astype(int) << i) | (((b == 1) | (b == 2)).astype(int) << j)\n                    zm = (((a == 2) | (a == 3)).astype(int) << i) | (((b == 2) | (b == 3)).astype(int) << j)\n                    sub = np.take_along_axis(psi[hit], idx[None, :] ^ xm[:, None], axis=1)\n                    psi[hit] = sub * (1 - 2 * (pc[idx[None, :] & zm[:, None]] & 1))\n    return psi\n\n\ndef bloch_features(Z, bw, chunk=2000):\n    \"\"\"Exact (noiseless) PQK features: 3q Bloch-vector components per applicant.\"\"\"\n    Z = np.asarray(Z, float)\n    q = Z.shape[1]\n    return np.concatenate([bloch_from_states(zz_states(Z[i:i + chunk], bw), q) for i in range(0, len(Z), chunk)])\n\n\ndef noisy_bloch_features(Z, bw, p2, p1, readout, shots=1000, cal_shots=4000, traj=24, seed=0, chunk=400):\n    \"\"\"Rehearsal of a hardware run: Pauli-trajectory channel average, then readout errors, finite shots per basis and the\n    same readout mitigation (per-qubit calibration from all-0 / all-1 circuits) that is applied to real hardware data.\"\"\"\n    Z = np.asarray(Z, float)\n    N, q = Z.shape\n    rng = np.random.default_rng(seed + 1)\n    out = []\n    for c0 in range(0, N, chunk):\n        psi = zz_states(Z[c0:c0 + chunk], bw, p2, p1, traj, seed + c0)\n        bv = bloch_from_states(psi, q).reshape(-1, traj, 3 * q).mean(1)\n        out.append(bv)\n    E = np.concatenate(out).reshape(N, q, 3)\n    r = np.asarray(readout, float)[None, :, None]\n    p1_true = (1 - E) / 2\n    p1_raw = r + (1 - 2 * r) * p1_true\n    p1_hat = rng.binomial(shots, np.clip(p1_raw, 0, 1)) / shots\n    e01 = rng.binomial(cal_shots, np.asarray(readout)) / cal_shots\n    e10 = rng.binomial(cal_shots, np.asarray(readout)) / cal_shots\n    p1_mit = (p1_hat - e01[None, :, None]) / (1 - e01 - e10)[None, :, None]\n    return np.clip(1 - 2 * p1_mit, -1, 1).reshape(N, 3 * q)\n\n\ndef pqk_kernel(A, B=None, gamma=1.0):\n    \"\"\"Projected quantum kernel (Huang et al. 2021): exp(-γ Σ_k ||ρ_k(x) − ρ_k(x')||²_F), with ||Δρ||²_F = ½||Δr||².\"\"\"\n    B = A if B is None else B\n    d2 = (A ** 2).sum(1)[:, None] + (B ** 2).sum(1)[None, :] - 2 * A @ B.T\n    return np.exp(-gamma * 0.5 * np.clip(d2, 0, None))\n\n\ndef pqk_cv(F, y, gammas=(0.25, 0.5, 1, 2, 4), Cs=(1, 10, 100), folds=4, seed=7):\n    from sklearn.svm import SVC\n    from sklearn.model_selection import StratifiedKFold\n    from sklearn.metrics import roc_auc_score\n    best = (-1, None, None)\n    skf = StratifiedKFold(folds, shuffle=True, random_state=seed)\n    for g in gammas:\n        K = pqk_kernel(F, gamma=g)\n        for C in Cs:\n            s = np.mean([roc_auc_score(y[b], SVC(kernel='precomputed', C=C, class_weight='balanced').fit(K[np.ix_(a, a)], y[a]).decision_function(K[np.ix_(b, a)]))\n                         for a, b in skf.split(F, y)])\n            best = max(best, (s, g, C))\n    return {'cv_auc': best[0], 'gamma': best[1], 'C': best[2]}\n\n\ndef pqk_scores(Ftr, ytr, Fte, gamma, C):\n    from sklearn.svm import SVC\n    m = SVC(kernel='precomputed', C=C, class_weight='balanced').fit(pqk_kernel(Ftr, gamma=gamma), ytr)\n    return m.decision_function(pqk_kernel(Fte, Ftr, gamma=gamma))\n\n\n# ============================================================================ circuits (Qiskit) for hardware\ndef pqk_circuit(q, basis):\n    \"\"\"Parameterised ZZ feature map + rotation into the measurement basis ('X', 'Y' or 'Z') + measurement of all qubits.\"\"\"\n    from qiskit.circuit.library import zz_feature_map\n    c = zz_feature_map(q, reps=2, entanglement='linear').copy()\n    if basis == 'X':\n        c.h(range(q))\n    elif basis == 'Y':\n        c.sdg(range(q)); c.h(range(q))\n    c.measure_all()\n    return c\n\n\ndef readout_cal_circuits(q):\n    from qiskit import QuantumCircuit\n    c0 = QuantumCircuit(q); c0.measure_all()\n    c1 = QuantumCircuit(q); c1.x(range(q)); c1.measure_all()\n    return [c0, c1]\n\n\ndef credit_oracle(pds, rhos):\n    \"\"\"Hardware-sized credit-risk oracle (Egger et al. 2021 structure, two obligors):\n    qubit 0 = systematic factor Z on the two-point Gauss–Hermite grid z = ±1 (weights ½),\n    qubits 1, 2 = default indicators with P(default | z) = Φ((Φ⁻¹(PD) − √ρ z)/√(1−ρ)).\n    Good state = at least one default (\"any loss on the two exposures\"). Returns (A, oracle, exact probability).\"\"\"\n    from scipy.stats import norm\n    from qiskit import QuantumCircuit\n    A = QuantumCircuit(3, name='A')\n    A.h(0)                                                     # |0> ↔ z = +1, |1> ↔ z = −1\n    p_none = 0.0\n    for j, (pd, rho) in enumerate(zip(pds, rhos), start=1):\n        a = [2 * math.asin(math.sqrt(norm.cdf((norm.ppf(pd) - math.sqrt(rho) * z) / math.sqrt(1 - rho)))) for z in (+1, -1)]\n        A.ry((a[0] + a[1]) / 2, j); A.cx(0, j); A.ry((a[0] - a[1]) / 2, j); A.cx(0, j)\n    for z in (+1, -1):\n        pr = 0.5\n        for pd, rho in zip(pds, rhos):\n            pr *= 1 - norm.cdf((norm.ppf(pd) - math.sqrt(rho) * z) / math.sqrt(1 - rho))\n        p_none += pr\n    oracle = QuantumCircuit(3, name='S_chi')                   # phase flip of the \"no default\" state ≡ flip of good states up to −1\n    oracle.x([1, 2]); oracle.cz(1, 2); oracle.x([1, 2])\n    return A, oracle, 1 - p_none\n\n\ndef grover_power_circuits(A, oracle, ks):\n    from qiskit import QuantumCircuit, ClassicalRegister\n    from qiskit.circuit.library import grover_operator\n    Q = grover_operator(oracle, state_preparation=A)\n    out = []\n    for k in ks:\n        c = QuantumCircuit(A.num_qubits)\n        c.compose(A, inplace=True)\n        for _ in range(k):\n            c.compose(Q, inplace=True)\n        cr = ClassicalRegister(2, 'meas'); c.add_register(cr); c.measure([1, 2], cr)\n        out.append(c)\n    return out, Q\n\n\ndef good_fraction(counts):\n    \"\"\"Share of shots with at least one default (bitstrings over the two obligor bits).\"\"\"\n    tot = sum(counts.values())\n    return sum(v for k, v in counts.items() if k.replace(' ', '')[-2:] != '00') / tot\n\n\ndef mlae(ks, hits, shots, noise_aware=False, mixed_good=0.75):\n    \"\"\"Maximum-likelihood amplitude estimation (Suzuki et al. 2020) over Grover powers ks; with noise_aware=True the\n    signal decays as F^(2k+1) towards the fully mixed value (Tanaka et al. 2021), and F is fitted jointly with θ.\"\"\"\n    ks = np.asarray(ks); hits = np.asarray(hits, float); shots = np.asarray(shots, float)\n    th = np.linspace(1e-4, np.pi / 2 - 1e-4, 6000)[:, None]\n    Fs = np.linspace(0.5, 1.0, 101) if noise_aware else np.array([1.0])\n    best = (-np.inf, None, None)\n    for F in Fs:\n        damp = F ** (2 * ks + 1)\n        p = damp * np.sin((2 * ks + 1) * th) ** 2 + (1 - damp) * mixed_good\n        p = np.clip(p, 1e-9, 1 - 1e-9)\n        ll = (hits * np.log(p) + (shots - hits) * np.log(1 - p)).sum(1)\n        i = int(np.argmax(ll))\n        if ll[i] > best[0]:\n            best = (ll[i], float(th[i, 0]), float(F))\n    return {'p': math.sin(best[1]) ** 2, 'theta': best[1], 'F': best[2]}\n\n\n# ============================================================================ calibration snapshots\ndef ibm_line_calibration(backend, q, seed=7):\n    \"\"\"Transpile the q-qubit ZZ map for an IBM backend and read the calibrated errors on the qubits it lands on.\"\"\"\n    from qiskit import transpile\n    from qiskit.circuit.library import zz_feature_map\n    c = zz_feature_map(q, reps=2, entanglement='linear').copy(); c.measure_all()\n    t = transpile(c, backend, optimization_level=3, seed_transpiler=seed)\n    lay = list(t.layout.final_index_layout()[:q])\n    T = backend.target\n    def err(g, qs):\n        try:\n            return T[g][qs].error or 0.0\n        except Exception:\n            return None\n    p2 = []\n    for i in range(q - 1):\n        a, b = lay[i], lay[i + 1]\n        e = None\n        for g in ('cz', 'ecr', 'cx'):\n            e = err(g, (a, b)) if err(g, (a, b)) is not None else err(g, (b, a))\n            if e is not None:\n                break\n        p2.append(e if e is not None else np.nan)\n    p1 = [err('sx', (p,)) or 0.0 for p in lay]\n    ro = [err('measure', (p,)) or 0.0 for p in lay]\n    n2q = sum(1 for ins in t.data if len(ins.qubits) == 2)\n    return {'layout': lay, 'p2': np.array(p2), 'p1': np.array(p1), 'readout': np.array(ro), 'two_qubit_gates': n2q}\n\n\ndef ibm_backend_summary(backend):\n    T = backend.target\n    nq = backend.num_qubits\n    g2 = next((g for g in ('cz', 'ecr', 'cx') if g in T.operation_names), None)\n    e2 = [p.error for p in T[g2].values() if p is not None and p.error is not None] if g2 else []\n    ro = [T['measure'][(i,)].error for i in range(nq) if T['measure'].get((i,)) is not None and T['measure'][(i,)].error is not None]\n    t1 = [backend.qubit_properties(i).t1 for i in range(nq) if backend.qubit_properties(i) and backend.qubit_properties(i).t1]\n    t2 = [backend.qubit_properties(i).t2 for i in range(nq) if backend.qubit_properties(i) and backend.qubit_properties(i).t2]\n    return {'backend': backend.name, 'qubits': nq, 'two_qubit_gate': g2, 'median_2q_error': float(np.median(e2)) if e2 else None,\n            'median_readout_error': float(np.median(ro)) if ro else None, 'median_T1_us': float(np.median(t1) * 1e6) if t1 else None,\n            'median_T2_us': float(np.median(t2) * 1e6) if t2 else None}\n\n\n# ============================================================================ job log\ndef log_job(entry, path=None):\n    path = path or JOBLOG\n    log = json.load(open(path)) if os.path.exists(path) else []\n    entry = dict(entry, logged=time.strftime('%Y-%m-%d %H:%M:%S'))\n    log.append(entry)\n    json.dump(log, open(path, 'w'), indent=1)\n    return entry\n\n\ndef read_log(path=None):\n    path = path or JOBLOG\n    return json.load(open(path)) if os.path.exists(path) else []\n\n\n# ============================================================================ IBM Quantum (Qiskit Runtime)\nclass IBMRunner:\n    \"\"\"IBM Quantum Platform via Qiskit Runtime SamplerV2. mode='cloud' needs token + instance (CRN);\n    mode='local' runs the identical code path on a fake backend (local testing mode) for dry runs.\"\"\"\n\n    def __init__(self, backend_name='ibm_fez', token=None, instance=None, mode='cloud', twirling=True, dd=True):\n        self.mode = mode\n        if mode == 'local':\n            from qiskit_ibm_runtime.fake_provider import FakeFez\n            self.service, self.backend = None, FakeFez()\n        else:\n            from qiskit_ibm_runtime import QiskitRuntimeService\n            self.service = QiskitRuntimeService(channel='ibm_quantum_platform', token=token, instance=instance)\n            self.backend = self.service.backend(backend_name)\n        self.name = self.backend.name\n        self.twirling, self.dd = twirling, dd\n        self._local_results = {}\n\n    def isa(self, circuits, initial_layout=None):\n        from qiskit.transpiler import generate_preset_pass_manager\n        pm = generate_preset_pass_manager(optimization_level=3, backend=self.backend, seed_transpiler=7, initial_layout=initial_layout)\n        return pm.run(circuits)\n\n    def submit(self, pubs, shots, tag):\n        from qiskit_ibm_runtime import SamplerV2\n        s = SamplerV2(mode=self.backend)\n        if self.mode != 'local':\n            s.options.dynamical_decoupling.enable = self.dd\n            s.options.twirling.enable_gates = self.twirling\n            s.options.twirling.enable_measure = False\n            s.options.environment.job_tags = ['bvk-kkb', tag]\n        job = s.run(pubs, shots=shots)\n        jid = job.job_id()\n        if self.mode == 'local':\n            self._local_results[jid] = job.result()\n        return jid\n\n    def status(self, jid):\n        if self.mode == 'local':\n            return 'DONE'\n        st = self.service.job(jid).status()\n        return st if isinstance(st, str) else st.name\n\n    def fetch(self, jid):\n        \"\"\"Returns a list (one per PUB) of bit arrays with shape (*parameter_shape, shots, num_bits); bit k = classical bit k.\"\"\"\n        res = self._local_results[jid] if self.mode == 'local' else self.service.job(jid).result()\n        out = []\n        for pr in res:\n            ba = next(iter(pr.data.values()))\n            bits = np.unpackbits(ba.array, axis=-1)[..., ::-1][..., :ba.num_bits]\n            out.append(bits)\n        return out\n\n    def usage_seconds(self, jid):\n        if self.mode == 'local':\n            return 0.0\n        job = self.service.job(jid)\n        try:\n            return float(job.usage())\n        except Exception:\n            try:\n                return float(job.metrics()['usage']['quantum_seconds'])\n            except Exception:\n                return float('nan')\n\n\n# ============================================================================ Origin Wukong (pyqpanda3 QCloud)\ndef to_qprog(circuit):\n    \"\"\"Qiskit circuit → pyqpanda3 QProg through OpenQASM 2 (basis u3 + cz, which the Origin compiler accepts).\"\"\"\n    from qiskit import transpile, qasm2\n    from pyqpanda3.intermediate_compiler import convert_qasm_string_to_qprog\n    t = transpile(circuit, basis_gates=['u3', 'cz'], optimization_level=1)\n    return convert_qasm_string_to_qprog(qasm2.dumps(t))\n\n\nclass WukongRunner:\n    \"\"\"Origin Quantum cloud via pyqpanda3. mode='cloud' needs an API key; mode='local' runs the identical conversion and\n    result parsing on pyqpanda3's CPU simulator (dry run). Vendor readout correction ('amend') is switched on.\"\"\"\n\n    def __init__(self, api_key=None, backend_name=None, mode='cloud', block_qubits=None, amend=True):\n        self.mode, self.amend = mode, amend\n        self._local = {}\n        if mode == 'local':\n            self.name = 'pyqpanda3 CPUQVM'\n            return\n        from pyqpanda3 import qcloud\n        self.qcloud = qcloud\n        self.service = qcloud.QCloudService(api_key=api_key)\n        names = self.service.backends()\n        if backend_name is None:\n            cands = [n for n, ok in names.items() if ok and any(s in n.lower() for s in ('wukong', 'wk_', 'wk-', '72', '180'))]\n            backend_name = cands[0] if cands else None\n        if backend_name is None:\n            raise RuntimeError(f'No Wukong backend found among {list(names)} — set WUKONG_BACKEND_NAME.')\n        self.name = backend_name\n        self.backend = self.service.backend(backend_name)\n        self.block = None\n        if block_qubits:\n            try:\n                bb = self.backend.best_qubit_blocks(block_qubits)\n                self.block = bb.block(0) if not bb.empty() else None\n            except Exception:\n                self.block = None\n\n    def calibration(self):\n        if self.mode == 'local':\n            return {}\n        ci = self.backend.chip_info()\n        f2 = [d.get_fidelity() for d in ci.double_qubits_info()]\n        sq = ci.single_qubit_info()\n        fr = [s.get_readout_fidelity() for s in sq]\n        f1 = [s.get_single_gate_fidelity() for s in sq]\n        t1 = [s.get_t1() for s in sq]; t2 = [s.get_t2() for s in sq]\n        med = lambda v: float(np.median([x for x in v if x and x > 0])) if any(x and x > 0 for x in v) else None\n        def to_err(f):\n            if f is None:\n                return None\n            return 1 - (f / 100 if f > 1 else f)\n        return {'backend': self.name, 'chip_id': ci.chip_id(), 'qubits': ci.qubits_num(), 'available_qubits': len(ci.available_qubits()),\n                'median_2q_error': to_err(med(f2)), 'median_1q_error': to_err(med(f1)), 'median_readout_error': to_err(med(fr)),\n                'median_T1_us': med(t1), 'median_T2_us': med(t2), 'basis_gates': ci.get_basic_gates()}\n\n    def submit(self, circuits, shots, tag, batch=200):\n        progs = [to_qprog(c) for c in circuits]\n        ids = []\n        for b0 in range(0, len(progs), batch):\n            chunk = progs[b0:b0 + batch]\n            if self.mode == 'local':\n                from pyqpanda3.core import CPUQVM\n                res = []\n                for p in chunk:\n                    m = CPUQVM(); m.run(p, shots); res.append(m.result().get_counts())\n                jid = f'local-{tag}-{b0}-{time.time_ns()}'\n                self._local[jid] = res\n            else:\n                opt = self.qcloud.QCloudOptions()\n                opt.set_mapping(True); opt.set_optimization(True); opt.set_amend(self.amend)\n                if self.block:\n                    try:\n                        opt.set_specified_block(self.block)\n                    except Exception:\n                        pass\n                jid = self.backend.run(chunk, shots, opt).job_id()\n            ids.append(jid)\n        return ids\n\n    def status(self, jid):\n        if self.mode == 'local':\n            return 'FINISHED'\n        return self.qcloud.QCloudJob(jid).status().name\n\n    def fetch(self, jids, shots):\n        \"\"\"Returns a list of {bitstring: count} dictionaries in submission order (probabilities × shots if only probabilities are returned).\"\"\"\n        out = []\n        for jid in jids:\n            if self.mode == 'local':\n                out += self._local[jid]\n                continue\n            r = self.qcloud.QCloudJob(jid).result()\n            try:\n                out += [{k: v * shots for k, v in d.items()} for d in r.get_probs_list()]\n            except Exception:\n                out += r.get_counts_list()\n        return out\n\n\ndef p1_from_counts(counts, q):\n    \"\"\"Per-qubit probability of reading 1 from a {bitstring: count} dictionary (qubit 0 = rightmost character).\"\"\"\n    tot = sum(counts.values())\n    p = np.zeros(q)\n    for k, v in counts.items():\n        b = k.replace(' ', '')[::-1]\n        for i in range(min(q, len(b))):\n            if b[i] == '1':\n                p[i] += v\n    return p / tot\n\n\ndef bloch_from_p1(p1_xyz, e01=None, e10=None):\n    \"\"\"p1_xyz: array (N, 3, q) of P(read 1) in the X, Y, Z bases → mitigated Bloch features (N, 3q) in (X,Y,Z)-per-qubit order.\"\"\"\n    p = np.asarray(p1_xyz, float)\n    if e01 is not None:\n        p = (p - e01[None, None, :]) / (1 - e01 - e10)[None, None, :]\n    E = np.clip(1 - 2 * p, -1, 1)                  # (N, 3, q)\n    return np.transpose(E, (0, 2, 1)).reshape(len(E), -1)\n\n\n# ============================================================================ budget\ndef ibm_qpu_seconds(n_circuits, shots, n_jobs=1, rep_delay=250e-6, circuit_us=10.0, job_overhead_s=2.0):\n    \"\"\"Planning estimate of IBM QPU seconds: shots × (repetition delay + circuit time) + per-job overhead.\n    Replace with job.usage() after the first (smoke) run.\"\"\"\n    return n_circuits * shots * (rep_delay + circuit_us * 1e-6) + n_jobs * job_overhead_s\n"
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "fd07a45d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:48.816100Z",
     "iopub.status.busy": "2026-10-03T21:34:48.815840Z",
     "iopub.status.idle": "2026-10-03T21:34:49.267710Z",
     "shell.execute_reply": "2026-10-03T21:34:49.266608Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 201
    },
    "id": "fd07a45d",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085930602,
     "user_tz": -180,
     "elapsed": 43460,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "69443190-18da-45aa-834a-f870d89a839a"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stderr",
     "text": [
      "qiskit_runtime_service._discover_account:WARNING:2026-10-04 03:51:27,026: Loading account with the given token. A saved account will not be used.\n",
      "qiskit_runtime_service.__init__:WARNING:2026-10-04 03:52:05,520: Instance was not set at service instantiation. Free and trial plan instances will be prioritized. Based on the following filters: (tags: None, region: us-east, eu-de), and available plans: (open), the available account instances are: student-ahmeteminselvi, student-cesur.bagci, student-gamzekevser.temur, student-ahmet.bilgen, student-gumusemirhan, student-selimserdartafrali, student-onur.gungor2, student-serdalkorkutavci, student-ozlemdundar_sau, student-ozden.ayberk, student-2533101003, student-asyrigel, student-atilla.bcn, student-emre62722, student-yekta.sokelen, student-serhatsevim01, student-ozdemir, student-mehmetbozdemir21, student-hie, student-suleymanemir94041, student-ubilecen, student-pinar.tan.ozcan, student-stglysn, student-h.emredemirel, student-yuce.nursultan, student-tsinanergun, student-cagri20049, student-gulsugun02, student-k.iremkaynar, student-yasinntosun, student-tevfik.sen, student-2533101003, student-denizguzelay, student-muh.oguz.sezgin, open-instance, student-mervekaragoz7, student-cempeker1985, student-cuneytsargullar, student-acarsefa621, student-betul.altinok, student-mustafamurathazneci, student-seo.fates, student-eyup.erkaya, student-onur.gungor2, student-sina.kusoglu. If you need a specific instance set it explicitly either by using a saved account with a saved default instance or passing it in directly to QiskitRuntimeService(). Alternatively, pass instance='auto' or save it to your account for auto-selection without warning.\n",
      "qiskit_runtime_service.backends:WARNING:2026-10-04 03:52:05,521: Using instance: student-ahmeteminselvi, plan: open\n"
     ]
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Connected to IBM Quantum: ibm_fez\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "         backend  qubits two_qubit_gate  median_2q_error  median_readout_error  median_T1_us  median_T2_us                                             source\n",
       "0        ibm_fez   156.0             cz         0.002712              0.008789    126.626405     86.461368                                   live calibration\n",
       "1  Origin Wukong     NaN            NaN              NaN                   NaN           NaN           NaN  pending — set ORIGIN_QCLOUD_API_KEY to read li..."
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-795b4b9a-4a66-4f8e-badd-d692336186d8\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>backend</th>\n",
       "      <th>qubits</th>\n",
       "      <th>two_qubit_gate</th>\n",
       "      <th>median_2q_error</th>\n",
       "      <th>median_readout_error</th>\n",
       "      <th>median_T1_us</th>\n",
       "      <th>median_T2_us</th>\n",
       "      <th>source</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>ibm_fez</td>\n",
       "      <td>156.0</td>\n",
       "      <td>cz</td>\n",
       "      <td>0.002712</td>\n",
       "      <td>0.008789</td>\n",
       "      <td>126.626405</td>\n",
       "      <td>86.461368</td>\n",
       "      <td>live calibration</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Origin Wukong</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>pending — set ORIGIN_QCLOUD_API_KEY to read li...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-795b4b9a-4a66-4f8e-badd-d692336186d8')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-795b4b9a-4a66-4f8e-badd-d692336186d8 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-795b4b9a-4a66-4f8e-badd-d692336186d8');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_5361939f-1cb5-4b28-8638-19f4d4ead345\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('CAL')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_5361939f-1cb5-4b28-8638-19f4d4ead345 button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('CAL');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "CAL",
       "summary": "{\n  \"name\": \"CAL\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"backend\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Origin Wukong\",\n          \"ibm_fez\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"qubits\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 156.0,\n        \"max\": 156.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          156.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"two_qubit_gate\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 1,\n        \"samples\": [\n          \"cz\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"median_2q_error\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 0.0027117621597654573,\n        \"max\": 0.0027117621597654573,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.0027117621597654573\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"median_readout_error\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 0.0087890625,\n        \"max\": 0.0087890625,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.0087890625\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"median_T1_us\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 126.62640494203201,\n        \"max\": 126.62640494203201,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          126.62640494203201\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"median_T2_us\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": null,\n        \"min\": 86.46136827381379,\n        \"max\": 86.46136827381379,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          86.46136827381379\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"source\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"pending \\u2014 set ORIGIN_QCLOUD_API_KEY to read live calibration\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    }
   ],
   "source": "import sys\nimport kkbhw as H; importlib.reload(H)\nIBM, WK, WK_CAL, IBM_LIVE = None, None, None, False\nif RUN_MODE == 'dryrun':\n    import importlib.util, subprocess\n    if 'wukong' in BACKENDS and importlib.util.find_spec('pyqpanda3') is None:\n        subprocess.run([sys.executable, '-m', 'pip', 'install', '-q', 'pyqpanda3'], check=True)\n    IBM = H.IBMRunner(mode='local') if 'ibm_fez' in BACKENDS else None\n    WK = H.WukongRunner(mode='local') if 'wukong' in BACKENDS else None\n    H.JOBLOG = 'kkb_hw_jobs_dryrun.json'\n    print('Dry run: IBM local testing mode (FakeFez noise model) and pyqpanda3 CPU simulator — no QPU is contacted.')\nelif 'ibm_fez' in BACKENDS and _IBM_TOKEN:\n    try:\n        IBM = H.IBMRunner('ibm_fez', token=_IBM_TOKEN, instance=_IBM_INSTANCE); IBM_LIVE = True\n        print('Connected to IBM Quantum:', IBM.name)\n    except Exception as e:\n        print('IBM connection failed:', type(e).__name__, str(e)[:200])\nif 'wukong' in BACKENDS and _ORIGIN_KEY and RUN_MODE != 'dryrun':\n    try:\n        import importlib.util, subprocess\n        if importlib.util.find_spec('pyqpanda3') is None:\n            subprocess.run([sys.executable, '-m', 'pip', 'install', '-q', 'pyqpanda3'], check=True)\n        WK = H.WukongRunner(_ORIGIN_KEY, WUKONG_BACKEND_NAME, block_qubits=10)\n        WK_CAL = WK.calibration(); print('Connected to Origin Quantum:', WK.name)\n    except Exception as e:\n        print('Origin connection failed:', type(e).__name__, str(e)[:200])\nfrom qiskit_ibm_runtime.fake_provider import FakeFez\nFEZ_BE = IBM.backend if IBM_LIVE else FakeFez()\nCAL_ROWS = [dict(H.ibm_backend_summary(FEZ_BE), source='live calibration' if IBM_LIVE else 'FakeFez calibration snapshot (qiskit-ibm-runtime)')]\nif WK_CAL:\n    CAL_ROWS.append(dict({k: WK_CAL.get(k) for k in ('backend', 'qubits', 'median_2q_error', 'median_readout_error', 'median_T1_us', 'median_T2_us')}, two_qubit_gate='CZ', source='live chip_info (Origin QCloud)'))\nelse:\n    CAL_ROWS.append({'backend': 'Origin Wukong', 'source': 'pending — set ORIGIN_QCLOUD_API_KEY to read live calibration'})\nCAL = pd.DataFrame(CAL_ROWS); display(CAL)"
  },
  {
   "cell_type": "markdown",
   "id": "92be3a30",
   "metadata": {
    "id": "92be3a30"
   },
   "source": "---\n## The data — a synthetic credit-bureau file built to be hard\n\nKKB data cannot leave KKB, so this notebook builds a **synthetic bureau file** with the properties that make real credit data difficult:\n\n| Property | How it is built |\n|---|---|\n| **Volume** | 100,000 applicants; 2024 = development vintage, 2025 = out-of-time (OOT) test vintage |\n| **Breadth** | 39 attributes: demographics, region, employment, sector, income, cards, loans, overdraft (KMH), utilisation, delinquency (DPD 12/24 m), inquiries, returned cheques, restructuring, balance trend, minimum-payment behaviour, BNPL, alternative (telco/utility) score |\n| **Non-linear risk** | Hidden financial-health factor; hinge in debt burden; utilisation × balance-trend interaction; inquiry bursts; thin-file × no-salary-account; sector × employment effects |\n| **Drift** | 2025 sector shock (construction, tourism), nominal wage growth, more cards and BNPL, higher rates → default rate rises out of time |\n| **Messy values** | Structural missing values (no card → no utilisation), informative missingness (alternative score missing more often for risky thin files), undeclared income, data-entry outliers |\n\nThe generator is seeded and printed in full below — anyone can audit or change it."
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1424cc66",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:49.270835Z",
     "iopub.status.busy": "2026-10-03T21:34:49.270495Z",
     "iopub.status.idle": "2026-10-03T21:34:50.855166Z",
     "shell.execute_reply": "2026-10-03T21:34:50.854112Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 560
    },
    "id": "1424cc66",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085935640,
     "user_tz": -180,
     "elapsed": 5044,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "6bcba180-d9a4-40f7-91c1-c4b4a7ea280f"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "100,000 applicants · 38 attributes (55 model columns after encoding)\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "         applicants  default_rate  median_income  mean_card_util  mean_bnpl  mean_inquiries_12m\n",
       "vintage                                                                                        \n",
       "2024          50280         0.041        46830.0           0.308      0.551               1.880\n",
       "2025          49720         0.060        63560.0           0.389      1.153               2.201"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-f92fa1b9-2a0c-4383-b772-a610ca947617\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>applicants</th>\n",
       "      <th>default_rate</th>\n",
       "      <th>median_income</th>\n",
       "      <th>mean_card_util</th>\n",
       "      <th>mean_bnpl</th>\n",
       "      <th>mean_inquiries_12m</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>vintage</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2024</th>\n",
       "      <td>50280</td>\n",
       "      <td>0.041</td>\n",
       "      <td>46830.0</td>\n",
       "      <td>0.308</td>\n",
       "      <td>0.551</td>\n",
       "      <td>1.880</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2025</th>\n",
       "      <td>49720</td>\n",
       "      <td>0.060</td>\n",
       "      <td>63560.0</td>\n",
       "      <td>0.389</td>\n",
       "      <td>1.153</td>\n",
       "      <td>2.201</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f92fa1b9-2a0c-4383-b772-a610ca947617')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-f92fa1b9-2a0c-4383-b772-a610ca947617 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-f92fa1b9-2a0c-4383-b772-a610ca947617');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"print(f\\\"Default rate {100 * DR24:\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"vintage\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 2024,\n        \"max\": 2025,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2025,\n          2024\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"applicants\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 395,\n        \"min\": 49720,\n        \"max\": 50280,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          49720,\n          50280\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"default_rate\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0134350288425444,\n        \"min\": 0.041,\n        \"max\": 0.06,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.06,\n          0.041\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"median_income\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 11829.89644925094,\n        \"min\": 46830.0,\n        \"max\": 63560.0,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          63560.0,\n          46830.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"mean_card_util\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05727564927611036,\n        \"min\": 0.308,\n        \"max\": 0.389,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.389,\n          0.308\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"mean_bnpl\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.4256782822743016,\n        \"min\": 0.551,\n        \"max\": 1.153,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          1.153,\n          0.551\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"mean_inquiries_12m\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.22698127676088187,\n        \"min\": 1.88,\n        \"max\": 2.201,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2.201,\n          1.88\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1485x396 with 3 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABcEAAAGBCAYAAACuOnkGAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAQ6wAAEOsBUJTofAAA46VJREFUeJzs3XdcU9f/P/BXAmEGArJl464b99Za0ao46x5g1WrdtbWO+rE4Wq11VVultlXcq3XhwFkR66x71lWWG2WDrNzfH/xyv4mEEVaAvp6PRx6P5N5zz3nfm9x1cu45EkEQBBARERERERERERERVUBSfQdARERERERERERERFRSWAlORERERERERERERBUWK8GJiIiIiIiIiIiIqMJiJTgRERERERERERERVVisBCciIiIiIiIiIiKiCouV4ERERERERERERERUYbESnIiIiIiIiIiIiIgqLFaCExEREREREREREVGFxUpwIiIiIiIiIiIiIqqwWAlORERERERERERERBUWK8H/ozIyMhAQEICqVavCyMgIEokE7du3L/FyPTw8IJFIIJFISryssiggIEBc/6CgIH2HU2b8138X5V379u3F7+/UqVPFlu+pU6fEfP39/YstX6KyTPWb9/DwKLEy/P39S2SfLWtKY1uWhEuXLomxh4aG6juc/wT181h4eHiplh0UFCSWHRAQUKS8rly5gg8++AA2Njb/iX1cXWleSyqVSlSpUgUSiQTjx48v8fKICiOv+86SOlbs2rULEokEBgYGePz4cZHzI93x/qlk6ePasjD7cnmudxoxYgQkEgnq1q0LQRCKPX9Wgpcx6j9WiUQCQ0NDKBQKVK9eHX379sXu3buhVCqLXM7y5csxd+5cPHr0CBkZGcUQedGsWLECAQEBRb74L4pr166JMfxXbhio7AoKChJ/j3FxcfoOp1zjvk2l5d1zeNu2bXOkefjwIaRSqUa60q50o7Ltf//7HwCgUaNGaNeunc7L7927VzzmlaXfFs9rJSsxMRFdu3bFiRMn8ObNG32HU+xUN/UBAQG4du2aXmORSqWYPHkyAODXX39FVFSUXuOh8q207v9V8jpWxMXFifuZrhVnSqVSvJfv1asXvLy8NOY/fPgQQ4YMgYODA4yNjVGlShVMnz4dCQkJBS7j+vXrGD9+PLy9vWFoaChusx9//DHXZXbs2IFW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UiEqKkojTUEGxlQvL7ffb177dmZmptbfqPoxT327x8bGah0QTT2PovxOqHx7d2DMvOgyMGZevyEHBwfxeFqlSpVc07333ntCZmamIAj5D4xZ0ONUz549c5Tj7OwsVKpUSeu65UV9sB4AgqWlZY4Be77//vsc5dna2go1atQo8Pqkp6cLbm5uOfJRH9RI/fgREREhuLi45LkPq9Zx5MiRuaYxNTUVHj16lO92UF0PSaVSjXNcWFhYnjEsXLhQTBscHKw1TV7bRd2RI0dyLGtoaChUrVpV63Zet26d1kENAc0BHfM7rw0aNCjP7yW3QaWK4xqwsINRq6j2qcIczwsyMGZug8+rp89rm7x+/Vrj2vzdV48ePcRBqQUh/99IbscEXa6vdL1muXHjhtZB5VTl5HZNIwgFO74U5nzduXNnAYDg6OgoHl+JdFXY+//8jluFGUxPEASNfTCvdO/q27evAGQPupienq4x7+rVq4JCodC6bg0aNBASEhLEtHkNyKgee26v3I6X777mz5+f7zqpqA/6CEC4c+eOIAiag0MDmudiQRCE8ePH5yi3WrVqgr29vdZ48ztPzp07N9f1UQ3IWJCBprUdJ4vDkSNHxIGH3335+PhoHCfV41Sv91H//nN7qafPb/8ZOHBgnoN2C4Ju11javhdd7w9z2wdz++0X18CYgpA9CKiJiYnW9VQNaqlrnWBx3purLFy4UJx+69atPL493bE7lDJOKpXCwsICVatWRa9evbBjxw6EhobmeKTD29sb165dw9ixY+Hl5QUjIyNYWVmhTp06GDt2LE6cOFGg8tzc3HDkyBE0adIEpqamqFKlClavXq3RJYe6WrVqYcuWLahatSqMjIxQp04d7Ny5EwMGDNBpPb/++mt88sknqFy5crE9ztW0aVPs3r0bderUgYmJCerUqYNdu3Zp9DWoztbWFnv37kXDhg1hamqaY35xbWOVmTNnYsmSJfD09BS33e+//47evXvnSDt48GCN/q906d6juOPW1cmTJ+Hn5wdra2uYm5ujd+/eCA0NzXVgFxWJRIJt27bh559/RrNmzWBubg4jIyNUq1YNX3zxBS5duqS1r0r132pBBg8tLCMjI4SEhGDlypVo2rQpLCwsYGJiAk9PT3Tr1g2//fab1u+yoMaMGYPp06fDzc2twIOdffTRR/j5559RrVo1mJiYoEmTJggJCRH7Si+qVatW4X//+x+cnJxgYmKCVq1a4cSJExotKwuqfv36Gk96tGvXTqNrm+KU175tYGCAgwcPokePHlAoFLCzs8PkyZPFQVbfZWVlhdDQUPTo0QNmZmawsbHBuHHjsGbNGjGN+r5a0r8T+m8YN24cBgwYgCpVqkAul8PQ0BDOzs4YMmQIzpw5Ix5PZ86ciZ49e8Ld3R1mZmaQyWTw8PDA2LFjcfLkSRgYGBRrXNu2bcOkSZNgY2MDMzMzdOvWDadPn9Zo4VTQvhu7du2qMYBO3759cwzY89lnn2H+/Pni+rVv3x4nT56Eo6NjgWOWyWTYu3cvWrRoASMjI7i4uGDu3Lm5Dlzl5uaGq1evYtq0aahZsyZMTExgYWGBmjVrYvjw4di/f784PseQIUPg5+eHGjVqQKFQwMDAAPb29ujVqxfCwsI0upXKzYgRIwBkPx6q/vht9erVMX36dDRv3hwODg4wNDSEXC5HkyZN8NNPP2n009i9e3csWbIEVapU0bkPUCC7b/MVK1bAxcUFxsbGaNq0KY4cOZJrS5wRI0bgzJkz+Oijj+Do6AiZTAY7Ozt06tRJY1Co/M5rq1atQr9+/WBubg6FQoHhw4fj9OnTOscP6H4NWNFVqlQJFy5cwKxZs1CzZk0YGxvDzMwMjRo1wsqVK7F7926dB1YtKl2vWerWrYuNGzeiVq1aebb81qYgxxddz9dxcXFiX81Dhw4t9uMr/XcV9P6/pGzbtg1dunQpULcV6lTnr9jY2Bz3lw0aNMClS5cwePBg2Nvbw8jICJ6envjyyy8RGhqqMbZAcQoICMD27dvRokULmJubw9zcHC1atMCOHTswe/bsAuejPtillZUVatasCSC7JXhu6QBgyZIlmDx5MpycnCCXy9GjRw+cOHFCa10DkP95cs6cOTh8+DC6du0KW1tbyGQyODk5oUePHmJM+uTj44OzZ8/C19cX1tbWMDY2Rq1atfDtt98iODi4RI6TH3/8Mb799lu0bt0azs7OkMlkUCgUaNu2LdavX4+tW7fmW7+kyzWWNrreH+pT586dcfnyZfj5+cHV1RUymQyVKlVC69at0bFjRwC61wnqKr96N+D/uqBp3LhxsXeVJBEEDmtNVB74+Pjg2LFjMDU1xcuXL8U+qsoiDw8P8RG10j7EZGVlwcLCAqmpqWjdurXGo69ExUEQhBwXU4GBgfj0008BAD169MC+ffv0ERpRqdK2L9y7d0/sgsrKygqvX78u9cq18u7DDz9ESEgIGjVqpNHtDRGVHStXrsTkyZNhbGyMBw8eFNtg9UTllVKpRL169XD79m306dMHf/zxh75DIio1vD8sPjdu3BD71t+xYwf69+9frPnzroSoDMvKykJiYiLCwsLEAan69u1bpivA9SU9PR1xcXFYvXq1ODgG+1mmktCtWzesW7cOt27dwuPHj7Fx40aN1iSl3a8qkb588cUXWLhwIS5evIioqCgcPXpU40mwAQMGsAK8EObNmwcgu7/h0NBQPUdDRO9SKpXi0yOjRo1iBTgRsluwf/311wCyxw9SjfdF9F/A+8PioxqAtm7dugUaB09XbAlOVIapDxgBZD+qefXq1TI/Ar0+WoIHBARg7ty54mcvLy/cuXNH50dmifKj/vt+1+DBg7F58+Zi69aJqCzz9/fHhg0btM6rXbs2Tp8+jUqVKpVyVEREREREpYf3h+UHm+cQlQMymQz169fH3r17y3wFuL6Zm5vDx8cHhw8fZgU4lYjRo0ejSZMmqFSpEgwNDWFjY4OOHTti8+bN2LJlCy9w6D/D19cXH3zwgdgPtIWFBRo1aoRvv/0WFy5cYAU4EREREVV4vD8sP9gSnIiIiIiIiIiIiIgqLLYEJyIiIiIiIiIiIqIKi5XgRERERERERERERFRhsRKciIiIiIiIiIiIiCosVoJXMJmZmYiOjkZmZqa+QyEiIqJC4LmciIiofOO5nIio7GEleAXz/PlzuLq64vnz5/oOhYiIiAqB53IiIqLyjedyosKJT0jGL1uP4JetRxCfkKzvcKiCYSU4EREREREREREREVVYhvoOgIiIiIiIiIiISF1SciqOhV0DAHRq0wByc1P9BkRE5RorwYmIiIiIiIiIqEzJylIi5k2C+J6IqChYCU5ERERERERERGWKsbEM3nWqiO+p4uN3TiWJleBERERERERERFSmmBgboVG9qvoOg0oRv3MqSRwYk4iIiIiIiIiIiIgqLFaCExEREREREREREVGFxe5QiIiIiIiIiIioTElOeYvTF24BANo2qwNzMxM9R0QlLTE5FSGnLgMAurRvBAtzUz1HRBUJK8GJiIiIiIiIiKhMyczMQvSz1+J7qviUWUrExSeL74mKEyvBiYiIiIiIiIioTDEy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xAhdNxcREZVBEkEQBH0HQcUnOjoarq6uiIqKgouLi77DISIiIh2pzuWXf6qHyjZG+g6HiKjMchxwSd8hEGmlOpfv9K4Oe2OZvsMhKjcEiRSZZnIAgGFKEiSCstjLaHf2VrHnSeUD+wQnIiIiIiIiIqIyJV1hi/Ah0wEAHlu+g1F8jJ4jopKWYVkJ4cNmAgA8Ni3kd07FipXgRERERGWQfY+DcORTXUREVIaFhYXhww8/1Drvzp07cHNzK+WIqMKRshdfIioerAQnIiIiIiIiIp21adMGSUlJ+g6DKijDlARUPvCb+J6IqChYCU5ERERERERERGWKNCMd8vA7+g6DiCoIPldCRERERERERERERBUWW4JXUG0HbIDMxFrfYZAe/XNinL5DICIiIiIiIiIi0jtWghMRERERERERUZmSblkJUf0mAwBcd/0Ao4Q3eo6IiMozVoITERERERERERWzFvtOwMXFRd9hlFvxCckIP3AGANB052EoLM31HBGVNI3vfMdBfudUrFgJTkREREREREREZYqpqTHaNa8jvqeKj985lSRWghMRERERERERUZliJDNEdS9nfYdBpYjfOZUkqb4DICIiIiIiIiIiIiIqKawEJyIiIiIiIiIiIqIKi92hEBERERERERFRmZKYlIrDpy4DAD5s3wgWclM9R0QlLT4xGbsPnQMA9OnaAgoLDoxJxYeV4EREREREREREVKYolUrEJySL7+k/QAAys7LE90TFiZXgRERERERERETF7OX+bjC0MdJ3GOVWumCC9ySNAADxhxYgVfJWzxFlcxxwSd8hEFEhsBK8GH377be4f/8+goKCiiW/wMBAbN++HadOnSqW/IiIiKj84I1z2cQbXyIiotJhJHmLKpK/9B0GEVUQ//mBMdu3bw8TExPI5XLY2NigS5cuuH//fr7LBQUFoXnz5hrTZs2aVWwV4ERERERERERERERUdP/5SnAAWLFiBZKSkhAVFQU7Ozt8/PHHxV5GZmZmsedJRERERERERERERHljJbgaMzMzDBw4EFevXgUAPH/+HAMGDICDgwNcXV0REBAApVKJmzdvYuzYsbh06RLkcjnkcjmSk5MREBCAgQMHAgDCw8MhkUgQFBQET09P1KtXDwBw5MgRNG7cGFZWVvD29kZYWJhYfmRkJDp27AgLCwu0atUKERERpb8RiIiIiIiI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MgJVI2dlZGTHmERERERERERERESks9gITkREREREREREREQ6i43gOsbS0hJTpkyBpaWlpqOUiVnVg1nVg1nVg1mJiuLfWsWwviqOdVYxrK+KY53R666q7ANVIWdVyAhUjZxVISNQNXJWhYxA1chZmRn1hBBC7WshIiIiIiIiIiIiItIAXglORERERERERERERDqLjeBEREREREREREREpLPYCE5EREREREREREREOouN4ERERERERERERESks9gITkREREREREREREQ6i43gVcCTJ0/Qp08fWFhYwNnZGYsWLSpx3ujoaNSvXx9mZmZo0qQJzp07pzR9yZIlcHFxgVwuR3BwMFJSUrQy69q1a9GkSRNYWVnB2dkZI0eOREZGhlZmLWzw4MHQ09PD1atXtTbrnTt30KNHD1haWsLW1hahoaFamVUIga+++gqurq6wtLRE06ZNceTIEY1kzcnJQa9eveDp6Qk9PT3s2bOnyDzasm+VlVWb9q3y1GsBTe9b5cmq7n2LdIs6jkG6rrx1duzYMXTo0AF2dnaws7ND586dcePGjcoNqwUq8jdWYM2aNdDT08Py5cvVH1DLVKS+srKyMGbMGFSrVg2WlpZo3Lgx0tPTKy+slqhInW3duhX16tWDhYUFfHx8sHLlysoLSqQiVeW8XFU5o6KioK+vD7lcLg1ff/11pWbU9HmYqnKqsy4rkrM835HUVZ+qyqgtdfnff/+hadOmsLW1hbW1NVq0aIFDhw4pzaPpuiwro7bUZWElfRdVWV0K0noDBw4U3bp1E6mpqeL8+fPCwcFBREZGFpkvOTlZWFlZibVr14qsrCwxf/584e7uLrKysoQQQuzdu1fY2tqKU6dOibS0NNG7d2/Rp08frcy6bNkyERUVJbKyssTDhw9FmzZtxIgRI7Qya4EDBw6Id955RwAQV65c0cqsOTk5wsfHR8yePVukp6eL7OxscerUKa3MunHjRuHo6CiuX78u8vPzxffffy/s7OxEbm5upWfNzs4WCxcuFP/++69wdXUVu3fvVpquTftWWVm1ad8qK2sBbdi3yspaGfsW6RZVH4NeB+Wts8jISLFlyxbx5MkTkZ2dLf73v/+JOnXqaCCxZpW3vgokJyeLWrVqCV9fX/HDDz9UYlLtUJH6Cg0NFb169RL37t0T+fn54uzZs9wnS6mzO3fuCCMjI/HH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6f9wSkqKeO+994RcLhdeXl4iIiKi1I4xs7KyRGhoqLCyshK2trbik08+EWPGjBGtWrWSyrx27Zpo1qyZkMlk0vGvuGPA1q1bRd26dYWRkZGoUaOGWLp0qdL2vXgsTE9PL/X8dvv27cLf319YWFgIuVwuWrZsKQ4fPixNP3r0qGjQoIEwMTGRjj2PHj0S3bt3F+bm5sLR0VHMmDFDBAcHK3XI7OHhIWbOnCmCg4OFTCYTLi4u4ueff5amV7RjzJLOp4UQIi8vTzg5OZX6uRcormPMF5d7cVuuXLkiWrRoIYyNjUW9evXErl27itTplStXRPfu3aWOwOvVqyc+//xzIYQQX375pXBxcRGPHz+W5l+3bp2Qy+Xi5s2bxeZs1apVsefuL3Z6/f333wt3d3dhbGws/P39lTrKLKjT4obC5/OFvWrHmOVRuL2o8FB4fxDi+d96rVq1hLGxsfD19RWRkZHStIK/n+KGgs/l1KlTomnTpkqfyezZs0V2drZat6+y6QnBh+QRke4SQqBJkyaYNGmSdFWbNtm3bx/GjBmDCxculOsqPSIiIlKdvLw81KxZE2PGjMFnn32m6ThERFXK1KlTsWvXLpw8eVLTUaic0tPT4eTkhK1btxZ5bAiRruPjUIhIp+np6eGnn37C1atXNR2lWOnp6Vi9ejUbwImIiCrB7du38c8//yAgIACZmZlYsGABkpOT0bt3b01HIyIiUhuFQoHk5GTMmTMHTk5OUp9hRK8TNoITkc5r1KgRGjVqpOkYxXrvvfc0HYGIiOi1oa+vj5UrVyI8PBwA0LBhQ0RFRcHd3V3DyYiIiNQnLi4ONWrUgLu7OzZs2AB9fX1NRyKqdHwcChERERERERERERHpLP70Q0REREREREREREQ6i43gRERERERERERERKSz2AhORERERERERERERDqLjeBEREREREREREREpLPYCE5EREREREREREREOouN4ERERERERERERESks9gITkREREREREREREQ6i43gRERERERERERERKSz2AhORERERERERERERDqLjeBEREREREREREREpLP+H8BMCPNKqSHOAAAAAElFTkSuQmCC\n"
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Default rate 4.06% (2024) → 6.03% (2025); largest drift: bnpl_12m (PSI 0.40)\n"
     ]
    }
   ],
   "source": "import numpy as np, pandas as pd\nfrom scipy.special import expit, logit\n\nREGIONS = ['Marmara', 'Ege', 'Akdeniz', 'İç Anadolu', 'Karadeniz', 'Doğu Anadolu', 'Güneydoğu Anadolu']\nREG_P = [0.31, 0.13, 0.13, 0.17, 0.09, 0.08, 0.09]\nREG_RISK = [0.00, -0.10, 0.05, -0.05, -0.15, 0.20, 0.25]\nREG_INC = [1.15, 1.02, 0.95, 1.05, 0.90, 0.78, 0.80]\nEMP = ['Public sector', 'Private salaried', 'Self-employed', 'Retired', 'Not employed']\nEMP_P = [0.16, 0.48, 0.18, 0.13, 0.05]\nEMP_RISK = [-0.45, 0.00, 0.25, -0.20, 0.70]\nSECT = ['Manufacturing', 'Trade', 'Construction', 'Tourism', 'Agriculture', 'Services', 'Other']\nSECT_P = [0.20, 0.22, 0.10, 0.08, 0.08, 0.27, 0.05]\nSECT_RISK = [0.00, 0.05, 0.25, 0.15, 0.20, -0.05, 0.0]\n# vintage-specific sector shock (2025: construction and tourism stress) -> concept drift\nSECT_SHOCK = {2024: [0, 0, 0, 0, 0, 0, 0], 2025: [0.05, 0.10, 0.55, 0.40, 0.15, 0.0, 0.0]}\n\n\ndef make_bureau(n=100_000, seed=2026, base_rate=0.04):\n    \"\"\"Synthetic credit-bureau applicant file: two vintages (2024 = development, 2025 = out-of-time), ~40 attributes,\n    a non-linear latent default process with interactions, structural and informative (MNAR) missingness,\n    heavy-tailed income, data-entry outliers, population drift and a sector shock in 2025. Fully synthetic — no\n    real person or KKB record is represented.\"\"\"\n    r = np.random.default_rng(seed)\n    vint = np.where(r.random(n) < 0.5, 2024, 2025)\n    v25 = (vint == 2025).astype(float)\n    region = r.choice(len(REGIONS), n, p=REG_P)\n    emp = r.choice(len(EMP), n, p=EMP_P)\n    age = np.clip(r.normal(40, 12, n), 18, 85)\n    age[emp == 3] = np.clip(r.normal(62, 6, (emp == 3).sum()), 45, 85)\n    age[emp == 4] = np.clip(r.normal(30, 10, (emp == 4).sum()), 18, 70)\n    sector = r.choice(len(SECT), n, p=SECT_P)\n    sector[np.isin(emp, [3, 4])] = 6\n    tenure = np.where(np.isin(emp, [0, 1, 2]), np.clip(r.gamma(2.0, 30, n), 0, (age - 17) * 12), 0)\n    educ = np.clip(np.round(r.normal(2 + 0.6 * (emp == 0) - 0.4 * (emp == 4), 0.9, n)), 0, 4)   # 0 primary .. 4 postgrad\n    married = (r.random(n) < expit((age - 30) / 6)).astype(int)\n    deps = np.clip(r.poisson(0.4 + 0.9 * married), 0, 6)\n    home = (r.random(n) < expit((age - 42) / 10 + 0.3 * educ - 0.5)).astype(int)\n    # latent financial health (unobserved) drives many observed attributes -> realistic correlation structure\n    health = r.normal(0, 1, n) + 0.25 * educ - 0.35 * (emp == 4) + 0.2 * home - 0.15 * v25\n    inc = np.exp(r.normal(np.log(32_000) + 0.18 * educ + 0.12 * health, 0.45, n)) * np.array(REG_INC)[region]\n    inc *= np.where(emp == 3, 0.75, 1.0) * np.where(emp == 4, 0.35, 1.0) * (1 + 0.38 * v25)      # 2025 nominal wage growth\n    hist = np.clip(r.gamma(2.2, 40, n), 0, (age - 18) * 12)                     # months since oldest account\n    thin = hist < 12\n    n_cards = np.clip(r.poisson(1.2 + 0.5 * (hist > 36) + 0.3 * educ + 0.4 * v25), 0, 12)\n    limit = np.where(n_cards > 0, inc * r.uniform(0.8, 2.5, n) * np.sqrt(n_cards) * np.exp(0.2 * health), 0)\n    util = np.where(n_cards > 0, np.clip(expit(r.normal(-0.6 - 0.8 * health + 0.35 * v25, 1.1, n)), 0, 1.15), np.nan)\n    card_bal = np.nan_to_num(util) * limit\n    n_loans = np.clip(r.poisson(0.9 + 0.3 * home - 0.15 * health + 0.2 * v25), 0, 10)\n    loan_bal = n_loans * inc * r.gamma(2.0, 1.6, n)\n    mortgage = ((home == 1) & (r.random(n) < 0.35)).astype(int)\n    auto = (r.random(n) < 0.10 + 0.05 * educ / 4).astype(int)\n    kmh_util = np.clip(expit(r.normal(-1.5 - 0.9 * health, 1.2, n)), 0, 1)   # overdraft (KMH) utilisation\n    n_lenders = np.clip(1 + r.poisson(0.5 * n_loans + 0.3 * n_cards), 1, 15)\n    newest = np.clip(r.exponential(14, n), 0, hist)\n    # repayment burden: instalments + 5% of card balances over income (with interest-rate drift in 2025)\n    pti = (loan_bal * (0.045 + 0.01 * v25) + 0.05 * card_bal) / inc\n    # behaviour (driven by latent health + noise)\n    dl = r.normal(-health, 1, n)\n    max_dpd12 = np.select([dl > 2.4, dl > 1.9, dl > 1.3], [90, 60, 30], 0) * (r.random(n) < 0.9)\n    max_dpd24 = np.maximum(max_dpd12, np.select([dl > 2.2, dl > 1.6, dl > 1.0], [90, 60, 30], 0) * (r.random(n) < 0.8))\n    n30 = np.where(max_dpd24 > 0, 1 + r.poisson(np.clip(dl, 0, None)), 0)\n    since_del = np.where(max_dpd24 > 0, np.where(max_dpd12 > 0, r.uniform(0, 12, n), r.uniform(12, 24, n)), np.nan)   # structural missing\n    inq3 = r.poisson(np.clip(0.4 + 0.5 * expit(-health) + 0.8 * (r.random(n) < 0.06) * 4, 0, None))   # credit-seeking bursts\n    inq12 = inq3 + r.poisson(1.1 + 0.3 * v25, n)\n    cheque = r.poisson(0.03 * np.exp(-1.2 * health) * (1 + 3 * (emp == 2)))   # returned cheques (karşılıksız çek)\n    restruct = (r.random(n) < expit(-4.5 - 1.2 * health)).astype(int)\n    trend6 = r.normal(0.02 - 0.05 * health + 0.04 * v25, 0.12, n)                # 6-month balance trend\n    minpay = np.clip(expit(r.normal(-1.2 - 0.9 * health, 0.9, n)), 0, 1) * (n_cards > 0)\n    cash_adv = r.poisson(0.2 * np.exp(-0.8 * health))\n    salary_bank = (r.random(n) < np.where(np.isin(emp, [0, 1]), 0.7, 0.2)).astype(int)\n    bnpl = r.poisson(0.5 + 0.6 * v25 + 0.3 * (age < 30))\n    # alternative data (telco / utility payment score): missing more often for thin-file and risky applicants (MNAR)\n    alt = np.clip(600 + 90 * health + r.normal(0, 60, n), 300, 900)\n    alt_miss = r.random(n) < expit(-0.9 + 1.4 * thin - 0.5 * health)\n    alt[alt_miss] = np.nan\n    inc_ver = (r.random(n) < expit(1.0 + 0.8 * np.isin(emp, [0, 1, 3]) - 0.6 * (emp == 2))).astype(int)\n    inc_obs = inc.copy(); inc_obs[(inc_ver == 0) & (r.random(n) < 0.55)] = np.nan             # declared income missing\n    # data-entry outliers (income typed in kuruş / an extra zero)\n    o = r.random(n) < 0.003\n    inc_obs[o & ~np.isnan(inc_obs)] *= 10\n    # ---- latent default process: non-linear, interacting, vintage-dependent ------------------------------------------\n    sec_shock = np.array([SECT_SHOCK[v][s] for v, s in zip(vint, sector)])\n    z = (-1.05 * health\n         + 1.3 * np.maximum(pti - 0.45, 0) + 0.4 * pti                                   # hinge in debt burden\n         + 1.1 * np.nan_to_num(util - 0.8, nan=0).clip(0) * 3 + 0.25 * np.nan_to_num(util, nan=0.4)\n         + 0.35 * (inq3 >= 4) + 0.12 * np.minimum(inq12, 8) / 2\n         + 0.9 * (max_dpd12 >= 60) + 0.45 * (max_dpd24 >= 30) + 0.25 * np.log1p(n30)\n         + 0.8 * np.minimum(cheque, 3) / 3 + 0.9 * restruct\n         + 0.5 * thin * (1 - salary_bank)                                                 # thin file without salary account\n         + 0.6 * np.maximum(trend6, 0) * 4 * (np.nan_to_num(util, nan=0) > 0.6)           # rising balances at high utilisation\n         + np.array(EMP_RISK)[emp] + np.array(REG_RISK)[region]\n         + (np.array(SECT_RISK)[sector] + sec_shock) * (emp == 2) * 1.6 + sec_shock * (emp == 1) * 0.6\n         + 0.015 * (age - 40) ** 2 / 10 - 0.1 * (age > 60)\n         + 0.25 * minpay + 0.12 * np.minimum(cash_adv, 4) + 0.08 * np.minimum(bnpl, 5)\n         - 0.15 * mortgage + 0.3 * alt_miss\n         + r.normal(0, 0.85, n))                                                         # idiosyncratic shocks\n    b0 = logit(base_rate) - np.mean(z[vint == 2024]) - 0.95\n    for _ in range(40):                                                                   # calibrate 2024 default rate\n        p = expit(b0 + z); b0 += logit(base_rate) - logit(p[vint == 2024].mean())\n    p = expit(b0 + z)\n    y = (r.random(n) < p).astype(int)\n    df = pd.DataFrame({\n        'vintage': vint, 'age': np.round(age), 'region': np.array(REGIONS)[region], 'employment': np.array(EMP)[emp], 'sector': np.array(SECT)[sector],\n        'job_tenure_m': np.round(tenure), 'education': educ, 'married': married, 'dependants': deps, 'home_owner': home,\n        'income_declared': np.round(inc_obs, -1), 'income_verified': inc_ver, 'salary_account': salary_bank,\n        'history_m': np.round(hist), 'newest_account_m': np.round(newest), 'n_cards': n_cards, 'card_limit': np.round(limit, -2),\n        'card_util': util, 'card_balance': np.round(card_bal, -1), 'n_loans': n_loans, 'loan_balance': np.round(loan_bal, -2),\n        'mortgage': mortgage, 'auto_loan': auto, 'overdraft_util': kmh_util, 'n_lenders': n_lenders, 'payment_to_income': pti,\n        'max_dpd_12m': max_dpd12, 'max_dpd_24m': max_dpd24, 'n_late_24m': n30, 'months_since_late': since_del,\n        'inquiries_3m': inq3, 'inquiries_12m': inq12, 'returned_cheques_24m': cheque, 'restructured': restruct,\n        'balance_trend_6m': trend6, 'min_payment_share': minpay, 'cash_advances_12m': cash_adv, 'bnpl_12m': bnpl,\n        'alt_data_score': alt, 'default_12m': y})\n    return df, p\n\n\nCAT = ['region', 'employment', 'sector']\n\n\ndef to_matrix(df):\n    \"\"\"Numeric design matrix: one-hot categoricals, missing-value indicators, log of money amounts; NaN kept for GBM.\"\"\"\n    X = df.drop(columns=['vintage', 'default_12m']).copy()\n    for c in ['income_declared', 'card_limit', 'card_balance', 'loan_balance']:\n        X[c] = np.log1p(X[c])\n    for c in ['income_declared', 'card_util', 'months_since_late', 'alt_data_score']:\n        X[c + '_missing'] = X[c].isna().astype(int)\n    X = pd.get_dummies(X, columns=CAT, drop_first=True, dtype=float)\n    return X.astype(float)\n\n\nBUREAU, P_TRUE = make_bureau(100_000, seed=2026)\nXALL = to_matrix(BUREAU); YALL = BUREAU['default_12m'].values; DEV = (BUREAU['vintage'] == 2024).values\nprint(f\"{len(BUREAU):,} applicants · {BUREAU.shape[1] - 2} attributes ({XALL.shape[1]} model columns after encoding)\")\nOV = BUREAU.groupby('vintage').agg(applicants=('default_12m', 'size'), default_rate=('default_12m', 'mean'),\n                                   median_income=('income_declared', 'median'), mean_card_util=('card_util', 'mean'),\n                                   mean_bnpl=('bnpl_12m', 'mean'), mean_inquiries_12m=('inquiries_12m', 'mean'))\ndisplay(OV.round(3))\nMISS = BUREAU.isna().mean(); MISS = MISS[MISS > 0].sort_values()\ndef psi(a, b, bins=10):\n    a, b = a[~np.isnan(a)], b[~np.isnan(b)]\n    e = np.unique(np.quantile(a, np.linspace(0, 1, bins + 1))); e[0], e[-1] = -np.inf, np.inf\n    pa = np.histogram(a, e)[0] / len(a) + 1e-6; pb = np.histogram(b, e)[0] / len(b) + 1e-6\n    return float(np.sum((pb - pa) * np.log(pb / pa)))\nPSI = pd.Series({c: psi(BUREAU.loc[DEV, c].values.astype(float), BUREAU.loc[~DEV, c].values.astype(float))\n                 for c in ['income_declared', 'card_util', 'payment_to_income', 'bnpl_12m', 'inquiries_12m', 'n_cards', 'balance_trend_6m', 'history_m']}).sort_values()\nfig, ax = plt.subplots(1, 3, figsize=(13.5, 3.6))\nDR = BUREAU.groupby(['employment', 'vintage'])['default_12m'].mean().unstack()\nDR.plot.barh(ax=ax[0], color=[B.GRAY, B.BLUE]); ax[0].set_xlabel('Default rate (12 m)'); ax[0].set_ylabel(''); ax[0].set_title('Default rate by employment and vintage'); ax[0].legend(frameon=False)\nax[1].barh(MISS.index, MISS.values, color=B.AMBER); ax[1].set_xlabel('Share missing'); ax[1].set_title('Missing values (structural + informative)')\nax[2].barh(PSI.index, PSI.values, color=[B.RED if v > 0.25 else (B.AMBER if v > 0.1 else B.TEAL) for v in PSI.values])\nax[2].axvline(0.1, ls=':', color=B.GRAY); ax[2].axvline(0.25, ls='--', color=B.GRAY); ax[2].set_xlabel('Population stability index 2024 → 2025'); ax[2].set_title('Drift (0.10 watch · 0.25 significant)')\nplt.tight_layout(); FIG_DATA = B.savefig('data_overview'); plt.show()\nDR24, DR25 = float(OV.loc[2024, 'default_rate']), float(OV.loc[2025, 'default_rate'])\nprint(f\"Default rate {100 * DR24:.2f}% (2024) → {100 * DR25:.2f}% (2025); largest drift: {PSI.idxmax()} (PSI {PSI.max():.2f})\")"
  },
  {
   "cell_type": "markdown",
   "id": "e460b75f",
   "metadata": {
    "id": "e460b75f"
   },
   "source": "---\n## Track 1 — Realistic bureau data: scorecard and gradient boosting vs a quantum kernel\n\n**Question.** With 100,000 applicants and 39 messy, drifting attributes, does a quantum kernel find risk structure that the classical stack misses?\n\n**Champions (what a bureau runs today).** A Weight-of-Evidence logistic **scorecard** and **gradient boosting**, both trained on the full 2024 development\nvintage (~50,000 applicants) and tested out-of-time on 2025 (~50,000).\n\n**Challenger.** A 10-qubit fidelity quantum kernel (ZZ feature map), bandwidth and C chosen by cross-validation. A kernel needs one circuit per *pair* of\napplicants, so it is trained on a 1,200-applicant development sample (20% defaults, all real labels) and tested on 4,000 out-of-time applicants at the natural\ndefault rate. The classical models are run on the same sample and features, and the full-data champions are scored on the same 4,000 test applicants."
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "bfa61abc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:50.857620Z",
     "iopub.status.busy": "2026-10-03T21:34:50.857371Z",
     "iopub.status.idle": "2026-10-03T21:34:55.712829Z",
     "shell.execute_reply": "2026-10-03T21:34:55.710787Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 142
    },
    "id": "bfa61abc",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085961139,
     "user_tz": -180,
     "elapsed": 24189,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "8fa05bd3-40d7-4a16-b514-2aa98c92f977"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                             Model  Training applicants  OOT AUC  OOT Gini  OOT KS  Train s\n",
       "0          WOE logistic scorecard (all 55 columns)              50280.0   0.8589    0.7178  0.5633   2.6026\n",
       "1               Gradient boosting (all 55 columns)              50280.0   0.8610    0.7220  0.5737   3.6199\n",
       "2  Oracle (true default probability — the ceiling)                  NaN   0.9069    0.8139  0.6552      NaN"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-f22d6294-202f-4b3d-b2c8-8591767a898f\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>Training applicants</th>\n",
       "      <th>OOT AUC</th>\n",
       "      <th>OOT Gini</th>\n",
       "      <th>OOT KS</th>\n",
       "      <th>Train s</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>WOE logistic scorecard (all 55 columns)</td>\n",
       "      <td>50280.0</td>\n",
       "      <td>0.8589</td>\n",
       "      <td>0.7178</td>\n",
       "      <td>0.5633</td>\n",
       "      <td>2.6026</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Gradient boosting (all 55 columns)</td>\n",
       "      <td>50280.0</td>\n",
       "      <td>0.8610</td>\n",
       "      <td>0.7220</td>\n",
       "      <td>0.5737</td>\n",
       "      <td>3.6199</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Oracle (true default probability — the ceiling)</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.9069</td>\n",
       "      <td>0.8139</td>\n",
       "      <td>0.6552</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f22d6294-202f-4b3d-b2c8-8591767a898f')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-f22d6294-202f-4b3d-b2c8-8591767a898f button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-f22d6294-202f-4b3d-b2c8-8591767a898f');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"display(PROD\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"Model\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"WOE logistic scorecard (all 55 columns)\",\n          \"Gradient boosting (all 55 columns)\",\n          \"Oracle (true default probability \\u2014 the ceiling)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Training applicants\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 50280.0,\n        \"max\": 50280.0,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          50280.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"OOT AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.02712692389490562,\n        \"min\": 0.8589,\n        \"max\": 0.9069,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.8589\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"OOT Gini\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.054311539596418476,\n        \"min\": 0.7178,\n        \"max\": 0.8139,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.7178\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"OOT KS\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05032563958858347,\n        \"min\": 0.5633,\n        \"max\": 0.6552,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.5633\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Train s\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.7193397285010749,\n        \"min\": 2.6026,\n        \"max\": 3.6199,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          3.6199\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    }
   ],
   "source": "import time\nfrom sklearn.ensemble import HistGradientBoostingClassifier\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.impute import SimpleImputer\nfrom sklearn.metrics import roc_auc_score, roc_curve\ndef ks_stat(y, s):\n    f, t, _ = roc_curve(y, s); return float(np.max(t - f))\ndef woe_fit(X, y, bins=6, eps=0.5):\n    maps = {}\n    for c in X.columns:\n        x = X[c].values\n        if np.unique(x[~np.isnan(x)]).size <= bins:\n            edges = None; key = np.where(np.isnan(x), -1e18, x)\n        else:\n            edges = np.unique(np.nanquantile(x, np.linspace(0, 1, bins + 1))[1:-1])\n            key = np.where(np.isnan(x), -1, np.searchsorted(edges, x, side='right'))\n        tab = pd.crosstab(key, y); G, Bd = tab[0].sum(), tab[1].sum()\n        w = np.log(((tab[0] + eps) / G) / ((tab[1] + eps) / Bd))\n        maps[c] = (edges, w.to_dict())\n    return maps\ndef woe_apply(X, maps):\n    out = np.zeros(X.shape)\n    for j, c in enumerate(X.columns):\n        x = X[c].values; edges, w = maps[c]\n        key = np.where(np.isnan(x), -1e18, x) if edges is None else np.where(np.isnan(x), -1, np.searchsorted(edges, x, side='right'))\n        out[:, j] = [w.get(k, 0.0) for k in key]\n    return out\nt0 = time.perf_counter()\nWOE = woe_fit(XALL[DEV], YALL[DEV])\nSC = LogisticRegression(C=0.05, max_iter=3000).fit(woe_apply(XALL[DEV], WOE), YALL[DEV])\ns_sc = SC.decision_function(woe_apply(XALL[~DEV], WOE)); t_sc = time.perf_counter() - t0\nt0 = time.perf_counter()\nGBM = HistGradientBoostingClassifier(max_iter=500, learning_rate=0.05, max_leaf_nodes=31, early_stopping=True, validation_fraction=0.15, random_state=7).fit(XALL[DEV], YALL[DEV])\ns_gb = GBM.predict_proba(XALL[~DEV])[:, 1]; t_gb = time.perf_counter() - t0\nyo = YALL[~DEV]\nPROD = pd.DataFrame([{'Model': f'WOE logistic scorecard (all {XALL.shape[1]} columns)', 'Training applicants': int(DEV.sum()), 'OOT AUC': roc_auc_score(yo, s_sc),\n                      'OOT Gini': 2 * roc_auc_score(yo, s_sc) - 1, 'OOT KS': ks_stat(yo, s_sc), 'Train s': t_sc},\n                     {'Model': f'Gradient boosting (all {XALL.shape[1]} columns)', 'Training applicants': int(DEV.sum()), 'OOT AUC': roc_auc_score(yo, s_gb),\n                      'OOT Gini': 2 * roc_auc_score(yo, s_gb) - 1, 'OOT KS': ks_stat(yo, s_gb), 'Train s': t_gb},\n                     {'Model': 'Oracle (true default probability — the ceiling)', 'Training applicants': np.nan, 'OOT AUC': roc_auc_score(yo, P_TRUE[~DEV]),\n                      'OOT Gini': 2 * roc_auc_score(yo, P_TRUE[~DEV]) - 1, 'OOT KS': ks_stat(yo, P_TRUE[~DEV]), 'Train s': np.nan}])\ndisplay(PROD.round(4))"
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "80c59a32",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:34:55.716135Z",
     "iopub.status.busy": "2026-10-03T21:34:55.715856Z",
     "iopub.status.idle": "2026-10-03T21:35:17.829409Z",
     "shell.execute_reply": "2026-10-03T21:35:17.826785Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 702
    },
    "id": "80c59a32",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085969294,
     "user_tz": -180,
     "elapsed": 7555,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "85d72534-cd67-44d8-d14f-64f5d064e349"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                               Model  CV AUC  Test AUC  Test PR-AUC  Recall @ 5% alerts    Fit s\n",
       "0    Fidelity quantum kernel SVM (10 qubits, ZZ map)  0.8270    0.8464       0.3348              0.3347  14.7050\n",
       "1             Logistic regression (same 10 features)  0.8440    0.8439       0.3659              0.3517   0.2746\n",
       "2                         RBF-SVM (same 10 features)  0.8457    0.8490       0.3587              0.3602   2.0404\n",
       "3                   Random forest (same 10 features)     NaN    0.8397       0.2956              0.2881   1.4758\n",
       "4               Gradient boosting (same 10 features)  0.8319    0.8384       0.3179              0.3136   2.9157\n",
       "5     Gradient boosting (all 55 features, reference)  0.8307    0.8382       0.3176              0.3263      NaN\n",
       "6  Gradient boosting (all columns, full 50,280 de...     NaN    0.8471          NaN                 NaN      NaN\n",
       "7  WOE scorecard (all columns, full 50,280 develo...     NaN    0.8444          NaN                 NaN      NaN"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-c534b41a-c021-426f-94d5-6542dd0077b0\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>CV AUC</th>\n",
       "      <th>Test AUC</th>\n",
       "      <th>Test PR-AUC</th>\n",
       "      <th>Recall @ 5% alerts</th>\n",
       "      <th>Fit s</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Fidelity quantum kernel SVM (10 qubits, ZZ map)</td>\n",
       "      <td>0.8270</td>\n",
       "      <td>0.8464</td>\n",
       "      <td>0.3348</td>\n",
       "      <td>0.3347</td>\n",
       "      <td>14.7050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Logistic regression (same 10 features)</td>\n",
       "      <td>0.8440</td>\n",
       "      <td>0.8439</td>\n",
       "      <td>0.3659</td>\n",
       "      <td>0.3517</td>\n",
       "      <td>0.2746</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>RBF-SVM (same 10 features)</td>\n",
       "      <td>0.8457</td>\n",
       "      <td>0.8490</td>\n",
       "      <td>0.3587</td>\n",
       "      <td>0.3602</td>\n",
       "      <td>2.0404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Random forest (same 10 features)</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8397</td>\n",
       "      <td>0.2956</td>\n",
       "      <td>0.2881</td>\n",
       "      <td>1.4758</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Gradient boosting (same 10 features)</td>\n",
       "      <td>0.8319</td>\n",
       "      <td>0.8384</td>\n",
       "      <td>0.3179</td>\n",
       "      <td>0.3136</td>\n",
       "      <td>2.9157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Gradient boosting (all 55 features, reference)</td>\n",
       "      <td>0.8307</td>\n",
       "      <td>0.8382</td>\n",
       "      <td>0.3176</td>\n",
       "      <td>0.3263</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Gradient boosting (all columns, full 50,280 de...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8471</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>WOE scorecard (all columns, full 50,280 develo...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8444</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c534b41a-c021-426f-94d5-6542dd0077b0')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-c534b41a-c021-426f-94d5-6542dd0077b0 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-c534b41a-c021-426f-94d5-6542dd0077b0');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_6169de5d-2c67-44ac-868e-760cfccb5dc7\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('tab1')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_6169de5d-2c67-44ac-868e-760cfccb5dc7 button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('tab1');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "tab1",
       "summary": "{\n  \"name\": \"tab1\",\n  \"rows\": 8,\n  \"fields\": [\n    {\n      \"column\": \"Model\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 8,\n        \"samples\": [\n          \"Logistic regression (same 10 features)\",\n          \"Gradient boosting (all 55 features, reference)\",\n          \"Fidelity quantum kernel SVM (10 qubits, ZZ map)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CV AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.008424547465591263,\n        \"min\": 0.827,\n        \"max\": 0.8457,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.844,\n          0.8307,\n          0.8457\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Test AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0041581031046104945,\n        \"min\": 0.8382,\n        \"max\": 0.849,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.8439,\n          0.8382,\n          0.8464\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Test PR-AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.026835405717074608,\n        \"min\": 0.2956,\n        \"max\": 0.3659,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.3348,\n          0.3659,\n          0.3176\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall @ 5% alerts\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.026223729711846867,\n        \"min\": 0.2881,\n        \"max\": 0.3602,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.3347,\n          0.3517,\n          0.3263\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Fit s\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5.904754186246875,\n        \"min\": 0.2746,\n        \"max\": 14.705,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.2746,\n          2.9157,\n          2.0404\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Selected bandwidth 0.05, C 1.0 · PCA keeps 46% of the variance in 10 components\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1265x396 with 2 Axes>"
      ],
      "image/png": "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aIwdcoGQSrkCptM/yNz27ZKOxubRixRGR0dz8OBBgoODSU9PV9rt7e3x9fXFxMSk0GIVQhQPx4KvPPaRlaVTxmdl6Z7omKcVFxfH+PHjmT9/Pj179sTePns9zAoVKvDVV18pCblJkybx1ltv0a9fP7RaLbNmzeL69es0b94cJycnnJ2d6dGjBzExMcq5T506Re3atbG1taVNmzYGfTdu3EClUpGamgpkb2ozaNAgvL29cXd3Z+jQoUrf3r17cXd355tvvsHDwwNXV1dmzZoFwNatW5kxYwbr169Ho9FQsmTJPN/rzZs3adCgAba2tjRv3pyQkBCl7+jRo9SvXx97e3uqVKnC1q1blb709HSCgoLw9vbGzc2NwMBA4uLiANDr9QQFBeHm5oadnR3ly5dn7969ecb18LTOR70vyK5C6t+/P46OjpQpU4b58+c/cpOfrVu30qxZM+V1yZIluXbtGh07dkSj0RAZGUnJkiXZsWOHMmbhwoU0adIkz3Pm5vz585QrVw4AZ2dnatasCRhOff2vnTt3UqtWLbRaLTVq1GD//v0G/U2bNmXLli1PFYcoeElJSaxbt47p06djZ2dHlSpVGDBgAEuWLMkx9uLFi6xfv54ffvgBNzc31Go11apVe+Lq16VLlzJixAj8/PxwcnJi4sSJLF26tKDfkhBCCCGeAyqViirlXJk6ogn71wUydUQTKpdzASDsTgJfLT1Kk54/MfjTbew9fMPg96TnkZQ2FLC0rAzluaWZHhtT80eMBhsbG3Q6HTqdjtjYWFxdXQs7RCFEMfNm76mPHXP16PdYW2f/gpuWlvFEx0Scefy6YQ87dOgQqampvPXWW48du2XLFn766ScWL15MWloaERERjB49mldffZWEhAQ6d+7Mp59+yrfffktGRgbt27dnwIABBAUF8eeff9KhQwe6du2a67n79u2Lra0t586dQ6fT0a1bN6ZOnaqsjxYVFUVISAg3b94kODiYRo0a0bFjR9q2bcvYsWO5cOECP//88yPjX7JkCdu3b6dixYp8+OGH9O7dm3379hETE0PLli354osv6Nu3L3v27KFjx44cO3aMChUqMGPGDP744w+OHj2KjY0Nffr0YciQIaxatYpdu3bx888/ExwcjIeHB9evX0ev1+Pn5/dEceX1vvz9/Zk6dSpnz57l4sWLAHTq1OmR7+/UqVNMmTJFeX3jxg1KlizJwoULadmy5SOPfRoVKlTg7NmzlCpViqioqMduQnTy5El69uzJpk2baNCgAdu2baNDhw5cvHgRZ2dn5Zz79u0rsBhF/ly6dAmdTmdQHRsQEMCGDRtyjD169CglS5Zk6tSprFixAmdnZ0aOHMm7776rjLl37x7u7u5YWFjQsmVLPvvsM2WN3DNnzhAQEGBwnbt373Lnzh3c3NxyjS8+Pp74+HjldURExLO+ZSGEEEIUMxprc7q2qUjXNhU5d/nu/7V353E15f8fwF837d0WLdOCCoWoZIsYilHGli2yjX0bmcGYyPAdZcnSF2P7zliGBln7WsOgL5rMaBhUSoutUcqSicSk7fz+8OuMq0WXujf1ej4e9+Hecz7nfN7nfm73HJ/7+bwP9h2/jqP/u4Gc53k481sKzvyWAjMTHXj1tMOgT+1gYar79p1WMxwpV4UkmSpQeW0kgyAIePTokcxFpIaGBlq0aIGOHTuyQ46IlCozMxPGxsZQU1MTl/Xv3x8GBgbQ1tbGli1bxOVt2rTB0KFDoaKiAi0tLTRq1AgeHh7Q0NCAsbExZs6cKXasXLhwAc+fP4efnx/U1NTg4eGBHj16lBrDw4cPceTIEaxbtw56enowMDDA/PnzsXv3brGMiooKFi9eDHV1dTg7O6NZs2aIjo6W61hHjhyJ1q1bQ1NTE8uXL0dkZCTS0tJw7NgxWFlZYeLEiVBVVYWHhwf69u2LXbt2AQB27tyJBQsWwMLCAvr6+lixYgX27t2LvLw8qKurIzc3F/Hx8cjPz0fDhg3RqFGjCsdU3nHt3r0b8+bNg4mJCUxMTDB79uxy95WVlQU9PT253hNF2LhxIyZMmICPP/4YKioq6NOnD5ycnHD8+HGxjK6ursxISlKOnJwccbRsMQMDAzFP3OtSU1MRFxcHTU1NpKWlYfv27Zg1a5b4HVD8WU5PT8f58+eRlpYmk9cwJycHBgYGMvUAKLWuYqtWrUKDBg3Eh7Oz83scLREREVV3zW1N4D/dFZF7RyPQtyuc7F79cHf/0XOs3/4Huo3YgUnfhCH8/G3kFxSW2P7F3/nYGxaPETMO4tMxuzBixkHsDYvHi7/zS5RVpGoxUu7JkyeYNGkSTpw4AV1dXcyePRszZswotWxERAR8fHxw+/ZttGjRAlu2bEHLli0VG3BFvZGD8Pr168jIyEDdunXRunVrceoRO+OIarejO//11jIaGmoyzyuyjbyMjY2RmZmJ/Px8sWPu0KFDAF7dsbSgoEAsa2VlJbPtgwcPMH36dERGRuLZs2coKioS85mlp6ejXr16UFFRkdn+yZMnJWJISUlBYWEhGjRoIC4TBAGFhf+cWA0NDWVyVWlrayMnJ0euY7W0tBSfGxgYQE9PD/fu3cO9e/dKTHu1trbGvXv3AKDEemtraxQWFuL+/fvo2rUrAgIC8M033yA5ORmffvopVq1aBQsLiwrFVN5xpaeny7wnrz8vTd26dWV+AKouUlJScO7cOWzcuFFclp+fD3d3d/H16zlWSXmkUmmJz9DTp09l8hQW09bWRp06dbBgwQKoq6ujXbt2GDx4MMLCwuDq6gozMzOYmZkBePXZXb9+PWxsbPDixQtoa2tDKpWK08CL6wFQal3FvvrqK0yYMEF8nZGRwY45IiKiWkBbSw2DPn01Mi7p9mPsP34dh08nIzvnJSJ+v4uI3+/CxEgbgz61g1dPOzQw18Pt1CyM9T2C+4+eQyIBBAFISXuCP65l4D87/8C2IE80aqCc689q0SlX0UTCjx8/Rr9+/bB27Vp4e3tjw4YN8PT0RHJycqXcta+qGRsbIyMjA0VFRSgsLGRidCICALR1spGrfJ06KnJvUxEuLi7Q0NDAoUOHMHjw4HLLvpnP7JtvvkFRURFiY2NhZGSEw4cPY/LkyQAACwsL3Lt3D0VFRWLH3N27d0sdyWVpaQlVVVU8fPhQpoOqosrLs/a6u3fvis+fPHmC7Oxs1KtXD/Xq1UNKSopM2ZSUFNja2gKAuL74x6CUlBSoqKiIHQ5Tp07F1KlTkZWVhYkTJ2LOnDnYsWNHheMqi4WFBVJTU8V6X8+BVxpHR0ckJiaiY8eOZZaRSqUyd9QtKwl/ZbK0tMTs2bPh7+9fZpmEhASZqYykHE2aNIFEIkF8fDxatGgBAIiOji71Zi+Ojo5y7VtFRQWCIED4/zy89vb2iI6ORqdOncR6TExMypy6CgB6enrVcjQoERERKU7TRkaYP60zvp7ogp9/uYX9x67jj2sZePT4BX4IuYyNuy6jg1M9JNzKRPazVzn8i28DUPzvw8wXGOt7BCe2DYe2lloZNVUdpU9flSeR8IEDB2BjY4NRo0ZBQ0MDM2fORFFREcLDw5UQeflMjKRo2MIFQtE/SQc/+ugjtG7dGm3btmWHHBFVO/r6+li4cCF8fHywZ88eZGdnQxAE3Lhx460dNs+ePYOOjg709fWRnp6Of//73+I6FxcXaGlpYcWKFcjPz0d4eLjMDQZeZ2Zmht69e2P69OnIysqCIAhITU0ts/ybTE1NkZKSgqKi8hO+hoSEIDo6Grm5uZg7dy46deqE+vXro1evXkhJScHWrVtRUFCA8PBwHD16FMOHDwcAjBgxAosWLUJGRgays7Ph5+cHb29vqKur49KlS7hw4QLy8vKgra0tjh6SJ66yeHt7Y+nSpcjMzERmZqbM+1ua3r1749y5c+WWadWqFXbt2oW8vDxcv34dwcHB7xSbPCZNmoRNmzbh/PnzKCoqwt9//42zZ88iLS1NLBMREYHevXtXeSxUPh0dHXh5eWHevHl49uwZ4uLisGXLFowbN65E2S5duqBRo0ZYsmQJCgoKcPXqVYSGhqJv374AgLNnzyIlJQWCIOD+/fv48ssv4eHhAR0dHQCvbnqyevVq3LlzB3/99RcWLlyIsWPHKvR4iYiI6MOlqaGK/u5NEfLdABzfOhRjvVrCQE8TggBcuHoPT7JfytyU83VFgoD7j54j7MwNBUf9itI75cpKJBwXF1ei7JuJgCUSCRwdHUstWyw7OxtpaWniQxGJgKU6Glg2py/MrO2Qk50pE6+hoeF7j5ggIqoqs2bNwvr167F27VqYm5vD2NgYgwcPxtixYzFixIgyt1uwYAFiY2NhYGCAXr16oX///uI6NTU1HD58GKGhoahbty5Wr16Nzz77rMx9/fTTT1BTU4OTkxP09fXRo0cPJCcnVyj+wYMHQ01NDUZGRmjcuHGZ5caMGYOpU6fCxMQESUlJCAkJAfBqCunx48exceNGGBkZYcaMGdi1axfs7OwAvBoR6OrqirZt28LGxgZ6enr4z3/+A+Cfu8YaGRnBwsICT58+xbJly+SKqyzffvstmjRpAltbW7i4uKB///7ljiQcPXo0Tp06VW5OrkWLFiE9PR2GhoaYNm0aRo0aJXdc8mrdujV++ukn+Pr6wsjICFZWVli5cqXYWRkVFQWpVMppiNXEhg0boKamBnNzc7i7u8PPz0+cxSCVSsU756qqquLIkSM4c+YM9PX1MWTIEKxatQpdunQBAFy9ehWdO3eGjo4O2rRpA2NjY+zYsUOsZ8KECRg6dCjatWuHhg0bwtbWVuZGJUREREQV1djKEH6fd0Lk3tFYNc8dujpvn30jkQBHwpMUEF0pdQtCGd2FChIZGYkBAwYgM/OfzqvTp09j7NixMr+cA8D48eNRt25dmRECI0aMQMOGDbF48eJS9+/v74+AgIASy1NTU1G/fv1KOop/XIj7E3/HToa+nivuSxxhVs8GbZyaVno9RERUex08eBC+vr64efNmmWX8/f2hpqaGefPmKTCy99O3b19MmzatzBuBEJUlLS0NDRo0qLLrOyIiIvowfTpmF+6kPnlruYYNDPBz8PCqD+gNSp9DKU8i4TcTAZdXtpiiEwHraWjhx19aw1j6BFf+jMPaZe2rrC4iIqod7t+/j+TkZHz88cdITU3FokWLMHDgwHK3KS9vW3V19OhRZYdARERERDWIkYEWUtKeoLzhaBIJYFxXS3FBvUbpnXLyJBK2t7fHpk2bxNeCICA2Nhaff/55mftXdCLgxpaG+Nr3KwDAGADW9Q0UVjcREdVMBQUFmDZtGm7fvg2pVApPT098++23yg6LiIiIiKha8+zeBH9cKz+NmSAAnt2VM8NR6Tnl5EkkPHDgQNy4cQM7d+5EXl4e1qxZAwDo3r27osMuk6aGKpo1NhYfmhpK7/ckIqIPXP369REbG4ucnBzcv38fmzZtglQqVXZYRERERETVWt9PmsDMRAcqZeT2V5FIYGaigz7dbBUc2f/Xr5Ra31DRRMJGRkY4dOgQli1bBn19fYSEhODIkSPQ0NBQZvhERERERERERFTNaGupYVuQJz4y1gbwaqrq6/9+ZKyNbUGe0NZSU0p8Sr/Rg6IxETARERFRzcLrOyIiIirPi7/zEXbmBo6EJyEz628Y19WCZ/em6NPNVmkdckA1yClHRERERERERERUVbS11DCkd3MM6d1c2aHIqBbTV4mIiIiIiIiIiGoTdsoREREREREREREpGDvliIiIiIiIiIiIFIydckRERERERERERArGTjkiIiIiIiIiIiIFY6ccERERERERERGRgqkqOwBFKygoAABkZGQoORIiIiKiV8zMzKCqWusuyyoNr++IiIiouqnI9V2tu/p79OgRAMDZ2VnJkRARERG9kpqaivr16ys7jA8Wr++IiIiouqnI9Z1EEARBQfFUC7m5ubh27RpMTEyq7BfpjIwMODs74+LFizA3N6+SOqji2B7V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AsDkyZNx/fp1+Pn5ITk5GT/99BP27t0rU8ba2hq3bt1CTEwMMjMzZe5+S0Sy2ClHRDWam5sbBEGAVCpVdihEREREcrG1tcWlS5dQt25d9OvXD1ZWVujbty8cHBxw5swZmbxhP/74I7Kzs9GqVSv4+/uLo+iKzZ8/H05OTujevTu6d++Opk2bwsPDQ6546tWrh4CAAHz99dcwNTUVU3/MnTsXzs7O8PDwwODBg+Hj41PmKLfK1K1bNxw6dAgzZsxAcHAwnJyccPbsWcTHx6Njx45o27YtFi9ejPr16793XUuXLoWfnx8WL14MOzs79OrVC//73//kGmkIAAEBAdi+fTscHR1x4MABhIaGirnsJk+ejP79+2Pw4MFwcXFBXl4exo0bJ9f+dXV1cfToUVy9ehVOTk5YsmSJzF1ki7m6uqKwsFCmA660ZW+ytrbG/v37ERoaCkdHR+zYsaPEZ620fMVEVDqJ8ObkfyIiIiIiIqqWfH19sWnTJpw5cwZt2rRRdjhERPQe2ClHRERERET0Adm8eTNevnwJHx8fMVk+ERF9eNgpR0REREREREREpGDMKUdERERERERERKRg7JQjIiIiIiIiIiJSMHbKERERERERERERKRg75YiIiIiIiIiIiBSMnXJEREREREREREQKxk45IiIiIiIiIiIiBWOnHBERERERERERkYKxU46IiIiIiIiIiEjB2ClHRERERERERESkYOyUIyIiIiIiIiIiUjB2yhERERERERERESnY/wG05CtglQpttwAAAABJRU5ErkJggg==\n"
     },
     "metadata": {}
    }
   ],
   "source": "r1 = np.random.default_rng(7)\nIMP = SimpleImputer(strategy='median').fit(XALL[DEV]); XI = IMP.transform(XALL)\ndev_idx, oot_idx = np.flatnonzero(DEV), np.flatnonzero(~DEV)\npos = r1.choice(dev_idx[YALL[dev_idx] == 1], 600, replace=False); neg = r1.choice(dev_idx[YALL[dev_idx] == 0], 2400, replace=False)\nPOOL1 = r1.permutation(np.r_[pos, neg]); TR1 = POOL1[:1200]; TE1 = r1.choice(oot_idx, 4000, replace=False)\nXtr1, ytr1, Xte1, yte1 = XI[TR1], YALL[TR1], XI[TE1], YALL[TE1]\ntab1, info1 = B.kernel_classification(Xtr1, ytr1, Xte1, yte1, q=10, alert_rate=0.05, Xtr_full=Xtr1, Xte_full=Xte1)\ntab1.loc[0, 'Model'] = 'Fidelity quantum kernel SVM (10 qubits, ZZ map)'\nGB_FULL_SAME = float(roc_auc_score(yte1, GBM.predict_proba(XALL.iloc[TE1])[:, 1]))\nSC_FULL_SAME = float(roc_auc_score(yte1, SC.decision_function(woe_apply(XALL.iloc[TE1], WOE))))\ntab1 = pd.concat([tab1, pd.DataFrame([{'Model': f'Gradient boosting (all columns, full {int(DEV.sum()):,} development file)', 'Test AUC': round(GB_FULL_SAME, 4)},\n                                      {'Model': f'WOE scorecard (all columns, full {int(DEV.sum()):,} development file)', 'Test AUC': round(SC_FULL_SAME, 4)}])], ignore_index=True)\ndisplay(tab1)\nprint(f\"Selected bandwidth {info1['bandwidth']}, C {info1['C']} · PCA keeps {100 * info1['evr']:.0f}% of the variance in 10 components\")\nfig, ax = plt.subplots(1, 2, figsize=(11.5, 3.6))\nfor name, col in [('Quantum kernel', B.BLUE), ('Logistic regression', B.GRAY), ('RBF-SVM', B.TEAL), ('Gradient boosting', B.AMBER)]:\n    fpr, tpr, _ = roc_curve(info1['yte'], info1['preds'][name]); ax[0].plot(fpr, tpr, color=col, lw=2.2 if name == 'Quantum kernel' else 1.4, label=name + ' (1,200 sample)')\nfpr, tpr, _ = roc_curve(yte1, GBM.predict_proba(XALL.iloc[TE1])[:, 1]); ax[0].plot(fpr, tpr, color=B.NAVY, ls='--', lw=1.6, label='Gradient boosting (full file)')\nax[0].plot([0, 1], [0, 1], ':', color='#BBBBBB'); ax[0].set_xlabel('False-positive rate'); ax[0].set_ylabel('True-positive rate'); ax[0].legend(frameon=False, fontsize=8); ax[0].set_title('ROC, 4,000 out-of-time applicants (2025)')\nG1 = info1['grid'].groupby('bandwidth')['cv_auc'].max(); ax[1].plot(G1.index, G1.values, 'o-', color=B.BLUE); ax[1].set_xscale('log')\nax[1].set_xlabel('Quantum-kernel bandwidth'); ax[1].set_ylabel('Cross-validated AUC'); ax[1].set_title('Bandwidth selection (training data only)')\nplt.tight_layout(); FIG1 = B.savefig('t1_qml'); plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "0de96866",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:35:17.833611Z",
     "iopub.status.busy": "2026-10-03T21:35:17.833255Z",
     "iopub.status.idle": "2026-10-03T21:35:35.117632Z",
     "shell.execute_reply": "2026-10-03T21:35:35.114992Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 348
    },
    "id": "0de96866",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791085986996,
     "user_tz": -180,
     "elapsed": 16905,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "0d0bba1f-372e-4806-b100-1c258c132c7b"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                               Model  CV AUC  Test AUC  Test PR-AUC  Recall @ 5% alerts    Fit s\n",
       "0    Fidelity quantum kernel SVM (10 qubits, ZZ map)  0.8270    0.8464       0.3348              0.3347  14.7050\n",
       "1       Projected quantum kernel (10 qubits, ZZ map)  0.8156    0.8384          NaN                 NaN      NaN\n",
       "2             Logistic regression (same 10 features)  0.8440    0.8439       0.3659              0.3517   0.2746\n",
       "3                         RBF-SVM (same 10 features)  0.8457    0.8490       0.3587              0.3602   2.0404\n",
       "4                   Random forest (same 10 features)     NaN    0.8397       0.2956              0.2881   1.4758\n",
       "5               Gradient boosting (same 10 features)  0.8319    0.8384       0.3179              0.3136   2.9157\n",
       "6     Gradient boosting (all 55 features, reference)  0.8307    0.8382       0.3176              0.3263      NaN\n",
       "7  Gradient boosting (all columns, full 50,280 de...     NaN    0.8471          NaN                 NaN      NaN\n",
       "8  WOE scorecard (all columns, full 50,280 develo...     NaN    0.8444          NaN                 NaN      NaN"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-d3fd67aa-ee13-4db0-b878-ef4a4d39d75f\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>CV AUC</th>\n",
       "      <th>Test AUC</th>\n",
       "      <th>Test PR-AUC</th>\n",
       "      <th>Recall @ 5% alerts</th>\n",
       "      <th>Fit s</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Fidelity quantum kernel SVM (10 qubits, ZZ map)</td>\n",
       "      <td>0.8270</td>\n",
       "      <td>0.8464</td>\n",
       "      <td>0.3348</td>\n",
       "      <td>0.3347</td>\n",
       "      <td>14.7050</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Projected quantum kernel (10 qubits, ZZ map)</td>\n",
       "      <td>0.8156</td>\n",
       "      <td>0.8384</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Logistic regression (same 10 features)</td>\n",
       "      <td>0.8440</td>\n",
       "      <td>0.8439</td>\n",
       "      <td>0.3659</td>\n",
       "      <td>0.3517</td>\n",
       "      <td>0.2746</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>RBF-SVM (same 10 features)</td>\n",
       "      <td>0.8457</td>\n",
       "      <td>0.8490</td>\n",
       "      <td>0.3587</td>\n",
       "      <td>0.3602</td>\n",
       "      <td>2.0404</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Random forest (same 10 features)</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8397</td>\n",
       "      <td>0.2956</td>\n",
       "      <td>0.2881</td>\n",
       "      <td>1.4758</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Gradient boosting (same 10 features)</td>\n",
       "      <td>0.8319</td>\n",
       "      <td>0.8384</td>\n",
       "      <td>0.3179</td>\n",
       "      <td>0.3136</td>\n",
       "      <td>2.9157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>Gradient boosting (all 55 features, reference)</td>\n",
       "      <td>0.8307</td>\n",
       "      <td>0.8382</td>\n",
       "      <td>0.3176</td>\n",
       "      <td>0.3263</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>Gradient boosting (all columns, full 50,280 de...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8471</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>WOE scorecard (all columns, full 50,280 develo...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0.8444</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d3fd67aa-ee13-4db0-b878-ef4a4d39d75f')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-d3fd67aa-ee13-4db0-b878-ef4a4d39d75f button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-d3fd67aa-ee13-4db0-b878-ef4a4d39d75f');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_1864b1ed-1105-427c-a600-696e5699d950\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('tab1')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_1864b1ed-1105-427c-a600-696e5699d950 button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('tab1');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "tab1",
       "summary": "{\n  \"name\": \"tab1\",\n  \"rows\": 9,\n  \"fields\": [\n    {\n      \"column\": \"Model\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 9,\n        \"samples\": [\n          \"Gradient boosting (all columns, full 50,280 development file)\",\n          \"Projected quantum kernel (10 qubits, ZZ map)\",\n          \"Gradient boosting (same 10 features)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CV AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.01118881882356966,\n        \"min\": 0.8156,\n        \"max\": 0.8457,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.827,\n          0.8156,\n          0.8307\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Test AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0042299527184118686,\n        \"min\": 0.8382,\n        \"max\": 0.849,\n        \"num_unique_values\": 8,\n        \"samples\": [\n          0.8384,\n          0.8382,\n          0.8464\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Test PR-AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.026835405717074608,\n        \"min\": 0.2956,\n        \"max\": 0.3659,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.3348,\n          0.3659,\n          0.3176\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Recall @ 5% alerts\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.026223729711846867,\n        \"min\": 0.2881,\n        \"max\": 0.3602,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.3347,\n          0.3517,\n          0.3263\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Fit s\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5.904754186246875,\n        \"min\": 0.2746,\n        \"max\": 14.705,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.2746,\n          2.9157,\n          2.0404\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Projected quantum kernel: bandwidth 0.1, γ 0.5, C 1 → test AUC 0.838\n"
     ]
    }
   ],
   "source": "# Projected quantum kernel on the same 10 principal components (bandwidth, γ and C chosen by CV on training data only)\nZtr1A, Zte1A, _ = B.angle_features(Xtr1, Xte1, 10)\nbest1 = (-1, None, None)\nfor bw in (0.1, 0.3, 0.5, 1.0):\n    cv = H.pqk_cv(H.bloch_features(Ztr1A, bw), ytr1, gammas=(0.5, 1, 2, 4, 8))\n    best1 = max(best1, (cv['cv_auc'], bw, cv))\nBW1P, CV1P = best1[1], best1[2]\nS1P = H.pqk_scores(H.bloch_features(Ztr1A, BW1P), ytr1, H.bloch_features(Zte1A, BW1P), CV1P['gamma'], CV1P['C'])\nPQK1_AUC = float(roc_auc_score(yte1, S1P))\ntab1 = pd.concat([tab1.iloc[:1], pd.DataFrame([{'Model': 'Projected quantum kernel (10 qubits, ZZ map)', 'CV AUC': round(CV1P['cv_auc'], 4), 'Test AUC': round(PQK1_AUC, 4)}]), tab1.iloc[1:]], ignore_index=True)\ndisplay(tab1)\nprint(f\"Projected quantum kernel: bandwidth {BW1P}, γ {CV1P['gamma']}, C {CV1P['C']} → test AUC {PQK1_AUC:.3f}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "de1b9b3a",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:35:35.130197Z",
     "iopub.status.busy": "2026-10-03T21:35:35.129069Z",
     "iopub.status.idle": "2026-10-03T21:36:21.304346Z",
     "shell.execute_reply": "2026-10-03T21:36:21.303090Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 648
    },
    "id": "de1b9b3a",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791086049907,
     "user_tz": -180,
     "elapsed": 62914,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "4ddc9e2a-cd06-4aaa-d150-bfd3a6ae87d0"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "     Quantum kernel        Logistic regression        RBF-SVM        Gradient boosting       \n",
       "               mean    std                mean    std    mean    std              mean    std\n",
       "n                                                                                            \n",
       "100           0.782  0.046               0.807  0.018   0.788  0.034             0.754  0.025\n",
       "200           0.811  0.020               0.823  0.010   0.807  0.014             0.783  0.009\n",
       "400           0.831  0.009               0.834  0.006   0.828  0.006             0.807  0.006\n",
       "800           0.842  0.003               0.837  0.006   0.829  0.008             0.819  0.006\n",
       "1600          0.852  0.004               0.844  0.002   0.843  0.007             0.838  0.004"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-dd672424-005d-4341-8980-237fd07c80b3\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"2\" halign=\"left\">Quantum kernel</th>\n",
       "      <th colspan=\"2\" halign=\"left\">Logistic regression</th>\n",
       "      <th colspan=\"2\" halign=\"left\">RBF-SVM</th>\n",
       "      <th colspan=\"2\" halign=\"left\">Gradient boosting</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>0.782</td>\n",
       "      <td>0.046</td>\n",
       "      <td>0.807</td>\n",
       "      <td>0.018</td>\n",
       "      <td>0.788</td>\n",
       "      <td>0.034</td>\n",
       "      <td>0.754</td>\n",
       "      <td>0.025</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>200</th>\n",
       "      <td>0.811</td>\n",
       "      <td>0.020</td>\n",
       "      <td>0.823</td>\n",
       "      <td>0.010</td>\n",
       "      <td>0.807</td>\n",
       "      <td>0.014</td>\n",
       "      <td>0.783</td>\n",
       "      <td>0.009</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>400</th>\n",
       "      <td>0.831</td>\n",
       "      <td>0.009</td>\n",
       "      <td>0.834</td>\n",
       "      <td>0.006</td>\n",
       "      <td>0.828</td>\n",
       "      <td>0.006</td>\n",
       "      <td>0.807</td>\n",
       "      <td>0.006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>800</th>\n",
       "      <td>0.842</td>\n",
       "      <td>0.003</td>\n",
       "      <td>0.837</td>\n",
       "      <td>0.006</td>\n",
       "      <td>0.829</td>\n",
       "      <td>0.008</td>\n",
       "      <td>0.819</td>\n",
       "      <td>0.006</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1600</th>\n",
       "      <td>0.852</td>\n",
       "      <td>0.004</td>\n",
       "      <td>0.844</td>\n",
       "      <td>0.002</td>\n",
       "      <td>0.843</td>\n",
       "      <td>0.007</td>\n",
       "      <td>0.838</td>\n",
       "      <td>0.004</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-dd672424-005d-4341-8980-237fd07c80b3')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-dd672424-005d-4341-8980-237fd07c80b3 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-dd672424-005d-4341-8980-237fd07c80b3');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"EXTRA_FIGS1 = []\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": [\n        \"n\",\n        \"\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 609,\n        \"min\": 100,\n        \"max\": 1600,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          200,\n          1600,\n          400\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Quantum kernel\",\n        \"mean\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.027790286072654928,\n        \"min\": 0.782,\n        \"max\": 0.852,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.811,\n          0.852,\n          0.831\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Quantum kernel\",\n        \"std\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.017868967513541455,\n        \"min\": 0.003,\n        \"max\": 0.046,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.02,\n          0.004,\n          0.009\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Logistic regression\",\n        \"mean\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.014439529078193623,\n        \"min\": 0.807,\n        \"max\": 0.844,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.823,\n          0.844,\n          0.834\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Logistic regression\",\n        \"std\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.00606630035524124,\n        \"min\": 0.002,\n        \"max\": 0.018,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.01,\n          0.002,\n          0.018\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"RBF-SVM\",\n        \"mean\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.021575449010391382,\n        \"min\": 0.788,\n        \"max\": 0.843,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.807,\n          0.843,\n          0.828\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"RBF-SVM\",\n        \"std\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.011713240371477059,\n        \"min\": 0.006,\n        \"max\": 0.034,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.014,\n          0.007,\n          0.006\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Gradient boosting\",\n        \"mean\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03262974103482893,\n        \"min\": 0.754,\n        \"max\": 0.838,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.783,\n          0.838,\n          0.807\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": [\n        \"Gradient boosting\",\n        \"std\"\n      ],\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.008573214099741124,\n        \"min\": 0.004,\n        \"max\": 0.025,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.009,\n          0.004,\n          0.025\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 836x374 with 1 Axes>"
      ],
      "image/png": "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nTXd+zrvvPPc+fTlGM7l0ksvddteffXVvW6zvqAETj/xXmjOPPNMsWLFCvHEE0+IxYsXu9P/+7//223POc+6CFx55ZXi2WefFbfffrt7YEyYMEEkEgkhhBD19fXi1ltvFY888oh47rnnxEsvvST+/Oc/uxfUcDgsksmkO39nvr0JnHfffdeddsopp4hnnnlGPPnkk+KOO+4QZ555pvjLX/4ihBBixYoVWQfeDTfcIFasWCFWrFghdu/eLYQoPHB45JFHsi623/rWt8TTTz8t/vrXv4pzzz1XrFmzpuTtSikVP/jBD8STTz4pPvaxj2Wto2VZQoiBCRxN08T3v/998eyzz4o77rhDdHd3iyuvvNL9fsmSJeKJJ54QDzzwgJg+fboAIAghWevwk5/8RPzf//2feOaZZ8Ty5cvFo48+Ko466ih3Hq+++qrbthwC55lnnnHb+v1+8etf/1o8/vjj4ogjjsi6qHhvWqX2cdWqVeKGG25wp1966aXuPq+rqxNCCPGPf/xD3HXXXeKJJ54Qy5cvF88++6z49re/7f7m8ssvz+pvXwSOaZpi4sSJbvvzzz9fPPXUU+Jb3/pW1ro5+5NznjWAOO+888STTz4pfvjDH7o3DcaYWLdunRBCiIcffthtO2PGDPHXv/5VPP300+KUU05xp99+++1CCCGeeOIJd9oFF1wgnnvuOfH444+L2267TZx44onixRdfLLoera2tYsWKFVlC+aGHHnK3ZSKRyBu0H3fcceIf//iHuOqqq9xptbW17jz70vdivP/++wXPrdNPPz2rL/0VON3d3eKmm24SDz74oFi2bJl46aWXxAMPPCBmz57tnjvbt28vOI/x48eLv/71r+L3v/+9MAzDnf7ee++JRCIhVqxYIc4888ysdXW2Z2tr64AEDiAHvk8++WTeQO2KK64Q//jHP8T48ePdaU8++WSP2zl3mY2NjWLevHnudv/f//1ft91tt93mtjvssMPEww8/LB5//HGxcOFCd/o///lPt723b7W1teKuu+4Szz77rLjnnnuEENnXt0gkIu666y7x17/+VcRiMXf6U089JYQQoqurS4wZM8bt1w9/+EOxbNky8aMf/ch9yHDYYYe5y+6vwAEg5s2bJx555BFxyy23ZN0f2trahBBCvPnmm1nr9f/+3/8Tzz77rPjsZz/rTvcOfnoTOM71+5///Kf4+c9/nnVMPf/88z32+7e//a3b1rkfekWPI2bWr1+fda0q1LfB3AcAxHXXXSf++c9/Zg3cr7nmml73TTGB05f7mXceVVVV4u677xaPPPJI1jX5oosuEkL0ffwzkLFLT9xxxx3iL3/5i3j66afF8uXLxT//+U9x1llnufP1npve+7LT56VLl4o//elPYvv27X0+dwvhvXfeeuut4oUXXhAPPPCA+N73vicOPPBA96FVqeOq/o4bC11POOdZx9WBBx4o/vznP4unn35a/PjHPxZf+cpXhBB9P4a9/OxnP3PnX11dLXbs2NHrPuwLSuD0k9wLjfcVDofFbbfdltXeq6wPOOAA9+a8YsUKccYZZxS8ed53333ihBNOELFYrOBTba8qdqb1JnA+/PBDd9rnP/95sWnTJlcs9LSOhW5ohQYOXiFSyoW2p2VecMEF7vR4PJ71RH3VqlVCiIEJnBtuuCFr2ZZluU+YNE0TzzzzjLuPvvvd77q/+853vuP+5pVXXhHnnXeeGDdunNA0LW8f/fa3v+1xe/W0DoX4r//6L7ftt771LXe692abe9PqSx+LbTeHvXv3iquvvlrMnTtXBAKBvHktXLiwx/73xBtvvOHOZ+zYsSKVSrnfHXfccXn9+s9//pN1cXZujkIIccEFF7jf3XLLLUIIIc477zx32i9+8Qt33z744IPu9COOOEIIkS0kr732WrFt2zbBOe/T+hQbRAiRPRgzDEPs2rVLCCGPwWAw6H7nDAD70vdieG8mH//4x93pra2tWcvsr8ARQgrDU089VdTU1AjGWN7x4bW+eufx2GOPudO918NSrLX96atX4ASDQdHZ2SmEEOIXv/iFO33atGnuPv/617/uTv/Nb37T43bOXeaiRYsEIAXefffdl9XOO4D461//6u7X22+/3Z3+qU99ym3v3ZbeJ94O3mPu17/+tTvda7lzzvfHHnvMnfaRj3wk657kFedr164VQgxM4Hgt947Y897DvJbhb3/7224/XnrpJfc48gr+3gROMBgULS0tbnvv/vva177WY7+915X/+q//EkIIMWHCBKFpmpg7d667zPvuu89td8cddwz5PvA+QX/ggQcKntvFKHZt6su9wjuPP/7xj+701atXu9MjkYiwLKvP45+Bjl2KsXbtWvHZz35WTJo0Sei6nrd+3nuq93rzuc99Lm9efT13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6KKLkl7Dmp+JM888M2ld9WciGAwCUFpayjXXXEOXLl3Iysri+uuvT6yr/jw+//zzZGdn06lTJ5588kkA5s6dy2OPPcZbb72F1+ulR48e9V7rli1bGD58OD6fj1NPPZWtW7cm1i1evJi8vDxSUlIYMGAAc+fOTawLh8PcfvvtdOnShc6dOzNp0iRKSkri76fi9ttvp3Pnzvj9fvr378/ChQvrbdekSZO466679ntdAMFgkKuuuoq0tDT69u3Liy+++LO/yG+IpKh1IMmpaB50ewqazStBjRBCtHGhcISZb33UIsf68pu1fPnN2ga3ueT8X+J02Jt1/IULF3LTTTcxb948jjvuOJ588knOPPNMvv/+exwOBxdddBHHHnss77//PmvWrGH06NH069evzmNdfvnlPPHEE1xyySWUl5cngowvvviCnj17UlhYmEhRW7hwYWI/wzA466yzGDp0KOvXr8flcvHFF1/U2+bCwkI2bdrEhg0bUEoxZ84c7rvvPubMmcMRRxzBlClTOOuss1izZg2apnHOOedwzTXXcMstt/Dpp59y9tlnM27cuKRjzp8/nxUrVmCz2VixYgUXX3wx//73vxk+fDjvv/8+Y8eOZe3atbhcLq644go+/PBDTjrpJPbs2cOWLVsAeOqppzBNk/z8fBwOB8uXL09cb00zZszgL3/5C/Pnz6d79+7ccsstXHDBBXz22WeJbV555RX+/e9/k5aWxmmnncaf/vQnHn744ca9qc2kwmXsfOdXLXKssuV/omz5n+pd32ns/9AcKQ0eY9GiRQSDQc4777z9nm/OnDnMnDmTKVOmEAqFKCgo4M477+Tkk0+mrKyMcePG8bvf/Y4XXniBSCTCOeecw+TJk7n99tv56KOPGDt2LBdccEGdx7788svx+Xx8//33mKbJ+PHjeeSRR3j00UeB2Odx69atbNmyheXLl3PiiSdy7rnnMmbMGO65555GpahNnTqVefPmccQRR3DjjTcyceJEPv74Y4qKihg1ahR//OMfufzyy/nwww8599xzWbp0KYcffjiPPfYYH3zwAYsXL8bj8XDJJZdw3XXXMWvWLP7zn//w+uuvs3z5crKzs9m0aRNKKXr16tWodtV3XX369OGRRx5h1apVrF0b+7/p/PPP3+979HNID04HoEyjRo+NC6snB92TGxtrI8GNEEKIFvTKK68wadIkhg0bht1u5+6776aqqorPPvuMH3/8kUWLFvHYY4/hdDoZOHAgEyZMqPdYdrudH374gcLCQrxeL0OHDm1UG5YsWcKmTZt49tln8fv92Gw2Tj755Hq3V0rxhz/8AafTicvl4v/+7/+48847GTBgALqu85vf/AZN0/jyyy9ZtGgRlZWV3H777dhsNk455RRGjRpV65gPPvggfr8fl8vFSy+9xFVXXcWJJ56IxWJhzJgxDBw4kPfffx8Am83G999/T2lpKWlpaRx77LGJ69+9ezc//PADuq5z/PHH4/V663zNb775Zvr374/L5eLJJ5/kq6++ShqTdOONN9KtWze8Xi/jxo3jm2++adRr2ZEUFhaSkZGBzbZ3rsCxY8cSCARwu91MmTIlsfz444/nwgsvxGKx4HK56NWrF6eddhoOh4OMjAxuvvlmPv74YyAWOFVUVHDXXXdhs9k47bTTOP300+tsw86dO3n33Xd5/vnn8fv9BAIB7rvvPl577bXENhaLhd///vfY7XaGDBlC//79Wb58eZOudeLEiRx33HE4nU7++Mc/8umnn7Jt2zbee+89unfvzuTJk7FarZx22mmcddZZvPrqq0Dss/TAAw+Qk5NDSkoKTzzxBG+88QbhcBi73U4wGGTVqlVEIhF69uxJr169Gt2mhq7rtdde49577yUzM5PMzEzuuOOOJl1vU0kPTjumTAMVrZAeGyGEaOccdhuXnP/LBrdZsPAbdu4u2e+xOmWkcPrJx+33fM2Vn5+fdMNvsVjo1q0b+fn5eDweUlJS8Pv9ifVdu3Zl6dKldR5r9uzZ/P73v6dv37706dOHBx54IJFC1pAff/yRbt26Ybc3rhcqIyMjaXD55s2buf3227n77rsTy8LhMPn5+WiaRk5ODhbL3u+Au3btWivlq3v37knHW7hwIS+99FJiWSQSYeTIkXg8Ht59912eeuop7rjjDgYOHMjjjz9OXl4et99+O1VVVZx//vlUVFQwceJEHn300aQbdIi95jXTlbxeL+np6eTn5ycqy9VM33O73S026L0hmt1Hp7H/a3Cbok9vJrL7O6g3uRJAw5Y+gNSTnmnwXPuTkZFBYWEhkUgk8Rq+8847QCzlr+ZYm5rvH8BPP/3EjTfeyKeffkpZWRmmaeLzxc65fft2cnNzkz4T3bt3p7i4uFYbNm/ejGEYdO3aNbFMKYVhGInnaWlpSZ/d5rxf3bp1S/weCATw+/3k5+fX+qxALIUxPz8fqP1Z6tGjB4ZhsGPHDn75y1/y0EMPcc8997Bu3TpGjRrFM888Q05OTqPa1NB1bd++Pek1qfn7gSA9OO3Q3h6bUumxEUKIDkDTNJwOe4OPw3rnNupY/Xrl7vdYPyf3PTc3l82bNyeem6bJ1q1byc3NJScnh5KSEsrKyhLra44N2Ndxxx3H22+/TWFhITfffDPjxo2joqJiv+3r1q0bP/74I5FIpFFt3vd43bp144UXXqC4uDjxqKys5KKLLiInJ4ft27djmnvHfNR1DTWP2a1bN+64446k41V/4w/wq1/9ivnz57Nr1y7OPPPMRGqT1+vliSeeYP369Xz66ae88847/OMf/6h1rn1f8/Lycnbv3k1ubuM+EweKplmwOFIafLh6jqHh4AZA4eo5psHjNGYS8ry8PBwORyKoabjtyZ+Je+65B9M0WblyJaWlpcyaNSsxVi0nJ4f8/Pykz8SPP/5Y53G7deuG1Wpl586dic9CSUlJowOYxv7brHn+4uJiSktLyc3NrfVZgVjQVf1Z2Xf95s2bsVgsiQD5uuuuY/HixWzatIloNMqdd97ZpHbVJycnJ+nfUUP/L7QECXDakdqBTbx4gAQ2QgjR4fXpkY3H7aCh2wyP20HvHtktds5oNEowGEw8wuEwEyZMYPr06SxevJhIJMIf//hH7HY7J554It26dWPYsGHce++9hEIhVq5cmUiN2Vc4HGbmzJkUFRWh6zqBQABN09B1nczMTCwWS71loQcPHpwYi1JWVkYkEkmkEzXGtddey+OPP86KFStQSlFeXs6cOXMoKysjLy8Pp9PJ008/TTQaZeHChcyfP7/B41199dW8/PLLfPbZZ5imSVVVFR999BHbtm3jp59+4p133qG8vBybzYbP50PXY3+z586dy7p16zBNM5FqV72upgkTJvDss8+ybt06gsEgd955J0OGDGkX8wI5u4/G4upM/becFiyuzji7104DbKqUlBQefvhhfvvb3/L6669TWlqKUor169ezY8eOBvctKytL9EBu376dp556KrEuLy8Pl8vFE088QSQS4X//+1+9n4msrCzOPPNMbrzxRoqKilBKsXXr1v1+hqp17tyZzZs3JwVTdZk1axbLly8nGAxy9913c8IJJ9ClSxfOOOMM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LyeccAJffvklAJWVlfTv35/f/va3ie2///57XC4Xb7/9NkCjr/1vf/sbo0aNwu12M2DAAJYtW8bKlSsZNmwYHo+H0047jZ07d9a63vvvv5+MjAwCgQA333wzhmHUey1FRUVceeWVZGRkkJKSwumnn86aNWsS61esWMGIESPw+Xz4/X6GDBnC6tWr6z3e66+/zpgxY+pdD7Bnzx4mTJhAIBDA4/Fw9tln8+OPPyZt8/DDD5OZmUlKSgrXXXcdN954IyNGjEjaZsyYMbzxxhsNnksIIdoqCXCEEKKdu/vuu3n66adZvXo1ffv2paysjDFjxvDBBx/w9ddfM3z4cM4880wKCwsbPM7vfvc7fve73/HNN9/gdru58sorG9z+v//9Lzt37uTTTz/l2Wef5bHHHkuksRmGwbnnnktKSgpLlizh+eef5+67797vtdxwww0sXryYN998kxUrVjB69GhGjhxJfn4+brebV155hb/97W/Mnz+fcDjMxRdfzIUXXsh5550H0Ohrf+SRR7jqqqtYtmwZOTk5TJw4kZtuuoknnniCL774gh9//JF77703aZ8FCxawefNmPvnkE6ZPn86MGTMaHKtywQUXsGfPHhYsWMCSJUvo06cPI0eOpKKiAoAJEybQtWtXli5dytKlS7npppuwWOr/s/zZZ5/tdxzUZZddxsqVK3n//ff57LPPKC0tZezYsSilAJg1axaPP/44Tz/9NEuWLCElJYXp06fXOs6gQYP48ssviUQiDZ5PCCHaJCWEEKJdeP7551X37t0Tzz/66CMFqLlz5+533+7du6uZM2cmngNqzpw5SimlNm3apAA1Y8aMxPoFCxYoQFVVVSmllHrggQfU8ccfn1h/2WWXqd69eyvTNBPL8vLy1J133qmUUmrevHnKZrOpn376KbF+9uzZClAfffRRnW3csmWLslqtaseOHUnLhw4dqv74xz8mnj/yyCMqOztbXX311apHjx6qtLS0ydf+4IMPJp7/97//VYCaPXt2YtmTTz6pevfunXS9mZmZKhgMJm2TnZ2ddJ7nn39eKaXUp59+qlJTU1UoFEqsNwxDZWdnqzfeeEMppZTP51PTp09vsO3VioqKFKC++OKLpOUnn3yyuvXWW5VSSq1du1YB6quvvkqs37Ztm7Jareo///mPUir2Wt54441JxzjmmGPUySefnLRsxYoVClDbtm1rVPuEEKItkR4cIYRo5/b9Vr+8vJxbb72V/v37EwgE8Hq9bN26tVaq0r4GDBiQ+D07OxsgKU1rX0ceeSSapiXtU7392rVr6dGjB506dUqsHzJkSIPn//bbb4lGo/Tu3Tsx5sfr9bJ06VI2bNiQ2O7uu+8mNzeXl19+mZkzZ+Lz+Zp87UcffXTi986dOyeup+ayfa994MCBOByOxPO8vDwKCgooKSmpdS0rVqygpKSEtLS0xHX4/X5++umnxLXceOONXHnllYwcOZInn3ySLVu21PvaVFVVAeB0OuvdZvXq1djt9qQxOrm5ufTo0SOR+rZ27dpa70Nd74vL5QJiaYFCCNHeSJEBIYRo5zweT9Lz2267jQ8++IAnn3yS3r1743K5OOOMMwiHww0ex2azJX6vDlxM02zU9tX7NLT9/pSXl2Oz2Vi2bFlS4ATg9/sTvxcUFLBhwwZ0XeeHH37gxBNPTKxr7LXXda37Lvu519KlSxc++OCDWuvS0tKAWJrchAkTeO+995g7dy73338/c+fO5dRTT621T3p6OpqmUVRU1Ow2NcWePXsAyMzMPCjnE0KIliQ9OEII0cF8/vnnXHHFFYwdO5YBAwaQnp7Otm3bDmob+vXrx5YtW9i1a1diWc3qb3UZOHAgkUiEwsJC+vTpk/So7glSSjFp0iSGDBnCyy+/zI033pjU83Egr3358uWEQqHE8y+//JLs7GxSUlJqbXvssceyfft2HA5HrWupDnAgVrHs1ltv5aOPPmLEiBHMmjWrznPb7XaOOOKIpMIP+zr88MMJh8NJr3N+fj6bN2/miCOOAGLvy77vQ13vy/fff0+PHj0IBAL1nk8IIdoqCXCEEKKD6du3L2+99RYrVqxg2bJlXHTRRei6flDbMHLkSHr27MmkSZP49ttv+fjjj3n44YcBavXOVOvXrx/jx49n4sSJvPPOO2zatImvvvqKhx9+mI8//hiA5557jmXLljF16lSuuOIKTjnlFC699NJEb8uBvPaqqip+85vfsHr1av7973/z2GOPceONN9a57a9+9SuGDBnCOeecw3//+182bdrEZ599xu23386aNWuoqqrihhtu4JNPPmHLli18/PHHrFy5kv79+9d7/tNOO61WRbiaDjvsMMaMGcOVV17JF198wbJly5g4cSIDBgxI9ArdcMMNvPzyy7zyyiusW7eOe++9l40bN9Z6Tz777DNOO+20ZrxKQgjR+iTAEUKIDuaZZ55JlEg+99xzGTduHP369TuobdB1ndmzZ1NUVMSgQYP47W9/mygj3dA4kn/84x9cdNFF3HTTTfTr14/zzz+f7777jpycHFatWsXdd9/NX//6V3JycgB4+eWXWbt2LU899RRwYK/99NNPp0uXLpx44olceumlTJw4kVtvvbXObS0WC/PmzSMvL4/LLruM/v37M3HiRHbt2kVaWhq6rlNYWMjEiRM57LDDmDhxIhdffDG33HJLvee/6qqrmDNnDmVlZfVuM336dI4++mhGjx7NiSeeiNfr5Z133kkEMBMmTOCOO+7gpptuYtCgQRQVFTF+/Pik9yQcDjN79myuuOKKZr5SQgjRujSl4rUjhRBCiANowYIFjB49mp9++qndje2YNGkS5eXl/Otf/2rVdpx//vkMHz683sCqOfLy8hg0aBDPP/88AH/729948803+c9//tNi5xBCiINJigwIIYQ4IN566y0CgQC9evVi7dq13HDDDZxxxhntLrhpS5566inmz5/f7P3Lysr4+9//nkg/mz59Ol999RXPPfdcYhtd1xPBjhBCtEcS4AghhDggSktLufPOO9m2bRuZmZmMHj2aJ598srWb1a717NmTa6+9ttn7WywW5syZw8MPP0w4HObwww/nvffeSyoVLalpQoj2TlLUhBBCCCGEEB2GFBkQQgghhBBCdBgS4AghhBBCCCE6DAlwhBBCCCGEEB2GBDhCCCGEEEKIDkMCHCGEEEIIIUSHIQGOEEIIIYQQosOQAEcIIYQQQgjRYUiAI4QQQgghhOgwJMARQgghhBBCdBgS4AghhBBCCCE6jP8PRxlQhJ4otQYAAAAASUVORK5CYII=\n"
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "A quantum kernel on the full development file would need 1,264,014,060 distinct circuits (one per pair of applicants), each repeated for shots.\n"
     ]
    }
   ],
   "source": "D1, AGG1, GAP1 = B.size_sweep(XI[POOL1], YALL[POOL1], [100, 200, 400, 800, 1600], Xte1, yte1, 10, info1['bandwidth'], info1['C'], seeds=3)\ndisplay(AGG1.round(3))\nFIGS1 = B.plot_sweep(D1, 'Realistic bureau data: does the quantum kernel help when labels are scarce?', name='t1_sweep'); plt.show()\nN_DEV = int(DEV.sum()); KERNEL_CIRCUITS = N_DEV * (N_DEV - 1) // 2\nprint(f\"A quantum kernel on the full development file would need {KERNEL_CIRCUITS:,} distinct circuits (one per pair of applicants), each repeated for shots.\")\nEXTRA1 = [f\"Champions on the full {N_DEV:,}-applicant development file, scored out-of-time on 2025: gradient boosting AUC {PROD.loc[1, 'OOT AUC']:.3f} \"\n          f\"(Gini {PROD.loc[1, 'OOT Gini']:.3f}, KS {PROD.loc[1, 'OOT KS']:.3f}) and the WOE scorecard AUC {PROD.loc[0, 'OOT AUC']:.3f}; the oracle that knows the true default \"\n          f\"probability reaches {PROD.loc[2, 'OOT AUC']:.3f}, so the champions capture most of the learnable signal.\",\n          f\"On the same 4,000 test applicants the full-file gradient boosting scores AUC {GB_FULL_SAME:.3f} and the quantum kernel {info1['quantum_auc']:.3f}: the quantum kernel \"\n          f\"matches, but does not beat, classical models that train in seconds on the full file and need no quantum hardware.\",\n          f\"Scale check: a quantum kernel on the full development file would need {KERNEL_CIRCUITS:,} distinct circuits — gradient boosting trains on it in {t_gb:.0f} seconds.\"]\nEXTRA_FIGS1 = []"
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "a75fdcf0",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:36:21.329586Z",
     "iopub.status.busy": "2026-10-03T21:36:21.329065Z",
     "iopub.status.idle": "2026-10-03T21:36:22.051570Z",
     "shell.execute_reply": "2026-10-03T21:36:22.050586Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "a75fdcf0",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791086051087,
     "user_tz": -180,
     "elapsed": 1173,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "abe18b21-ad3b-448e-acf2-cabd8dde6f89"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Parity\n",
      "• Task: predict 12-month default for credit applicants (out-of-time: train 2024, test 2025). Data: synthetic bureau file, 100,000 applicants and 39 attributes, reduced to 10 principal components for the kernel (1,200 training / 4,000 test examples, 5.9% positives in test).\n",
      "• A 10-qubit fidelity quantum kernel (ZZ feature map; bandwidth 0.05, C 1.0 chosen by cross-validation on training data) reaches test AUC 0.846 versus 0.849 for the best classical model on the same features (RBF-SVM); cross-validated AUC 0.827 vs 0.846.\n",
      "• It is ahead of logistic regression, random forest and gradient boosting on the hold-out set and behind the others.\n",
      "• The projected quantum kernel used on hardware in Track 4 scores 0.838 on the same test applicants (best classical on the same features: 0.849).\n",
      "• The selected bandwidth (0.05) lies in the low-bandwidth regime where a quantum kernel behaves much like a classical one (Shaydulin & Wild 2022) — parity is the honest reading.\n",
      "• Training-size sweep: the quantum-minus-best-classical AUC gap ranges from -0.025 (n=100) to +0.008 (n=1600).\n",
      "• Champions on the full 50,280-applicant development file, scored out-of-time on 2025: gradient boosting AUC 0.861 (Gini 0.722, KS 0.574) and the WOE scorecard AUC 0.859; the oracle that knows the true default probability reaches 0.907, so the champions capture most of the learnable signal.\n",
      "• On the same 4,000 test applicants the full-file gradient boosting scores AUC 0.847 and the quantum kernel 0.846: the quantum kernel matches, but does not beat, classical models that train in seconds on the full file and need no quantum hardware.\n",
      "• Scale check: a quantum kernel on the full development file would need 1,264,014,060 distinct circuits — gradient boosting trains on it in 4 seconds.\n"
     ]
    }
   ],
   "source": "S1 = B.summarise_qml('Realistic bureau data: scorecard and gradient boosting vs a quantum kernel', tab1, info1,\n                     {'task': 'predict 12-month default for credit applicants (out-of-time: train 2024, test 2025)',\n                      'data': 'synthetic bureau file, 100,000 applicants and 39 attributes, reduced to 10 principal components for the kernel'},\n                     figures=[FIG_DATA, FIG1, FIGS1], sweep_gap=GAP1, extra_sentences=EXTRA1,\n                     context='The realistic case: large volume, many weak and messy signals, drift between vintages.')\nS1['numbers'].update({'gb_full_auc': float(PROD.loc[1, 'OOT AUC']), 'sc_full_auc': float(PROD.loc[0, 'OOT AUC']), 'oracle_auc': float(PROD.loc[2, 'OOT AUC']),\n                      'gb_full_same': GB_FULL_SAME, 'n_dev': N_DEV, 'kernel_circuits': KERNEL_CIRCUITS, 'gb_train_s': t_gb,\n                      'dr24': DR24, 'dr25': DR25, 'psi_max': float(PSI.max()), 'psi_feat': PSI.idxmax()})\nS1['sentences'].insert(3, f\"The projected quantum kernel used on hardware in Track 4 scores {PQK1_AUC:.3f} on the same test applicants (best classical on the same features: {info1['best_classical_auc']:.3f}).\")\nS1['numbers'].update({'pqk_auc': PQK1_AUC, 'pqk_bw': BW1P})\nprint(S1['verdict']); [print('•', t) for t in S1['sentences']];"
  },
  {
   "cell_type": "markdown",
   "id": "8e980081",
   "metadata": {
    "id": "8e980081"
   },
   "source": "---\n## Track 2 — A quantum-structured risk signal, with a hardware-native quantum model\n\n**Why this track exists.** Theory is clear about *when* a quantum kernel can beat classical learners: only when the labels follow the geometry of the\nquantum feature map (Havlíček et al. 2019; Huang et al. 2021). Track 1 shows realistic bureau risk does not. Here we **engineer** such a signal.\n\n**Hardware-native model.** The fidelity kernel of the first edition needs one circuit per *pair* of applicants (2,000 applicants ≈ 2 million circuits).\nThe **projected quantum kernel** (Huang et al. 2021) needs three circuits per *applicant*: the ZZ-feature-map circuit measured in the X, Y and Z bases.\nThe 30 single-qubit expectation values (one Bloch vector per qubit) feed a Gaussian kernel. Circuits are half as deep, results are robust to shot noise,\nand cost grows linearly with the data — the only quantum-kernel design that fits a realistic QPU budget.\n\n**Construction (engineered, stated plainly).** Ten bureau attributes of 32,000 synthetic applicants are mapped to angles; each applicant's 10-qubit\nstate yields 30 projected features. The hidden \"high-risk\" label is set by projected-kernel similarity to six archetype applicants (top 20%); 5% of\nboundary cases are removed and 2% of labels flipped. **This is not a claim about credit risk** — it is a controlled experiment on the mechanism."
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "bd4faf9e",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:36:22.056142Z",
     "iopub.status.busy": "2026-10-03T21:36:22.055842Z",
     "iopub.status.idle": "2026-10-03T21:36:58.688725Z",
     "shell.execute_reply": "2026-10-03T21:36:58.686719Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 441
    },
    "id": "bd4faf9e",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791086089939,
     "user_tz": -180,
     "elapsed": 38849,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "e3dbeff3-865d-45c4-db6d-1b6ceb0c5bd0"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "30,400 labelled applicants · high-risk share 20.0% · projected features for 32,000 applicants in 27 s\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1265x418 with 4 Axes>"
      ],
      "image/png": "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/aijjtJnzJihr1ixImw+9fHpp5/qJ510ku52u/WePXvqzzzzTNj6rLlta67P7du3h8pr7gvz588Plb/yyiv6yJEj9a5du+rx8fG6y+XSu3Xrpk+cODGs/pHTmDdvnv7000/rvXr10l0ul96nTx998eLFynYc+alur9m2duvWLVS+YcMG/fLLL9c9Ho/esWPH0P65adMmfejQoXpMTIzepUsX/amnnqrXOq45z5dffll/+OGH9e7du+s2m01/9913ax0f1Q4cOKBff/31eteuXXWn06l7PB69V69e+qWXXqqvWrXKcLvs3r1b79mzZ6j82WefNWxjdna2PnbsWD0lJUV3OBx6u3bt9OOPP16//vrr9dzcXF3Xa+/HNdVcf9WOXK53331Xz8jI0F0ul37LLbeI27D62F67dq0+fvx4vXfv3rrP59MdDoeekpKin3feefrq1auVy7Fw4UJ92LBhert27XSXy6V36dJFv/TSS/U9e/aExvH7/fpTTz2ln3zyybrH49FjY2P1E088UX/xxRdrnYck999/f6i9mzZtChv29ddf6wcPHgwrO3DggO5wOEJ11q1bV6/51Ny2NfdXXdf1F198MTTMZrPpP/30U53Te+edd/TTTjtNT0hICJ1jTjvtNP2uu+4KLbu0P1511VWh8pUrV4ZNd926dfr48eND564OHTroI0aM0NeuXRs23gcffKCPGDFCT0pK0l0ul3700UfrU6dO1QsKCmq1dcOGDaH5zZw5s17riyjaSX2vmseLy+WqVe/XX3/Vr7/+er179+66y+XS27Vrp19wwQX6//t//y9svD179ujXXnutfvzxx4e+DxITE/U//vGP+rx582pN10yfbPv27fqECRP0tLS00HT79u2rX3311aHzqPS9UPMcqPq+qVaf7wCJ2X5VffqANb83j/xUT++DDz7Qzz//fL1nz56hc3OnTp308ePH1/p+kfow9T1vG7VHdW6vqT592fr2+2q2S1ov9V3HdZk4caIOQNc0Tc/LyxPHM/q+rbmf5+Tk6CNGjNDj4+P1448/Xtd1c9tQ13W9srJSf+GFF/Q//vGPekJCQqgPfs011+hlZWW6rqu3td/v18eOHRsqv/TSS/XKysp6rYea+8hJJ51UrzrViouL9Ztuuklv3769Hh8fr48ZM0bfvn172LFYc/tOmzZNP+200/S0tDTd5XLpcXFxev/+/fV77rlHLy4uDo1Xs/6Rn+pzh9l1q+u6PmDAAB2A3rNnT1PLeaRAIKA/+OCDev/+/fWYmBjd7XbrXbp00c8991x97ty5ofF++OEH/YorrtD79eunt2vXLtSPHjZsmL506dKwadY8jrp166Zv2rRJHzx4sB4bG6v36dMntG8vWrRI79evn+5yufTjjjtO//e//12rffv379fvuOMOvXfv3rrb7dYTExP14cOH65999llEl68+fzsdqan649Q4eIHMIqsXyLp3767b7fZaJ8KaHa/Dhw8rT5rHH3+8qc5YzS+7o48+utb0evbsqfv9/tD4H330kR4TE6M8USclJYWdiPPz8/WMjAzxxF7zD7qaJ8NOnTqFzaO6U2Fm3j///LOemJhYa7zjjjtO7MiprFmzRnc6nYbruSEXyM4//3xx/XTs2FHfu3evchqqbWW32/UtW7bUaseRn0hcIFPN/6abbtJ9Pl+t8hUrVtS5no2WzegC2bBhw8TlnD59urhd8vLywvaF2bNnG7bvwIEDekpKijiv6mVsyAWyHj166DabLfTv+lwge/LJJ8VxbDZbrQ5AZmamOP7GjRt1Xdf1iooKfcSIEeJ411xzTZ3bU9f10DRiYmLCziFGaq7jnJycetUx6rDruq73798/NPyBBx4wnNaqVavCtsGRn+rlMHuB7JVXXlGe0wHoTz75ZGi8mhcVVeecwsLCsPaWl5frLpdLB6Cfc8459VpfRNFO6nt9/fXXofLu3buH1dm4caOelJSkPPbcbrf+ySefhI0rHacA9Pvvvz9s2keet3Vd3Sfz+/167969xen+4x//CJue6lPXBbL6fAdIzPar6tsHrM8FMqPvw7i4OP37779Xbv/mvEAm9WXr2++rzwUyM/1sI9X73dFHH204Xn0ukCUmJurJyclh3126bm4b+v1+fdSoUeL4hw8f1nW99rYOBoNh6+3CCy+sd/9D1xt2gWz06NG12tm5c2e9Xbt2oX/X7GurjqXqz5lnnhkarz4XyMys22pXX311aJzdu3ebWtaaZs6cKc77tNNOC4337rvvGh5Xr7zySmjcmseRz+cL25+Aqgu599xzT61peL1e/dChQ6Hp/Pbbb3rXrl2V87PZbPqCBQsitnxmL5A1ZX+cGgdD+iPglVdeqRVoKWVC/frrrzjvvPPw/vvv49JLLw2Vv/DCC6H/f+yxx5CbmwsA6Ny5M958800sWLAAu3btstzGffv24cUXX8Trr78On88HANi2bRs++eQTAFXP6V955ZUoKyuDzWZDVlYWPvnkE8ycOROapuHw4cNhb6qbPn166Fbss846C++//z4WLlyIHj16AACysrKwadOmWu34/fffcdRRR+HVV1/F8uXLMWHCBNPzvvfee5Gfnw+gKqvn3XffxTPPPIOtW7eaWid33HEH/H4/AGDYsGF4//338cADD4SCxxvqoosuwssvv4wPPvgAq1atwocffogrr7wSALB3717MnTtXWe+XX37B1KlTsWzZMhx//PEAqjJW/vGPfwCoClt9+umnQ+OPGjUKa9aswZo1azB9+vQGt7u0tBRvv/12WE7UM888g86dO2Pp0qW4+OKLQ+V///vfTU37l19+wYQJE/DBBx/gjTfewNFHH60cr7CwECtXrgRQlVG2bNkyLF++HC+++CIuuugi8Zb+0tJSjBkzBps3bwYA/O1vf8Ntt91m2KYvv/wS+/fvB1D16MeKFSuwdOlSPP744xgyZAjsdrupZVTZvn07TjjhBLz11lt4//33MWLECKxZsyZsv7777ruxZs0avPPOOwCAE088EU8//TSWLVuGlStXYsWKFXj00UcBAMFgMOxRgSVLloT2D7vdjttuuw0ffvghXn/9dYwZMyb00pCnn346dMyfeOKJeOedd7B06dJQqOu8efPw/vvv17k8P/zwAwCgW7du9cr+WrNmTWgdd+/eHX379q2zTn3UfCS1rjDr999/H8FgEADw8MMP49///jcWLlyIe+65B/369bP0YpXff/8d119/PQKBAABgzJgxWLx4MZYsWYLJkycjJiYGALBhwwZkZWUBAFJSUvDSSy/h448/Dn0HbNq0KTS8msvlQrdu3QAA33//vem2EUW7ffv24YsvvsAHH3yA22+/PVR+/fXXh/5f13VcddVVOHz4MABg8uTJ+Pjjj/H0008jJiYG5eXluPrqq1FeXg6g6vh8+OGHsXjxYqxYsQIrV67EK6+8EsptmjVrFioqKky39ccff8SWLVsAAMOHD8dHH32EDz74AM888wxGjRoFt9sNAOL3wpo1a3DuueeK06/vd4DEbL+qvn3AtLQ0rFmzJuxxvaeffhpr1qzBM888A6Cq//Xiiy/i/fffx6pVq/Dxxx+HtmdJ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e+9h69atOHz4MP74xz8CAD755BPlF8cTTzwBm82GiooK/OlPfwplkRnRdR0pKSm499578e9//xu7d+/Gtm3b4PF4AFTlCQDqdQoAX3zxRcQv3tbcfzIyMnD77bdjyJAhiI2NVY5f85fs6qwMlZrH2o8//qg81r777rs621f9A0Bubi4qKytrDV+7di3OPPNM7N+/Hw6HA6+++ipuvPHGWuMNHTq01vzre/fY008/HfqlzmazhWXjqei6jv79++Opp57CV199hby8vFDeWzAYxNKlS+s135pqrvcPP/xQHK/men/xxRfFc1x15hgAVFRUhLIo+/XrZ7ptRG2B3W7HkCFD8MADD4TKHnroIZSWlgIIP/ZOPfVU8dirzgCsee6dM2cOhg8fjpNOOgm///57g9qp6zo8Hg+mTJmC5cuXIzc3F/v27Qv1Raq/Z4C6v99V6vsdoGK2X9WQPuCRaq7vc845B5mZmTjjjDPE70zpe/ijjz6qc141WVnHNanaZ7bfZ9SGSK1jh8MRyqMym9OrUtdy12cbWtlX77777tDFlunTp4eyyJpCz549Q///zTffhP5/69atygyymutj2rRpGDNmDE4//fRQDuuRjPYDs+u2WnXuHNCw/oOu6xg5ciReffVVfPvttygqKgrlE+/Zswdr167FwYMHUVZWBqBqv33ooYdw5pln4uijjw772yqSjjnmmNA66Ny5M/x+f63j48gLd1aXz6ym7o9T4+AjlhFQHRR7pBNOOEEMEzdywQUXhEIVb775ZpSWlqK0tLTWY5yRdPbZZyMlJQX79+/HwoUL0aFDB4wcORLBYBC//vorvvjiC2zevBnfffcdbDYbJkyYgOeffx5lZWU455xzcMstt6BDhw7YuXMncnJysHjxYsybNw9Dhw6N+LzPO+88vPXWWwCqfkHOysrCrl27MGfOnHovb8eOHXHKKadg3bp1qKiowKWXXopbb70VmzZtCvtlpqaaAac33XQTJk2ahA8++CDsNtlqNf/QXbx4MQYPHoydO3eGdeIbouZdZl988QWWL18Or9eL3r17o0OHDqba2lIdffTRuOiii3D88cejU6dO2LdvX+jRWF3XUV5eXuv4Ov/88xEMBjFlyhTk5+dj1KhR+PLLL9G1a1dxPmvXrsXNN9+Miy66CL169UL79u2xefNmlJSUAEAovNnn8yE5ORkH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Mrtaubm5mD9/fuhvpRQ2b96MiRMniuuXLulr164d2rZt2wB7QCbZ2dls5yhjG0cf2zg22M7RF8tL9NPT0znA1UKx79ay8VwcfWzj6GMbxwbbOfpact+tIfsTubm5KCgowC233AIA+Pbbb1FZWYnOnTtHVKdGD+lPSUnByJEj8cgjj+DIkSMoLCzEggULMH78+DrzXnfdddi5cyfeeOMN+P1+PPfccwCAwYMHx7raRERERHGJfTciIiI6WQ3Znxg3bhwWLVqEr776CmVlZZgxYwauu+66OrdwnkijD5ABwEsvvQS3243s7GxcdtllmD59eihgzev14pNPPgEAZGZm4t1338WTTz6JtLQ0vPnmm3jvvfeQkCCHaBMRERFRw2LfjYiIiE5WQ/UnLrvsMsycORNDhw5FVlYW/H4/XnnllYjr0+i3WAI1l/ItW7ZMO+3X98AOGjQIhYWFtreVmpqK/Px8472wdPLYztHHNo4+tnFssJ2jj21MDY19t5aH7Rx9bOPoYxvHBts5+uKljRuyPzFp0iRMmjTppOpjKaUiex49ERERERERERFRC9IkbrEkIiIiIiIiIiJqLBwgIyIiIiIiIiKiuMYBMiIiIiIiIiIiimscICMiIiIiIiIiorjGATIiIiIiIiIiIoprLXKA7PDhw7jxxhvh8/lw+umn49lnnxXnXbduHXJzc5GcnIy+ffti06ZNsatoM1ffdv7ss89w+eWXIzMzE5mZmRg6dCh27twZ28o2U5Ecy7UWL14My7LwyiuvRL+CLUQk7VxRUYF7770Xp556KlJTU3HuuefiyJEjsatsMxVJG//lL39B165d4fP50LFjRyxcuDB2FW3GXnzxRfTp0wcJCQm46aabjPPyu4+aGvbdYoN9t+hj3y022HeLPvbdoo99tyZItUC33HKLGj58uCopKVGbN29WrVu3Vu+//36d+Q4ePKjS0tLUkiVLVEVFhXr66afVGWecoSoqKhqh1s1Pfdv5/fffV0uXLlWHDx9WlZWVatq0aapz586NUOPmp75tXOvgwYOqU6dOqlu3burll1+OYU2bt0jaOS8vT40cOVL99NNPKhAIqIKCAp4z6qG+bbx3717ldrvVe++9p4LBoPrHP/6hUlJS1JdfftkItW5e3n77bfXOO++ou+++W40aNUqcj9991BSx7xYb7LtFH/tuscG+W/Sx7xZ97Ls1PS1ugKysrEx5PB61ZcuWUNnDDz+sRo4cWWfe+fPnq3PPPTf0dzAYVG3btlWrVq2KSV2bs0ja+dcOHDigAKiDBw9Gs4rNnp02HjdunHrllVfUxRdfzE5WPUXSztu3b1der1cVFxfHsIbNXyRtvH79etW6deuwsj59+qg//vGPUa9nS5Gfn2/sZPG7j5oa9t1ig3236GPfLTbYd4s+9t1ii323pqPF3WK5Y8cOBINB5Obmhsp69uyJwsLCOvMWFhaiZ8+eob8ty0KPHj2081K4SNr519atW4esrCxkZmZGs4rNXqRtvG7dOmzbtg0TJkyIVRVbhEjaeePGjejQoQMee+wxtG7dGl26dOEl5PUQSRv3798fZ599Nt555x0Eg0GsX78ee/bswcCBA2NZ5RaN333U1LDvFhvsu0Uf+26xwb5b9LHv1rTwuy92XI1dgYZWVlaGtLS0sLL09HTtfeZlZWXIyMio17wULpJ2Pt7u3bsxadIkPP/889GsXosQSRv7/X7cfffd+OMf/wiHo8WNe0dVJO28b98+FBYWYvjw4fjhhx+wefNmXHbZZcjJycHFF18cqyo3O5G0scvlQl5eHsaOHYvy8vJQJkv79u1jVd0Wj9991NSw7xYb7LtFH/tuscG+W/Sx79a08Lsvdlrc2djr9aK0tDSsrKSkBD6fTztvSUlJvealcJG0c619+/Zh8ODBePDBBzFq1KhoV7HZi6SNf//732PQoEHo3bt3rKrXYkTSzsnJyXA6ncjPz0dCQgL69u2LG264AatWrYpVdZulSNp47dq1mDp1KtauXQu/34+CggI8/vjj+Nvf/har6rZ4/O6jpoZ9t9hg3y362HeLDfbdoo99t6aF332x0+IGyDp16gTLsvD111+HygoKCsIuD62Vm5uLgoKC0N9KKWzevFk7L4WLpJ0B4IcffsCll16KO+64A5MnT45VNZu1SNr4ww8/xJ/+9CdkZWUhKysLn376KR588EHceuutsaxysxRJO/fo0SOWVWsxImnjzZs344ILLsCAAQPgcDjQrVs3XHXVVVi9enUsq9yi8buPmhr23WKDfbfoY98tNth3iz723ZoWfvfFUONGoEXHzTffrEaMGKFKS0vVli1b1GmnnWZ8EtLrr7+uKisr1bx581S7du34NIh6qm8779+/X+Xk5KiZM2c2Qi2bt/q28aFDh1RRUVHoNWDAAPXUU08xkLSe6tvOVVVVqmPHjurRRx9VVVVV6ssvv1Tp6elq3bp1jVDr5qW+bbxu3TqVkZGhNm7cqJSqCdft0KGDmj9/fqyr3OxUVVWp8vJy9cgjj6gbbrhBlZeXK7/fX2c+fvdRU8S+W2yw7xZ97LvFBvtu0ce+W/Sx79b0tMgBsuLiYjVy5EiVkpKisrKy1Lx580LTUlJS1P/93/+F/v7oo49Ut27dVGJiourTp4/66quvYl/hZqq+7Txz5kwFQKWkpIS99u7d20g1bz4iOZaPxychRSaSdt62bZu68MILVXJyssrJyVGvvfZaI9S4+YmkjV9++WXVsWNH5fV6Vbt27dRDDz2kAoFAI9S6ecnPz1cAwl55eXlKKX73UdPHvltssO8Wfey7xQb7btHHvlv0se/W9FhKKdVYV68RERERERERERE1thaXQUZERERERERERBQJDpAREREREREREVFc4wAZERERERERERHFNQ6QERERERERERFRXOMAGRERERERERERxTUOkBERERERERERUVzjABkREREREREREcU1DpAREREREREREVFc4wAZUSNbtWoVLMuKyroty8KqVasAAN999x0sy0JhYSEA4OOPP4ZlWSgrK4vKtmO1jVrz58/H1VdfHfXtNJRBgwbhgQceCP3doUMHvPjii/VefsGCBRg+fHg0qkZEREQG7Ls1DPbdiKip4QAZUQswc+ZM9OnTp055UVERLrvsMu0y559/PoqKipCSktIgdfh1pyEa25BUVFQgPz8fjz76aFS3Y4fU0VyxYgXy8/NtrzcvLw8FBQVYv379yVaRiIiIYox9N/bdiKjp4QAZUYz4/f6YbzMrKwsJCQnaaR6PB1lZWVH7BTRW2wCA5cuX45RTTkHfvn2jup2G1KpVK/h8PtvLu91u3HLLLRH9cklERET1x75b9LDvRkRNEQfIiATBYBBz5szBWWedhYSEBHTo0AHPPfccAKCqqgrjx49Hhw4dkJSUhC5duuDVV18NW37QoEG49957cc899yAzMxPXXnstgJrL8jt27IikpCQMGTIE+/fvN9ZD9yvW8Zf2L168GLNmzcI///lPWJYFy7KwePFiAOGX6Z9ovXv37sXVV1+N9PR0pKSkoEePHli3bl299nfcuHFYt24dnn766VAdvvvuO23dly1bhq5d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bL0dO3bEmjVr8Nlnn+Hrr7/G+PHjUVJSElHd2rdvH3oi1S+//BL2VCjJ4MGD0a9fP4wYMQIffPAB9uzZg/Xr12Pq1KlhT0Nav349OnXqFPHtB0RERC0N+27su9XuN/tuRGQXB8iIBDNmzMA999yDhx56CF26dMFvf/vb0KXgd955J6655hrccMMNGDBgAPx+P8aPH3/CdXbo0AHLli3D8uXL0aNHD7z++uuYPXu2cRm3240333wTX331FXr06IEFCxbg0UcfDZvn+uuvx5AhQzBo0CC0bt0af/rTnyLe3+rqakycOBFdunTB8OHDQx2Q+u5vbUepS5cuaN26tTbjom/fvli6dClef/11dOvWDU8++STmzZuHa665JuL6Hu/222/HypUrceTIkVDZM888g/79++Oqq67CFVdcgWHDhuHss88OW27hwoUoLS1Fr169MHPmzDrvxYwZM9CzZ08MHjwYgwcPxtlnn40hQ4ZEVLc2bdpg1qxZeOCBB3Daaadh0qRJJ1zG4XBg9erVGDBgAPLy8tC5c2eMGTMGv/zyS9ivkEuXLq3XcUdERBQP2Hdj3419NyI6GZY6/iZuIqJm6vrrr8f555+PKVOmiPP06dMHw4YNw8yZM2NXsSj55ptvcPHFF2PHjh1ITU1t7OoQERERRYR9NyJqangFGRG1CP/1X/+F5OTkxq5GzOzfvx9LlixhB4uIiIiaJfbdiKip4VMsiahFOPPMMzFx4sTGrkbMXHrppY1dBSIiIiLb2HcjoqaGt1gSEREREREREVFc4y2WREREREREREQU1zhARkREREREREREcY0DZEREREREREREFNc4QEZERERERERERHGNA2RERERERERERBTXOEBGRERERERERERxjQNkREREREREREQU1zhARkREREREREREcY0DZEREREREREREFNc4QEZERERERERERHHt/wHgCHuCm2ZDoQAAAABJRU5ErkJggg==\n"
     },
     "metadata": {}
    }
   ],
   "source": "from sklearn.preprocessing import QuantileTransformer\nfrom sklearn.svm import SVC\nfrom sklearn.neural_network import MLPClassifier\nfrom sklearn.model_selection import GridSearchCV, StratifiedKFold\nimport warnings\nfrom sklearn.exceptions import ConvergenceWarning\nwarnings.filterwarnings('ignore', category=ConvergenceWarning)\nFEATS2 = ['card_util', 'payment_to_income', 'inquiries_12m', 'history_m', 'overdraft_util', 'balance_trend_6m', 'min_payment_share', 'n_lenders', 'age', 'income_declared']\nQ2 = len(FEATS2); r2 = np.random.default_rng(11)\nrows2 = r2.choice(len(BUREAU), 32_000, replace=False)\nD2 = BUREAU.iloc[rows2][FEATS2]; D2 = D2.fillna(D2.median())\nZ2 = QuantileTransformer(n_quantiles=1000, random_state=0).fit_transform(D2.values + r2.normal(0, 1e-6, D2.shape))\nBW_T, G_T, M_T = 0.5, 2.0, 6\nt0 = time.perf_counter(); BV_T = H.bloch_features(Z2, BW_T); t_bv = time.perf_counter() - t0\nCENT = BV_T[r2.choice(len(BV_T), M_T, replace=False)]; A_T = r2.choice([-1, 1], M_T) * r2.uniform(0.5, 1.5, M_T)\nF2 = H.pqk_kernel(BV_T, CENT, gamma=G_T) @ A_T; THR2 = np.quantile(F2, 0.80)\nMARG = np.abs(F2 - THR2); keep2 = MARG > np.quantile(MARG, 0.05)\nY2 = (F2 > THR2).astype(int); FLIP = r2.random(len(Y2)) < 0.02; Y2 = np.where(FLIP, 1 - Y2, Y2)\nidx2 = np.flatnonzero(keep2)\nTEST2, POOL2, BIG2 = idx2[:3000], idx2[3000:7000], idx2[7000:]\nprint(f\"{len(idx2):,} labelled applicants · high-risk share {Y2[idx2].mean():.1%} · projected features for 32,000 applicants in {t_bv:.0f} s\")\ng = np.linspace(0, 1, 70); GG = np.array(np.meshgrid(g, g)).reshape(2, -1).T\nZs = np.tile(np.median(Z2, 0), (len(GG), 1)); Zs[:, 0], Zs[:, 1] = GG[:, 0], GG[:, 1]\nfig, ax = plt.subplots(1, 2, figsize=(11.5, 3.8))\nim = ax[0].imshow((H.pqk_kernel(H.bloch_features(Zs, BW_T), CENT, gamma=G_T) @ A_T).reshape(70, 70), origin='lower', extent=[0, 1, 0, 1], cmap='RdBu_r', aspect='auto')\nax[0].set_xlabel('card utilisation (quantile)'); ax[0].set_ylabel('payment-to-income (quantile)'); ax[0].set_title('Engineered quantum risk surface (2-D slice)'); plt.colorbar(im, ax=ax[0])\ndr = BUREAU.iloc[rows2].assign(u=Z2[:, 0], d=Z2[:, 1]); dr['ub'] = (dr.u * 10).astype(int).clip(0, 9); dr['db'] = (dr.d * 10).astype(int).clip(0, 9)\nim2 = ax[1].imshow(dr.pivot_table(index='db', columns='ub', values='default_12m', aggfunc='mean').values, origin='lower', extent=[0, 1, 0, 1], cmap='Reds', aspect='auto')\nax[1].set_xlabel('card utilisation (quantile)'); ax[1].set_ylabel('payment-to-income (quantile)'); ax[1].set_title('Realistic default rate (Track 1 data), same slice'); plt.colorbar(im2, ax=ax[1])\nplt.tight_layout(); FIG2a = B.savefig('t2_surface'); plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "7b2e9635",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:36:58.692079Z",
     "iopub.status.busy": "2026-10-03T21:36:58.691842Z",
     "iopub.status.idle": "2026-10-03T21:39:39.298423Z",
     "shell.execute_reply": "2026-10-03T21:39:39.296835Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 271
    },
    "id": "7b2e9635",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791086312188,
     "user_tz": -180,
     "elapsed": 220948,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "9e5e9da4-f4b4-4c9e-e8ea-89fc6d2f6c5e"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Projected quantum kernel chosen by CV (learner is not told the generating rule): bandwidth 0.5, γ 0.5, C 1 (CV AUC 0.932)\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "      Quantum kernel  Logistic regression  RBF-SVM  Gradient boosting  Neural network (MLP)\n",
       "n                                                                                          \n",
       "100            0.820                0.545    0.540              0.569                 0.543\n",
       "250            0.851                0.556    0.555              0.571                 0.549\n",
       "500            0.906                0.555    0.581              0.619                 0.590\n",
       "1000           0.920                0.568    0.591              0.622                 0.581\n",
       "2000           0.933                0.580    0.658              0.664                 0.623"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-c7cce49a-85f9-4f49-9a5d-2e8ae286f55d\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Quantum kernel</th>\n",
       "      <th>Logistic regression</th>\n",
       "      <th>RBF-SVM</th>\n",
       "      <th>Gradient boosting</th>\n",
       "      <th>Neural network (MLP)</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>100</th>\n",
       "      <td>0.820</td>\n",
       "      <td>0.545</td>\n",
       "      <td>0.540</td>\n",
       "      <td>0.569</td>\n",
       "      <td>0.543</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>250</th>\n",
       "      <td>0.851</td>\n",
       "      <td>0.556</td>\n",
       "      <td>0.555</td>\n",
       "      <td>0.571</td>\n",
       "      <td>0.549</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>500</th>\n",
       "      <td>0.906</td>\n",
       "      <td>0.555</td>\n",
       "      <td>0.581</td>\n",
       "      <td>0.619</td>\n",
       "      <td>0.590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1000</th>\n",
       "      <td>0.920</td>\n",
       "      <td>0.568</td>\n",
       "      <td>0.591</td>\n",
       "      <td>0.622</td>\n",
       "      <td>0.581</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2000</th>\n",
       "      <td>0.933</td>\n",
       "      <td>0.580</td>\n",
       "      <td>0.658</td>\n",
       "      <td>0.664</td>\n",
       "      <td>0.623</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c7cce49a-85f9-4f49-9a5d-2e8ae286f55d')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-c7cce49a-85f9-4f49-9a5d-2e8ae286f55d button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-c7cce49a-85f9-4f49-9a5d-2e8ae286f55d');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"print('Quantum minus best classical AUC by training size:', GAP2\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"n\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 767,\n        \"min\": 100,\n        \"max\": 2000,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          250,\n          2000,\n          500\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Quantum kernel\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.04833735615442785,\n        \"min\": 0.82,\n        \"max\": 0.933,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.851,\n          0.933,\n          0.906\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Logistic regression\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.013479614237803651,\n        \"min\": 0.545,\n        \"max\": 0.58,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.556,\n          0.58,\n          0.555\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"RBF-SVM\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.045568629560257784,\n        \"min\": 0.54,\n        \"max\": 0.658,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.555,\n          0.658,\n          0.581\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Gradient boosting\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.039805778474990325,\n        \"min\": 0.569,\n        \"max\": 0.664,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.571,\n          0.664,\n          0.619\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Neural network (MLP)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.032560712522916306,\n        \"min\": 0.543,\n        \"max\": 0.623,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.549,\n          0.623,\n          0.59\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Quantum minus best classical AUC by training size: {100: 0.251, 250: 0.28, 500: 0.286, 1000: 0.298, 2000: 0.269}\n"
     ]
    }
   ],
   "source": "cv_idx = POOL2[:1000]; best2 = (-1, None, None)\nfor bw in (0.3, 0.5, 1.0):\n    cv = H.pqk_cv(H.bloch_features(Z2[cv_idx], bw), Y2[cv_idx], gammas=(0.5, 1, 2, 4, 8))\n    best2 = max(best2, (cv['cv_auc'], bw, cv))\nBW2, CV2 = best2[1], best2[2]; G2, C2 = CV2['gamma'], CV2['C']\nprint(f\"Projected quantum kernel chosen by CV (learner is not told the generating rule): bandwidth {BW2}, γ {G2}, C {C2} (CV AUC {CV2['cv_auc']:.3f})\")\nmlp_cv = GridSearchCV(MLPClassifier(max_iter=2000, random_state=7), {'hidden_layer_sizes': [(64,), (128, 64)], 'alpha': [1e-4, 1e-2]}, scoring='roc_auc', cv=3).fit(Z2[cv_idx], Y2[cv_idx])\nMLP_P = mlp_cv.best_params_\nF_POOL, F_TEST = H.bloch_features(Z2[POOL2], BW2), H.bloch_features(Z2[TEST2], BW2)\nyte2 = Y2[TEST2]; ypool2 = Y2[POOL2]\nrows = []\nfor n in [100, 250, 500, 1000, 2000]:\n    for s in range(3):\n        ii = np.random.default_rng(1000 * s + n).choice(len(POOL2), n, replace=False); Zt, yt = Z2[POOL2][ii], ypool2[ii]\n        r_ = {'n': n, 'seed': s}\n        r_['Quantum kernel'] = roc_auc_score(yte2, H.pqk_scores(F_POOL[ii], yt, F_TEST, G2, C2))\n        r_['Logistic regression'] = roc_auc_score(yte2, GridSearchCV(LogisticRegression(max_iter=3000, class_weight='balanced'), {'C': [0.01, 0.1, 1, 10]}, scoring='roc_auc', cv=3).fit(Zt, yt).decision_function(Z2[TEST2]))\n        r_['RBF-SVM'] = roc_auc_score(yte2, GridSearchCV(SVC(class_weight='balanced'), {'C': [1, 10, 100], 'gamma': [0.3, 1, 3, 10]}, scoring='roc_auc', cv=3).fit(Zt, yt).decision_function(Z2[TEST2]))\n        r_['Gradient boosting'] = roc_auc_score(yte2, GridSearchCV(HistGradientBoostingClassifier(random_state=7), {'learning_rate': [0.05, 0.1], 'max_depth': [3, None]}, scoring='roc_auc', cv=3).fit(Zt, yt).predict_proba(Z2[TEST2])[:, 1])\n        r_['Neural network (MLP)'] = roc_auc_score(yte2, MLPClassifier(max_iter=2000, random_state=7, **MLP_P).fit(Zt, yt).predict_proba(Z2[TEST2])[:, 1])\n        rows.append(r_)\nLC2 = pd.DataFrame(rows); CLS2 = ['Logistic regression', 'RBF-SVM', 'Gradient boosting', 'Neural network (MLP)']\nM2 = LC2.groupby('n').mean().drop(columns='seed'); SD2 = LC2.groupby('n').std().drop(columns='seed')\ndisplay(M2.round(3))\nGAP2 = M2['Quantum kernel'] - M2[CLS2].max(1)\nQA2000, BC2000 = float(M2.loc[2000, 'Quantum kernel']), float(M2.loc[2000, CLS2].max()); BCN2000 = M2.loc[2000, CLS2].astype(float).idxmax()\nQA1000, QA100 = float(M2.loc[1000, 'Quantum kernel']), float(M2.loc[100, 'Quantum kernel'])\nprint('Quantum minus best classical AUC by training size:', GAP2.round(3).to_dict())"
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "5fed4f27",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:39:39.302994Z",
     "iopub.status.busy": "2026-10-03T21:39:39.302406Z",
     "iopub.status.idle": "2026-10-03T21:46:46.606697Z",
     "shell.execute_reply": "2026-10-03T21:46:46.604811Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 629
    },
    "id": "5fed4f27",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087002987,
     "user_tz": -180,
     "elapsed": 691132,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "9ddc2d84-5e6c-4941-b5e0-942b65bac90c"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "       Gradient boosting  Neural network (MLP)  RBF-SVM\n",
       "n                                                      \n",
       "4000               0.684                 0.636    0.632\n",
       "8000               0.706                 0.678    0.656\n",
       "16000              0.744                 0.724      NaN\n",
       "23400              0.754                 0.729      NaN"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-f7cd7e85-07c8-43e5-9a41-458bdb8ff158\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gradient boosting</th>\n",
       "      <th>Neural network (MLP)</th>\n",
       "      <th>RBF-SVM</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>n</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>4000</th>\n",
       "      <td>0.684</td>\n",
       "      <td>0.636</td>\n",
       "      <td>0.632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8000</th>\n",
       "      <td>0.706</td>\n",
       "      <td>0.678</td>\n",
       "      <td>0.656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16000</th>\n",
       "      <td>0.744</td>\n",
       "      <td>0.724</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>23400</th>\n",
       "      <td>0.754</td>\n",
       "      <td>0.729</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-f7cd7e85-07c8-43e5-9a41-458bdb8ff158')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-f7cd7e85-07c8-43e5-9a41-458bdb8ff158 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-f7cd7e85-07c8-43e5-9a41-458bdb8ff158');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"ax\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"n\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 8623,\n        \"min\": 4000,\n        \"max\": 23400,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          8000,\n          23400,\n          4000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Gradient boosting\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.03270066258248191,\n        \"min\": 0.684,\n        \"max\": 0.754,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.706,\n          0.754,\n          0.684\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Neural network (MLP)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.043683520920365364,\n        \"min\": 0.636,\n        \"max\": 0.729,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.678,\n          0.729,\n          0.636\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"RBF-SVM\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.016970562748477157,\n        \"min\": 0.632,\n        \"max\": 0.656,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.656,\n          0.632\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Quantum kernel with 1,000 applicants: AUC 0.920. Best classical with up to 23,400: 0.754 (n=23,400). No classical model tested matches it.\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 946x418 with 1 Axes>"
      ],
      "image/png": "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9XknT56kY8eOrFq1iscff1xdXvRL65AhQ9iyZQsRERHqY1u2bFFv5+vw4cM8//zz/Oc//yEgIACAPXv28N1337FgwQI++ugjtRZk2bJlZGZmVrjO1atXq7/Ivvrqq/zwww8sW7aMmTNncvXVV6PRaKq8X0ePHqVDhw4sX76c1atXl6jFqIxvvvmGjz76CACdTseTTz7J2rVr+eKLL7jpppvQaDSMHz/ea/sRERFqTF999VWVt3muw4cPM2nSJGJjY/nXv/5FaGgoCxcuZMOGDYCnpuirr75Sa5cAFi1apNZa7d+/n3/84x8AaLVaZs2axZo1a+jWrVu1axpPnDhBw4YN+eyzz4iNjeXuu+8us2xR7b9er+f999/nhx9+YMmSJTz11FNetQHnevfdd3nxxRcB6Ny5M2vXrsVsNlcr3rL89ttvzJ49G4B69erx4Ycfsn79ekaOHAnAH3/8oT4O0K9fP95//31Wr15NXFwc69ev56mnngI8TSzfeuutUrdz+PBhbrjhBlasWMFXX33Fdddd5/V4Re/pyjp+/Divv/4633zzjXqNyszM5N///jfgqTl/4okn1BqB22+/ne+++44nnniiSjXoeXl5jBkzRq356N69O8uWLWP16tXMmDGjRpqLlvb+HTNmjPr4l19+qf5f/H1WVKYqr+3+/fs5ePAgAAMGDGDdunWsWbOGd955h8GDB6vX5PL89ddfAPj4+BAZGVlmuQMHDjBp0iS+++47JkyYoC6fMWNGqdfK0s6dX375hddffx0Ao9HI66+/zurVqxkwYAAAKSkpXusuzYkTJ3j44Ydxu92YTCbmz5+vdlcBSEhI8DoXH374YfV6ERkZyfvvv8+6deuYP38+TZo0ATyvw7PPPqs+57777lOvhePHj0dRFMaOHUt6ejoAkyZNYv369SxcuBBfX18KCgoYN26cWhs+b9489fM4OjqaZcuWsXjxYk6cOFHuvp3r+eefJysrC4B27dqxYsUK3nnnHf7+++8qracs1b0uHDlyhPvvv581a9bQv39/dXnR+/65557zOs/bt2+vHs933nnnvOM+c+YMn3zyCa+99pq67PPPP8dut/Pll18yadIkdfkHH3xQ5fWXdQ232Wzce++95Ofno9VqmT17Nhs2bODFF19Eo9GQnp7uVfNe3OHDh7n77rtZs2YNS5YsoWnTpl6PHzt2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cM011/D222+zfft2MjIy1C+cbrdbnbAdyt+v4kr70lHWfm/durXUD6LitYLfffdduftXtL3SYjqf413afhSvxd+/f3+J46ooitr3uaj/F8DOnTvV/zMzM71qvqqiKl8MFUWhW7dufPjhh/z+++9kZ2ertVc2m63UY/DII4+oP/h8+OGHJWraa0rx4/j++++Xehxzc3OJiYkhKSlJLXvjjTcyYcIErr/++kodi4uRBFZG8f5Yf/zxh9e17Zdffqn0eoq/LzZu3Fjm3LVVfb8VV9Yxa9asGV26dAE8/ZeL+s8GBwczZMgQtVxVXltFUTCbzUyZMoXY2Fji4+M5ffq02gf6m2++KTdWgFatWgGeHx2L/3B5ru3bt3vdL37cz+0vBxW//4uvLyMjw+s9XVprn9IemzFjRpnHp3fv3jRr1ky97sbHx5c7rkJ51+fi2+zatWuZ2yzq+1vWtasq52pYWBj+/v4AFBQUqLXT5a2nKtfr87kuVEZFn3e18VleGeVdw4ufByNHjizzPBg7dmyJ9dbEca3K52dFivdTvvrqq887NlH7pCmvqHOmTZvGF198QVpaGvv27WPgwIE89thjWCwW1q5d69X89pVXXlEvlM2aNVOXf/HFFzRt2pScnJxSp8QIDw/H19eX/Px8UlJSmDdvHq1ateLll18+r2HZiwsKCuLo0aMAvPPOO1x77bUEBgbSpk2bKsV6McydO5e4uDiGDh1KdHQ0/v7+rF+/Xn28+NQQ5e1XRaxWKyEhIaSmpnLo0CEmTpxIixYteOONN0otP3r0aDUpnj9/vtpsKy0tjS+//JI5c+bQrl07Na60tDROnDjBkiVLiImJITw8nObNm3sd7/nz52M2mzl06BCLFi2q8rECGDVqlFqbf8sttzB9+nSioqJITk5m//79rFy5kqeeeopx48Zx0003qVMcrVy5khdeeIHrrruO995776LUhjz++OOcPHmSgQMHEhUVhV6v9xos6txpP8CTZKxdu5auXbuSmpqqTnXzwAMPqGUaNWqkTgty9OhRdWqeqrjnnnt4++23Ac/7Pjs7m/bt25OZmcnhw4fZsGED0dHRLFq0iJiYGPV5GzduZPny5djtdqZOnVrl7daWjh07EhUVRUJCAsnJydx7773ce++9bNiwoUqtEgYOHEhYWBinT58mPj6eG264gUmTJuHv78/27dvR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mTNnitWrV4t9+/aJV199Vbz++uttflbXXXeduPfee3OWtfw+/uQnPxEFBQXihRdeENu3bxf//u//LgKBgPd97s55evTRR0VFRYV49913xYEDB8SyZcvEn/70J2/94sWLxcyZM8XSpUvFnj17xEsvvSTeeustIYQQa9euFY8//rjYvHmz2Llzp/jKV74iIpGIOH78uLc9APG3v/1NCCGEYRhi0qRJ4nOf+5zYvHmz2LJli7jxxhvFnDlzhG3bOeevrd+PEEJ8//vfF0VFReLll18WW7duFbfddpsIh8Pi9ttv99p0dF6vvvpqcdlll4lNmzZ5x7VixYocGxYuXCjef/99sWHDBjFlyhTxiU98wtu+N64NQghxxRVXiGAw2OZr8uTJbW4rhBCXXnqpuOGGG8SaNWvEzp07xd133y2GDRsmmpubhRBCvPzyy0LXdbFx40Zx4sQJMXToUPGtb31LCCFEU1OTuOWWW8Q111zjfZdTqZT3Gxs9erR4+eWXxb59+8SRI0dEZWWl+OlPfyrWr18v9uzZIx599FGhKIrYtm1bm/Y999xzwufziaeeekrs2LFD3HfffSIcDosLL7zQa9PeNc+yLPHnP/9ZABB79+4Vhw8fFvX19R1u197nNWfOHLFq1SqxatUqcf755wtN08RTTz0lhGh9ffnSl74kLr744pw+PvvZz4qrr75aCNG57/jtt98uIpGI+NKXviR27Ngh/vCHPwjGmHjttdfatLOj335nvrPZ/3MTiYSIRqPipZde8tYfPHhQSJIk1q5d22r/7X3u9957rxg2bJh4/fXXxebNm8Utt9wihgwZ4l1j89HedaXlde+f//yn+P3vfy927NghNm/eLG677TYxatQokUwmhRDtX8OWLFkiIpGIeOWVV0RlZaX44IMPxNNPP+31PWLECPHLX/6yU3Z19XqXjwsvvFCEw2Hxgx/8QOzatUt89atfFbquiyuvvFL84Q9/ELt27RI33XSTGD9+vOCcCyGEWLVqlZAkSTzyyCNi586d4vHHHxeapnnnzrZtMWnSJPGRj3xEbNy4USxdulRMmTJFABDLli0TQghx8uRJUVpaKr7xjW+IHTt2iDVr1ohFixaJG264Ice29H3B6tWrhSzL4rnnnhMHDhwQa9asEb/+9a9zjuW1114TPp9PGIbR5vESZz4kTIkzho6EaUsefvhhcckll+RsX1pa6v1zEsL5B1VeXi6EEKKyslIoiiKOHDmS088555wjfvSjHwkhOhamY8aMES+88ELO9g888IC48sorhRBC/Pa3v81rQ0c3n/n+eT388MNC13Vx4sSJdj+H9I1SVVWVECK/MAUgKisrvW2++tWvinPOOcd7n0+Y/tu//Zv3Ph6PC0mSxKuvvuod88yZM3Ps+NKXvtShMG1JV89h2rbrrrsup5+rr77aExkdCdNPf/rT4qKLLuq0jcuWLROapnk3kd35PIUQ4tprr835TDtixowZ4vvf/37Ospbfx/Lycu+7K4QQnHMxefJk8bWvfU0I0b3z9MUvflFcfPHF3k1QNsuXLxeyLIt9+/Z1+jhGjBghnn32We999nf92WefFVOmTMlp39TUJGRZ9h40rFy5UkyYMMG74c7H4MGDxc9+9jPvfSKRECUlJTnCtCUtz+u0adM8QZavLQDx9ttve8sef/xxMWjQIO99b10bqqurxe7du9t8HThwoM1t3333XVFYWChSqZS3zLZtUV5eLp5//nlv2Wc+8xkxbdo0ceONN4pzzjlHmKbprct3XU7/xh577LE2953mwgsvFN/97nfbXH/uueeKf//3f89ZNnXq1Bxh2pKOrnmd3a4l27dvFwDE+vXrvWXr168XANoUpitXrhSSJIlDhw4JIYRIpVKisLBQPPfcc0KIzn3Hb7/9djFmzJic39x5550nHnjggTaPpaPffme+sy3P7d13351zbf3ud78rpk+f3qYN+T73pqYmoapqzvcrFouJ4uJi8d///d95++noutLyuteSZDIpNE0T7777rhCi/WvYT3/6UzF+/Pg2xVO2MO3p610+LrzwQrF48eKcY5FlWXzpS1/ylq1evTrne3vrrbd615U0d911l/fQ5bXXXhOqqubc6yxZsiRHmH73u98VV111VU4f6e//0aNHPdvS/8f+/Oc/i0gkIhobG9s8lo0bNwoA7V6riTMfCuUlzhqef/55LFiwAIMGDUIoFMIPfvADHDx4MKfNzJkzoeu69/68887D4cOH0dDQgM2bN8OyLIwZMwahUMh7rVmzBnv37u1w/7FYDHv37sXtt9+es/3Pf/5zb/sdO3bktaG7jBo1ygvhTbN792584hOfwKhRoxAOhzF16lQAaPVZZBOJRDB8+HDvfXl5OY4dO9buvqdNm+bN+/1+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\n"
     },
     "metadata": {}
    }
   ],
   "source": "# Data efficiency: give the classical models 5-20x more labelled applicants (hyper-parameters fixed from the n=2,000 runs)\neff = []\nfor n in [4000, 8000, 16000, len(BIG2)]:\n    ii = BIG2[:n]; Zt, yt = Z2[ii], Y2[ii]\n    e = {'n': n, 'Gradient boosting': roc_auc_score(yte2, HistGradientBoostingClassifier(learning_rate=0.1, max_iter=400, random_state=7).fit(Zt, yt).predict_proba(Z2[TEST2])[:, 1]),\n         'Neural network (MLP)': roc_auc_score(yte2, MLPClassifier(max_iter=1000, random_state=7, **MLP_P).fit(Zt, yt).predict_proba(Z2[TEST2])[:, 1])}\n    if n <= 8000:\n        e['RBF-SVM'] = roc_auc_score(yte2, SVC(C=10, gamma=3, class_weight='balanced').fit(Zt, yt).decision_function(Z2[TEST2]))\n    eff.append(e)\nEFF2 = pd.DataFrame(eff).set_index('n'); display(EFF2.round(3))\nBEST_BIG = float(EFF2.max(1).max()); N_BIG = int(EFF2.max(1).idxmax())\nreach = [int(n) for n in EFF2.index if EFF2.loc[n].max() >= QA1000]\nN_MATCH = reach[0] if reach else None\nprint(f\"Quantum kernel with 1,000 applicants: AUC {QA1000:.3f}. Best classical with up to {EFF2.index.max():,}: {BEST_BIG:.3f} (n={N_BIG:,}).\",\n      f\"Classical first matches it at n={N_MATCH:,}.\" if N_MATCH else 'No classical model tested matches it.')\nfig, ax = plt.subplots(figsize=(8.6, 3.8))\nfor c, col in [('Quantum kernel', B.BLUE), ('Logistic regression', B.GRAY), ('RBF-SVM', B.TEAL), ('Gradient boosting', B.AMBER), ('Neural network (MLP)', B.NAVY)]:\n    ax.plot(M2.index, M2[c], marker='o', color=col, lw=2.6 if c == 'Quantum kernel' else 1.4, label=c)\n    ax.fill_between(M2.index, M2[c] - SD2[c], M2[c] + SD2[c], color=col, alpha=0.12)\n    if c in EFF2:\n        ax.plot(EFF2.index, EFF2[c], marker='s', ls='--', color=col, lw=1.2)\nax.set_xscale('log'); ax.set_xlabel('Labelled training applicants (log scale; dashed = extra data given only to classical models)'); ax.set_ylabel('Test AUC (3,000 applicants)')\nax.set_title('Quantum-structured risk: learning curves (projected quantum kernel)'); ax.legend(frameon=False, fontsize=8, ncol=2); plt.tight_layout(); FIG2b = B.savefig('t2_learning'); plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "0164abd6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:46:46.609564Z",
     "iopub.status.busy": "2026-10-03T21:46:46.609306Z",
     "iopub.status.idle": "2026-10-03T21:46:46.683941Z",
     "shell.execute_reply": "2026-10-03T21:46:46.682410Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 160
    },
    "id": "0164abd6",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087003631,
     "user_tz": -180,
     "elapsed": 237,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "f302b25e-34aa-416d-86ca-46aaf8ffa1e8"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  Training / test applicants  Fidelity kernel circuits  Projected kernel circuits IBM QPU time, fidelity (1,000 shots) IBM QPU time, projected (1,000 shots)\n",
       "0                  150 / 150                     33675                        900                                2.4 h                               3.9 min\n",
       "1                  600 / 400                    419700                       3000                               30.3 h                              13.0 min\n",
       "2              2,000 / 3,000                   7999000                      15000                              577.7 h                              65.0 min"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-08765d9a-7d9a-4472-a974-cab42c9fbd9e\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Training / test applicants</th>\n",
       "      <th>Fidelity kernel circuits</th>\n",
       "      <th>Projected kernel circuits</th>\n",
       "      <th>IBM QPU time, fidelity (1,000 shots)</th>\n",
       "      <th>IBM QPU time, projected (1,000 shots)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>150 / 150</td>\n",
       "      <td>33675</td>\n",
       "      <td>900</td>\n",
       "      <td>2.4 h</td>\n",
       "      <td>3.9 min</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>600 / 400</td>\n",
       "      <td>419700</td>\n",
       "      <td>3000</td>\n",
       "      <td>30.3 h</td>\n",
       "      <td>13.0 min</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2,000 / 3,000</td>\n",
       "      <td>7999000</td>\n",
       "      <td>15000</td>\n",
       "      <td>577.7 h</td>\n",
       "      <td>65.0 min</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-08765d9a-7d9a-4472-a974-cab42c9fbd9e')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-08765d9a-7d9a-4472-a974-cab42c9fbd9e button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-08765d9a-7d9a-4472-a974-cab42c9fbd9e');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_93f7c718-c512-4f49-805a-082cb272a36e\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('COST2')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_93f7c718-c512-4f49-805a-082cb272a36e button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('COST2');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "COST2",
       "summary": "{\n  \"name\": \"COST2\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"Training / test applicants\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"150 / 150\",\n          \"600 / 400\",\n          \"2,000 / 3,000\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Fidelity kernel circuits\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 4491495,\n        \"min\": 33675,\n        \"max\": 7999000,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          33675,\n          419700,\n          7999000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Projected kernel circuits\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7607,\n        \"min\": 900,\n        \"max\": 15000,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          900,\n          3000,\n          15000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"IBM QPU time, fidelity (1,000 shots)\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"2.4 h\",\n          \"30.3 h\",\n          \"577.7 h\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"IBM QPU time, projected (1,000 shots)\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"3.9 min\",\n          \"13.0 min\",\n          \"65.0 min\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Projected-kernel circuit on IBM Fez: 36 two-qubit gates (the fidelity-kernel circuit U(x)·U(x′)† needs about twice as many).\n"
     ]
    }
   ],
   "source": "COST2 = pd.DataFrame([{'Training / test applicants': f'{a:,} / {b:,}', 'Fidelity kernel circuits': a * (a - 1) // 2 + a * b, 'Projected kernel circuits': 3 * (a + b),\n                       'IBM QPU time, fidelity (1,000 shots)': f\"{H.ibm_qpu_seconds(a * (a - 1) // 2 + a * b, 1000) / 3600:,.1f} h\",\n                       'IBM QPU time, projected (1,000 shots)': f\"{H.ibm_qpu_seconds(3 * (a + b), 1000) / 60:,.1f} min\"} for a, b in [(150, 150), (600, 400), (2000, 3000)]])\ndisplay(COST2)\nPQK_2q = H.ibm_line_calibration(FEZ_BE, Q2)['two_qubit_gates']\nprint(f\"Projected-kernel circuit on IBM Fez: {PQK_2q} two-qubit gates (the fidelity-kernel circuit U(x)·U(x′)† needs about twice as many).\")"
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "0d70d9da",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:46:46.686877Z",
     "iopub.status.busy": "2026-10-03T21:46:46.686540Z",
     "iopub.status.idle": "2026-10-03T21:46:46.712953Z",
     "shell.execute_reply": "2026-10-03T21:46:46.711471Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "0d70d9da",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087004748,
     "user_tz": -180,
     "elapsed": 969,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "4782e20b-26a1-4528-f6dc-98dd4b113a03"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Quantum ahead — on engineered quantum-structured data only\n",
      "• Engineered stress-test: 30,400 synthetic applicants, 10 bureau attributes, a high-risk label generated by a projected-quantum-kernel rule (20% high-risk, 2% label noise).\n",
      "• With 2,000 labelled applicants the projected quantum kernel reaches test AUC 0.933 against 0.664 for the best classical model (Gradient boosting) — a gap of +0.269; the gap is +0.251 to +0.298 across 100–2,000 training applicants (mean of 3 seeds, tuned classical models).\n",
      "• Data efficiency: even with 23,400 labelled applicants (more than 23× more) the best classical model reaches 0.754, still below the quantum kernel's 0.920 with 1,000.\n",
      "• Hardware cost: three circuits per applicant (36 two-qubit gates each on IBM Fez) instead of one circuit per pair — 15,000 instead of 7,999,000 circuits for 2,000 + 3,000 applicants.\n",
      "• Why it wins: the label follows the geometry of the quantum feature map, so the quantum kernel needs few examples while classical learners must discover the pattern from data (Huang et al. 2021); Track 1 shows realistic bureau risk does not meet this condition.\n"
     ]
    }
   ],
   "source": "VERD2 = 'Quantum ahead — on engineered quantum-structured data only' if GAP2.loc[2000] >= 0.03 else ('Parity' if abs(GAP2.loc[2000]) < 0.03 else 'Classical ahead')\nSENT2 = [f\"Engineered stress-test: {len(idx2):,} synthetic applicants, 10 bureau attributes, a high-risk label generated by a projected-quantum-kernel rule ({Y2[idx2].mean():.0%} high-risk, 2% label noise).\",\n         f\"With 2,000 labelled applicants the projected quantum kernel reaches test AUC {QA2000:.3f} against {BC2000:.3f} for the best classical model ({BCN2000}) — a gap of {GAP2.loc[2000]:+.3f}; \"\n         f\"the gap is {GAP2.min():+.3f} to {GAP2.max():+.3f} across 100–2,000 training applicants (mean of 3 seeds, tuned classical models).\",\n         (f\"Data efficiency: classical models first match the quantum kernel's 1,000-applicant AUC ({QA1000:.3f}) only at {N_MATCH:,} applicants — {N_MATCH / 1000:.0f}× more labelled data.\"\n          if N_MATCH else f\"Data efficiency: even with {int(EFF2.index.max()):,} labelled applicants (more than {int(EFF2.index.max()) // 1000}× more) the best classical model reaches {BEST_BIG:.3f}, \"\n          f\"still below the quantum kernel's {QA1000:.3f} with 1,000.\"),\n         f\"Hardware cost: three circuits per applicant ({PQK_2q} two-qubit gates each on IBM Fez) instead of one circuit per pair — \"\n         f\"{COST2.iloc[2, 2]:,} instead of {COST2.iloc[2, 1]:,} circuits for 2,000 + 3,000 applicants.\",\n         'Why it wins: the label follows the geometry of the quantum feature map, so the quantum kernel needs few examples while classical learners must discover the pattern from data '\n         '(Huang et al. 2021); Track 1 shows realistic bureau risk does not meet this condition.']\nCAV2 = (\"The signal is engineered and is not evidence that credit risk has quantum structure. At 10 qubits the projected features are still computed on a laptop, so a classical team \"\n        \"that knew the generating rule could reproduce them; a genuine advantage needs feature maps too large to simulate and data that really has this structure.\")\nS2 = B.summarise_generic('qml', 'Quantum-structured risk signal: projected quantum kernel vs classical learners', VERD2, SENT2, CAV2,\n                         numbers={'qubits': Q2, 'n_labelled': int(len(idx2)), 'q_auc_2000': QA2000, 'best_cls_auc_2000': BC2000, 'best_cls_name': BCN2000,\n                                  'gap_2000': float(GAP2.loc[2000]), 'gap_min': float(GAP2.min()), 'gap_max': float(GAP2.max()), 'q_auc_1000': QA1000,\n                                  'q_auc_100': QA100, 'best_cls_auc_100': float(M2.loc[100, CLS2].max()), 'best_big_auc': BEST_BIG, 'n_big': int(EFF2.index.max()),\n                                  'n_match': N_MATCH, 'bw': BW2, 'gamma': G2, 'pqk_2q': PQK_2q, 'circ_fid_big': int(COST2.iloc[2, 1]), 'circ_pqk_big': int(COST2.iloc[2, 2])},\n                         headline={'value': f\"{GAP2.loc[2000]:+.3f}\", 'label': f\"AUC vs best classical on quantum-structured data ({QA2000:.3f} vs {BC2000:.3f}, n=2,000)\"},\n                         table=M2.reset_index().round(4), figures=[FIG2a, FIG2b],\n                         context='An engineered stress-test with the quantum model that fits real hardware.')\nprint(S2['verdict']); [print('•', t) for t in S2['sentences']];"
  },
  {
   "cell_type": "markdown",
   "id": "e1efdeef",
   "metadata": {
    "id": "e1efdeef"
   },
   "source": "---\n## Track 3 — Portfolio tail risk: amplitude estimation vs Monte Carlo\n\n**Question.** Member banks and supervisors need tail metrics (VaR, expected shortfall, the probability that losses exceed a limit). Classical Monte Carlo\nerror falls as 1/√N with N scenarios; **quantum amplitude estimation** (QAE) falls as 1/N — a *proven* quadratic speed-up (Montanaro 2015; Woerner & Egger 2019).\n\n**Two scales.**\n1. *Full book (classical):* the 49,720 out-of-time loans of the synthetic file, with PDs from the Track 1 model, exposures from their balances and a seven-sector\n   factor model — run with Monte Carlo, as a bank would today.\n2. *Quantum circuit:* the six largest exposures of the book, in the credit-risk circuit of Egger et al. (2021): a systematic factor on 3 qubits, one qubit per\n   obligor with factor-dependent default probability, a weighted adder for the loss and a comparator that flags \"loss ≥ limit\". 21 qubits, built from Qiskit library gates\n   and verified exactly. QAE then estimates the tail probability with far fewer oracle calls than Monte Carlo.\n\nA 3-qubit version of this credit-risk oracle runs on IBM Fez and Origin Wukong in Track 4."
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "a0f880f7",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:46:46.716340Z",
     "iopub.status.busy": "2026-10-03T21:46:46.716081Z",
     "iopub.status.idle": "2026-10-03T21:47:01.427651Z",
     "shell.execute_reply": "2026-10-03T21:47:01.425686Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 529
    },
    "id": "a0f880f7",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087005295,
     "user_tz": -180,
     "elapsed": 538,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "3e8baa57-8a37-4748-8df4-b5bf560e1b70"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Book: 49,720 loans · exposure 17.12 bn TRY · expected loss 436.6 m TRY · 84 sector × PD-grade buckets\n",
      "400,000 scenarios in 7.1 s · EL 439.0 m · VaR99.9 1186.9 m · ES99.9 1288.5 m TRY\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "   Scenarios  Std. error of P(loss > limit)  Theory √(p(1−p)/N)\n",
       "0       1000                        0.00319             0.00315\n",
       "1       4000                        0.00159             0.00157\n",
       "2      16000                        0.00090             0.00079"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-4f9cd8b6-1f11-4585-8628-902b9ada0f23\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Scenarios</th>\n",
       "      <th>Std. error of P(loss &gt; limit)</th>\n",
       "      <th>Theory √(p(1−p)/N)</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1000</td>\n",
       "      <td>0.00319</td>\n",
       "      <td>0.00315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>4000</td>\n",
       "      <td>0.00159</td>\n",
       "      <td>0.00157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>16000</td>\n",
       "      <td>0.00090</td>\n",
       "      <td>0.00079</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-4f9cd8b6-1f11-4585-8628-902b9ada0f23')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-4f9cd8b6-1f11-4585-8628-902b9ada0f23 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-4f9cd8b6-1f11-4585-8628-902b9ada0f23');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"plt\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"Scenarios\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7937,\n        \"min\": 1000,\n        \"max\": 16000,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          1000,\n          4000,\n          16000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Std. error of P(loss > limit)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0011747481999702463,\n        \"min\": 0.0009,\n        \"max\": 0.00319,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.00319,\n          0.00159,\n          0.0009\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Theory \\u221a(p(1\\u2212p)/N)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0012023865157815656,\n        \"min\": 0.00079,\n        \"max\": 0.00315,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.00315,\n          0.00157,\n          0.00079\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 836x363 with 1 Axes>"
      ],
      "image/png": "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WQmlUikAiAoVKoh//vlHp97s2bOFXC4XLVq0EBqNJsd2du3aJZRK5StjISIqz9hFjYionPrtt99gbW0NCwsLtGnTBj169EBQUBBu374NlUqFpk2bSnWrVKkCT09P3L59WyqrVq2aTheowrh9+zZatWoltQYBQOvWrfHvv/8iLi6uQM9v1KgRLCwsdJ6flpaG+/fvFziG1q1b65S1bt1aeo3vv/8+Ll26hDp16mDSpEk4duyYVK9v375ITExEjRo1MGrUKPz+++/5dq9LTk6Gubl5rusaNmwoLVeqVEmnu1lWWVRUVIFeU35mzJiBK1eu4OjRo2jWrBkWLFiA2rVr69SZNWsWtFotpk2bBjMzsxzbsLCwQHp6OtLT04sdDxFRWcUEh4ionOrcuTOuXLmCkJAQJCcnY+3atbCysirw8wtTtzzy8/PDw4cPERQUhLi4OPTq1QsBAQEAIHXHW7RoERQKBUaMGIGuXbtCCJHrthwdHREdHZ3ruqwxLkDmOKPsj7PK9DFzmaOjI2rWrIm2bdti+/btmDRpEm7duqVTR6FQ6Pz7shcvXsDOzi5HjERExoQJDhFROWVlZYWaNWuiatWqOl9o69ati7S0NJw/f14qe/z4MR49eoR69erlu02VSpXngPjs6tati7/++ksnITh9+jSqVKkCW1vbAj3/8uXLSE5O1nm+SqVCjRo1Xvn8rG2cPn1ap+z06dM6r9He3h4DBw7EqlWrsHLlSqxZs0ZKNiwtLdG7d28sXboUe/bswaFDhxAeHp7rvho1aqTT+mVo7u7uGDBgAGbMmFGo5926dQuNGjUqoaiIiMoGJjhEREamdu3aePPNNzFixAj89ddfuHz5Mt599114e3ujY8eO+T7X09MTZ86cQWhoKJ49e5Zny8PYsWPx4MEDTJo0Cf/88w+2b9+OL7/8Mtd76ORm8ODBUCgUGDp0KG7evIlDhw5hypQpGDNmTIFblqZMmYKff/4ZK1aswN27dzF//nwcPHgQkydPBgB899132LJlC/755x/cuXMHv/32G2rVqgW5XI41a9Zg1apVuHnzJu7fv4/NmzfD3t4elSpVynVfHTp0QGxsLO7cuVOg2ErDpEmTsGfPHly4cKHAzzl16hT8/f1LMCoiIsNjgkNEZITWrFmDhg0bomvXrmjTpg2sra3x22+/6YyZyU1WglK3bl04OTnpTC2dnZubG/bt24fTp0+jYcOGmDhxIiZNmoQJEyYUKD4rKyscPHgQ//33H5o0aYLBgwejd+/e+Oqrrwr8Gt9++218++23mD9/PurXr49169Zh69ataNy4sbSP+fPno0mTJmjRogWio6OlaaTt7e2xfPlytGzZEr6+vrhw4QL27t2b5316HBwc0Lt3b2zcuLHA8ZW0OnXqoEuXLtKMd6/y5MkTnDp1CkOGDCnhyIiIDEsm8upwTERERJKrV6+ia9euuHfvXq7TRZd1M2fOxNOnT7FixQpDh0JEVKLYgkNERFQAPj4+mDdvHkJDQw0dSpE4ODjg888/N3QYREQlji04RERERERkNNiCQ0RERERERoMJDhERERERGQ0mOEREREREZDSY4BARERERkdFggkNEREREREaDCQ4RERERERkNJjhERERERGQ0mOAQEREREZHRYIJDRERERERGgwkOEREREREZjf8HONa2g1FjfjsAAAAASUVORK5CYII=\n"
     },
     "metadata": {}
    }
   ],
   "source": "from scipy.stats import norm\nBOOK = BUREAU.loc[~DEV, ['sector', 'mortgage', 'card_balance', 'loan_balance']].copy()\nBOOK['PD'] = np.clip(GBM.predict_proba(XALL[~DEV])[:, 1], 1e-4, 0.999)\nBOOK['EAD'] = BOOK['card_balance'] + BOOK['loan_balance']; BOOK['LGD'] = np.where(BOOK['mortgage'] == 1, 0.30, 0.45)\nBOOK['LOSS_GIVEN_DEFAULT'] = BOOK['EAD'] * BOOK['LGD']\nRHO_S = {'Manufacturing': 0.10, 'Trade': 0.10, 'Construction': 0.16, 'Tourism': 0.15, 'Agriculture': 0.12, 'Services': 0.08, 'Other': 0.06}\nBOOK['grade'] = pd.qcut(BOOK['PD'], 12, labels=False, duplicates='drop')\nBK = BOOK.groupby(['sector', 'grade']).agg(N=('PD', 'size'), PD=('PD', 'mean'), LGDEAD=('LOSS_GIVEN_DEFAULT', 'mean')).reset_index()\nBK['rho'] = BK['sector'].map(RHO_S); SEC = sorted(RHO_S); BK['s'] = BK['sector'].map({s: i for i, s in enumerate(SEC)})\nprint(f\"Book: {len(BOOK):,} loans · exposure {BOOK['EAD'].sum() / 1e9:.2f} bn TRY · expected loss {(BOOK['PD'] * BOOK['LOSS_GIVEN_DEFAULT']).sum() / 1e6:.1f} m TRY · {len(BK)} sector × PD-grade buckets\")\ndef book_mc(n_scen, seed=0, batch=50_000):\n    rr = np.random.default_rng(seed); L = []\n    for b0 in range(0, n_scen, batch):\n        m = min(batch, n_scen - b0)\n        zsys = rr.standard_normal(m); F = np.sqrt(0.6) * zsys[:, None] + np.sqrt(0.4) * rr.standard_normal((m, len(SEC)))   # correlated sector factors\n        pc = norm.cdf((norm.ppf(BK['PD'].values)[None, :] - np.sqrt(BK['rho'].values)[None, :] * F[:, BK['s'].values]) / np.sqrt(1 - BK['rho'].values)[None, :])\n        L.append(rr.binomial(BK['N'].values[None, :], pc) @ BK['LGDEAD'].values)\n    return np.concatenate(L)\nt0 = time.perf_counter(); LOSS = book_mc(400_000); t_mc = time.perf_counter() - t0\nEL, VAR999 = LOSS.mean(), np.quantile(LOSS, 0.999); ES999 = LOSS[LOSS >= VAR999].mean()\nLIMIT = np.quantile(LOSS, 0.99); P_LIM = float((LOSS > LIMIT).mean())\nprint(f\"400,000 scenarios in {t_mc:.1f} s · EL {EL / 1e6:.1f} m · VaR99.9 {VAR999 / 1e6:.1f} m · ES99.9 {ES999 / 1e6:.1f} m TRY\")\n# Precision of the classical estimate of a 1% tail probability as scenarios grow\nPREC = pd.DataFrame([{'Scenarios': n, 'Std. error of P(loss > limit)': float(np.std([(book_mc(n, seed=s) > LIMIT).mean() for s in range(1, 21)]))} for n in [1000, 4000, 16000]])\nPREC['Theory √(p(1−p)/N)'] = np.sqrt(P_LIM * (1 - P_LIM) / PREC['Scenarios'])\ndisplay(PREC.round(5))\nfig, ax = plt.subplots(figsize=(7.6, 3.3))\nax.hist(LOSS / 1e6, bins=120, color=B.BLUE, alpha=0.8); ax.axvline(EL / 1e6, color=B.GRAY, ls=':', label='expected loss'); ax.axvline(VAR999 / 1e6, color=B.RED, ls='--', label='VaR 99.9%')\nax.set_yscale('log'); ax.set_xlabel('Portfolio loss (m TRY)'); ax.set_ylabel('Scenarios (log)'); ax.set_title(f'Full book: {len(BOOK):,} loans, 400,000 Monte Carlo scenarios'); ax.legend(frameon=False)\nplt.tight_layout(); FIG3a = B.savefig('t3_book'); plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "815f05f2",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:47:01.431320Z",
     "iopub.status.busy": "2026-10-03T21:47:01.431058Z",
     "iopub.status.idle": "2026-10-03T21:47:39.439569Z",
     "shell.execute_reply": "2026-10-03T21:47:39.437260Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 324
    },
    "id": "815f05f2",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087016059,
     "user_tz": -180,
     "elapsed": 10754,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "405a05b4-94cd-43c8-f27b-e7eed6bfa56a"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "          Sector      PD  Asset correlation ρ  Loss given default (m TRY)  Loss units\n",
       "0          Trade  0.0340                 0.10                        3.63           2\n",
       "1  Manufacturing  0.0444                 0.10                        3.47           2\n",
       "2   Construction  0.1746                 0.16                        3.24           2\n",
       "3       Services  0.0201                 0.08                        3.22           1\n",
       "4    Agriculture  0.0583                 0.12                        3.17           1\n",
       "5          Trade  0.0854                 0.10                        2.90           1"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-fb985c2d-6820-4903-b1fa-6449cb912fcb\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Sector</th>\n",
       "      <th>PD</th>\n",
       "      <th>Asset correlation ρ</th>\n",
       "      <th>Loss given default (m TRY)</th>\n",
       "      <th>Loss units</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Trade</td>\n",
       "      <td>0.0340</td>\n",
       "      <td>0.10</td>\n",
       "      <td>3.63</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Manufacturing</td>\n",
       "      <td>0.0444</td>\n",
       "      <td>0.10</td>\n",
       "      <td>3.47</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Construction</td>\n",
       "      <td>0.1746</td>\n",
       "      <td>0.16</td>\n",
       "      <td>3.24</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Services</td>\n",
       "      <td>0.0201</td>\n",
       "      <td>0.08</td>\n",
       "      <td>3.22</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Agriculture</td>\n",
       "      <td>0.0583</td>\n",
       "      <td>0.12</td>\n",
       "      <td>3.17</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Trade</td>\n",
       "      <td>0.0854</td>\n",
       "      <td>0.10</td>\n",
       "      <td>2.90</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fb985c2d-6820-4903-b1fa-6449cb912fcb')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-fb985c2d-6820-4903-b1fa-6449cb912fcb button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-fb985c2d-6820-4903-b1fa-6449cb912fcb');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"print(f\\\"IBM Heron: A = {HA3['two_qubit_gates']:,} two-qubit gates (ESP {HA3['esp']:\",\n  \"rows\": 6,\n  \"fields\": [\n    {\n      \"column\": \"Sector\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Manufacturing\",\n          \"Agriculture\",\n          \"Construction\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"PD\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05613354315083511,\n        \"min\": 0.0201,\n        \"max\": 0.1746,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.034,\n          0.0444,\n          0.0854\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Asset correlation \\u03c1\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.027568097504180444,\n        \"min\": 0.08,\n        \"max\": 0.16,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.16,\n          0.12,\n          0.1\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Loss given default (m TRY)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.2529360920601618,\n        \"min\": 2.9,\n        \"max\": 3.63,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          3.63,\n          3.47,\n          2.9\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Loss units\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1,\n        \"max\": 2,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          1,\n          2\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Loss distribution (units): [6.638e-01 9.800e-02 1.750e-01 3.880e-02 1.800e-02 4.800e-03 1.100e-03\n",
      " 2.000e-04 0.000e+00 0.000e+00] · limit = 4 units → exact P(loss ≥ limit) = 0.02426\n",
      "21-qubit circuit · statevector P(objective = 1) = 0.0242561923 vs enumeration 0.0242561923 (|Δ| = 1.4e-17, 14 s)\n",
      "After one Grover iterate: P = 0.20441336 vs sin²(3θ) = 0.20441337 (60 s)\n",
      "IBM Heron: A = 1,206 two-qubit gates (ESP 7.1e-03); one Grover iterate Q = 9,949 (ESP ≈ 0 (below 1e-12))\n"
     ]
    }
   ],
   "source": "import itertools\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.circuit.library import UCRYGate, WeightedAdder, IntegerComparator, StatePreparation\nfrom qiskit.quantum_info import Statevector\nfrom qiskit_algorithms import EstimationProblem\ncand = BOOK[(BOOK['PD'] > 0.02) & (BOOK['PD'] < 0.25)].nlargest(6, 'LOSS_GIVEN_DEFAULT')\nPD6, RHO6 = cand['PD'].values, cand['sector'].map(RHO_S).values\nW6 = (1 + (cand['LOSS_GIVEN_DEFAULT'].values > np.median(cand['LOSS_GIVEN_DEFAULT'].values))).astype(int)    # loss units 1 or 2\nUNIT = float(cand['LOSS_GIVEN_DEFAULT'].values.mean() / W6.mean())\ndisplay(pd.DataFrame({'Sector': cand['sector'].values, 'PD': PD6.round(4), 'Asset correlation ρ': RHO6, 'Loss given default (m TRY)': (cand['LOSS_GIVEN_DEFAULT'].values / 1e6).round(2), 'Loss units': W6}))\nNZ, K6 = 3, 6\nZS = np.linspace(-3, 3, 2 ** NZ); PZ = norm.pdf(ZS); PZ /= PZ.sum()\ndef pd_given_z(z): return norm.cdf((norm.ppf(PD6) - np.sqrt(RHO6) * z) / np.sqrt(1 - RHO6))\nLMAX = int(W6.sum()); DIST = np.zeros(LMAX + 1)                    # exact loss distribution by enumeration (classical ground truth)\nfor zi, z in enumerate(ZS):\n    p = pd_given_z(z)\n    for x in itertools.product([0, 1], repeat=K6):\n        x = np.array(x); DIST[int(W6 @ x)] += PZ[zi] * np.prod(np.where(x == 1, p, 1 - p))\nTHR3 = int(np.argmax(np.cumsum(DIST[::-1])[::-1] <= 0.05)); TRUE3 = float(DIST[THR3:].sum())\nprint(f\"Loss distribution (units): {np.round(DIST, 4)} · limit = {THR3} units → exact P(loss ≥ limit) = {TRUE3:.5f}\")\nadder = WeightedAdder(K6, [int(w) for w in W6]); NS = adder.num_sum_qubits; comp = IntegerComparator(NS, THR3, geq=True)\nNQ3 = NZ + K6 + (adder.num_qubits - K6) + (comp.num_qubits - NS)\nA3 = QuantumCircuit(NQ3, name='A'); zq = list(range(NZ)); obl = list(range(NZ, NZ + K6)); rest = list(range(NZ + K6, NQ3))\nA3.append(StatePreparation(np.sqrt(PZ)), zq)                                                   # systematic factor Z\nfor k in range(K6):\n    A3.append(UCRYGate([float(2 * np.arcsin(np.sqrt(pd_given_z(z)[k]))) for z in ZS]), [obl[k]] + zq)   # default of obligor k given Z\naddq = obl + rest[:adder.num_qubits - K6]; A3.append(adder, addq)                                # loss = Σ w_k x_k\ncompq = addq[K6:K6 + NS] + rest[adder.num_qubits - K6: adder.num_qubits - K6 + comp.num_qubits - NS]; A3.append(comp, compq)\nOBJ3 = compq[NS]\nt0 = time.perf_counter(); P_SV = float(Statevector(A3).probabilities([OBJ3])[1]); t_sv = time.perf_counter() - t0\nprint(f\"{NQ3}-qubit circuit · statevector P(objective = 1) = {P_SV:.10f} vs enumeration {TRUE3:.10f} (|Δ| = {abs(P_SV - TRUE3):.1e}, {t_sv:.0f} s)\")\n# One Grover iterate on the full 21-qubit circuit: amplitude amplification must give sin²(3θ)\ntry:\n    from qiskit_aer import AerSimulator\nexcept ImportError:                                    # not pre-installed on Colab\n    import subprocess, sys; subprocess.run([sys.executable, '-m', 'pip', 'install', '-q', 'qiskit-aer'], check=True)\n    from qiskit_aer import AerSimulator\nQ3 = EstimationProblem(state_preparation=A3, objective_qubits=[OBJ3]).grover_operator\nc1 = transpile(A3.compose(Q3), basis_gates=['rz', 'sx', 'x', 'cx', 'ry', 'h', 'u']); c1.save_probabilities([OBJ3])\nt0 = time.perf_counter(); P_K1 = float(np.asarray(AerSimulator(method='statevector').run(c1, shots=1).result().data(0)['probabilities'])[1]); t_k1 = time.perf_counter() - t0\nTH3 = np.arcsin(np.sqrt(TRUE3))\nprint(f\"After one Grover iterate: P = {P_K1:.8f} vs sin²(3θ) = {np.sin(3 * TH3) ** 2:.8f} ({t_k1:.0f} s)\")\nHA3, HQ3 = B.hardware_report(A3), B.hardware_report(Q3)\nprint(f\"IBM Heron: A = {HA3['two_qubit_gates']:,} two-qubit gates (ESP {HA3['esp']:.1e}); one Grover iterate Q = {HQ3['two_qubit_gates']:,} (ESP {B.fmt_esp(HQ3['esp'])})\")"
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "8afe30ef",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:47:39.443548Z",
     "iopub.status.busy": "2026-10-03T21:47:39.443258Z",
     "iopub.status.idle": "2026-10-03T21:49:42.999720Z",
     "shell.execute_reply": "2026-10-03T21:49:42.998575Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 749
    },
    "id": "8afe30ef",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087141551,
     "user_tz": -180,
     "elapsed": 125329,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "d9afde1a-6cd5-4767-bb75-135d2cc34237"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "   epsilon target  Oracle calls (median)  IQAE estimate (mean)  IQAE abs. error (mean)  MC abs. error at same calls  MC calls for IQAE error\n",
       "0           0.050                    100              0.025903                0.003281                     0.012512                     1399\n",
       "1           0.020                    800              0.023935                0.000846                     0.004004                    21034\n",
       "2           0.010                   1250              0.024177                0.000442                     0.003576                    76962\n",
       "3           0.005                   4300              0.024270                0.000268                     0.001754                   209768\n",
       "4           0.002                  12050              0.024325                0.000083                     0.001087                  2199652"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-40eb2208-1e85-47ce-8d3c-fe9d8fbe8001\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>epsilon target</th>\n",
       "      <th>Oracle calls (median)</th>\n",
       "      <th>IQAE estimate (mean)</th>\n",
       "      <th>IQAE abs. error (mean)</th>\n",
       "      <th>MC abs. error at same calls</th>\n",
       "      <th>MC calls for IQAE error</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.050</td>\n",
       "      <td>100</td>\n",
       "      <td>0.025903</td>\n",
       "      <td>0.003281</td>\n",
       "      <td>0.012512</td>\n",
       "      <td>1399</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.020</td>\n",
       "      <td>800</td>\n",
       "      <td>0.023935</td>\n",
       "      <td>0.000846</td>\n",
       "      <td>0.004004</td>\n",
       "      <td>21034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.010</td>\n",
       "      <td>1250</td>\n",
       "      <td>0.024177</td>\n",
       "      <td>0.000442</td>\n",
       "      <td>0.003576</td>\n",
       "      <td>76962</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.005</td>\n",
       "      <td>4300</td>\n",
       "      <td>0.024270</td>\n",
       "      <td>0.000268</td>\n",
       "      <td>0.001754</td>\n",
       "      <td>209768</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.002</td>\n",
       "      <td>12050</td>\n",
       "      <td>0.024325</td>\n",
       "      <td>0.000083</td>\n",
       "      <td>0.001087</td>\n",
       "      <td>2199652</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-40eb2208-1e85-47ce-8d3c-fe9d8fbe8001')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-40eb2208-1e85-47ce-8d3c-fe9d8fbe8001 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-40eb2208-1e85-47ce-8d3c-fe9d8fbe8001');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_03fcd856-4c61-4a78-8105-619a21dcc863\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('T3')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_03fcd856-4c61-4a78-8105-619a21dcc863 button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('T3');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "T3",
       "summary": "{\n  \"name\": \"T3\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"epsilon target\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.019462785001124586,\n        \"min\": 0.002,\n        \"max\": 0.05,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.02,\n          0.002,\n          0.01\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Oracle calls (median)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 4935,\n        \"min\": 100,\n        \"max\": 12050,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          800,\n          12050,\n          1250\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"IQAE estimate (mean)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0007861829661062989,\n        \"min\": 0.023934561864346084,\n        \"max\": 0.025902675771791527,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.023934561864346084,\n          0.024325144910246115,\n          0.024177399000118567\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"IQAE abs. error (mean)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0013146911984086148,\n        \"min\": 8.276415308903946e-05,\n        \"max\": 0.0032810805185667863,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.0008463617080392182,\n          8.276415308903946e-05,\n          0.00044246613682314936\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MC abs. error at same calls\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.004594479379868303,\n        \"min\": 0.0010871020503104786,\n        \"max\": 0.012511776348491455,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.00400358942513952,\n          0.0010871020503104786,\n          0.0035760905784356484\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MC calls for IQAE error\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 952629,\n        \"min\": 1399,\n        \"max\": 2199652,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          21034,\n          2199652,\n          76962\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 814x374 with 1 Axes>"
      ],
      "image/png": "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0he8QxER6RE/Pz+cPXsWVlZWGD58OLy8vPDuu+9ixIgROHjwIIyNjas8/4033sDIkSPx4osv4rnnnkNZWRmmTp2q9Z4vvvgC7777Lj799FO0adMGL7/8MrKzsyudr2PHjjh8+DDi4uIQHByMzp0745tvvkGLFi2eGEPv3r2xbt06bNiwAe3bt8eAAQNw8eJFAOo1Hz///DO+/fZbBAQEYMuWLfjmm29q/P2xsLDA0aNHERISgtatW+O7777D0qVLtdZelBcREVFtMmJoaIg5c+YgICAAffv2ha2tLZYtWwYAGD58OGbNmoW33noLgYGBiI2NxZw5c2ocb3W+/fZbzJw5E126dEFhYSG2bNnyxOThzTffxH//+18sXboU7dq1Q9++fbF+/Xp4enoCUD+y99133yEoKAjdu3dHdnY2Nm/eXG+xEhE1BJEgCIKugyAiIqpv0dHRGDhwINLS0iCRSHQdjpaoqCj06dMH+fn5Wlv9EhE9a1gZISKiZkmpVGLRokV6l4gQEdFjXDNCRETNUteuXdG1a1ddh0FERFXgY1pERERERKQTfEyLiIiIiIh0gskIERERERHpBJMRIiIiIiLSCSYjRERERESkE0xGiIiIiIhIJ5iMEBERERGRTjAZISIiIiIinWAyQkREREREOsFkhIiIiIiIdILJCBERERER6cT/B2MTiQzmKX5XAAAAAElFTkSuQmCC\n"
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "  Relative precision  Absolute error target  Monte Carlo scenarios  QAE oracle calls (noiseless)  Fewer calls (×) Monte Carlo CPU time, this book\n",
       "0               ±10%               0.000100           6.359832e+04                   6770.893664         9.392898                             1 s\n",
       "1                ±1%               0.000010           6.359832e+06                  67708.936643        93.928983                           112 s\n",
       "2              ±0.1%               0.000001           6.359832e+08                 677089.366431       939.289825                           3.1 h"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-97c7a0b8-ae40-4f67-8a8f-001ba9e5f3c1\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Relative precision</th>\n",
       "      <th>Absolute error target</th>\n",
       "      <th>Monte Carlo scenarios</th>\n",
       "      <th>QAE oracle calls (noiseless)</th>\n",
       "      <th>Fewer calls (×)</th>\n",
       "      <th>Monte Carlo CPU time, this book</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>±10%</td>\n",
       "      <td>0.000100</td>\n",
       "      <td>6.359832e+04</td>\n",
       "      <td>6770.893664</td>\n",
       "      <td>9.392898</td>\n",
       "      <td>1 s</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>±1%</td>\n",
       "      <td>0.000010</td>\n",
       "      <td>6.359832e+06</td>\n",
       "      <td>67708.936643</td>\n",
       "      <td>93.928983</td>\n",
       "      <td>112 s</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>±0.1%</td>\n",
       "      <td>0.000001</td>\n",
       "      <td>6.359832e+08</td>\n",
       "      <td>677089.366431</td>\n",
       "      <td>939.289825</td>\n",
       "      <td>3.1 h</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-97c7a0b8-ae40-4f67-8a8f-001ba9e5f3c1')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-97c7a0b8-ae40-4f67-8a8f-001ba9e5f3c1 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-97c7a0b8-ae40-4f67-8a8f-001ba9e5f3c1');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"      f\\\"(constant fitted from the runs above)\",\n  \"rows\": 3,\n  \"fields\": [\n    {\n      \"column\": \"Relative precision\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"\\u00b110%\",\n          \"\\u00b11%\",\n          \"\\u00b10.1%\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Absolute error target\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 5.474486277268399e-05,\n        \"min\": 1e-06,\n        \"max\": 0.0001,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          0.0001,\n          1e-05,\n          1e-06\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Monte Carlo scenarios\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 365344323.5502973,\n        \"min\": 63598.31526,\n        \"max\": 635983152.595214,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          63598.31526,\n          6359831.525952,\n          635983152.595214\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"QAE oracle calls (noiseless)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 370671.64450121287,\n        \"min\": 6770.893664,\n        \"max\": 677089.366431,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          6770.893664,\n          67708.936643,\n          677089.366431\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Fewer calls (\\u00d7)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 514.2129256929337,\n        \"min\": 9.392898,\n        \"max\": 939.289825,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          9.392898,\n          93.928983,\n          939.289825\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Monte Carlo CPU time, this book\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 3,\n        \"samples\": [\n          \"1 s\",\n          \"112 s\",\n          \"3.1 h\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Deepest circuit: k=173 → 1,722,383 two-qubit gates, ESP ≈ 0 (below 1e-12); needs a two-qubit error rate ≤ 4.0e-07 (today ~3.9e-3).\n",
      "Full book, P(loss > limit) = 0.010 to ±10%: Monte Carlo ≈ 6,303 scenarios; amplitude estimation ≈ 677 oracle calls (constant fitted from the runs above). A per-obligor oracle for the book needs ≥ 49,720 logical qubits for the default indicators alone.\n"
     ]
    }
   ],
   "source": "# IQAE vs Monte Carlo at equal oracle calls. IQAE only observes the objective qubit, whose statistics after A·Q^k depend only on θ (checked above on the\n# full 21-qubit circuit), so the runs use a 5-qubit oracle that loads the same exact loss distribution; hardware costs below are those of the full circuit.\nPMF3 = np.zeros(16); PMF3[:LMAX + 1] = DIST\nT3, info3 = B.iqae_vs_mc(PMF3, THR3, label='P(loss ≥ limit)')\ndisplay(T3)\nFIG3b = B.plot_qae(T3, info3['true_p'], 'Tail probability: amplitude estimation vs Monte Carlo (noiseless)', name='t3_qae'); plt.show()\nK3 = info3['k_max']; DEEP3 = HA3['two_qubit_gates'] + K3 * HQ3['two_qubit_gates']; ESP3 = float(np.exp(DEEP3 * np.log(1 - 0.0039)))\nP_REQ = 1 - 0.5 ** (1 / DEEP3)                                              # 2-qubit error rate for ESP ≥ 0.5 on the deepest circuit\nfor nm, h in [('Track 3 credit-risk oracle A (21 qubits)', HA3), ('Track 3 one Grover iterate Q (21 qubits)', HQ3)]:\n    B.HARDWARE.append(dict(h, circuit=nm))\nB.HARDWARE.append({'circuit': f'Track 3 deepest IQAE circuit A·Q^{K3} (21 qubits)', 'qubits': NQ3, 'two_qubit_gates': int(DEEP3), 'esp': ESP3, 'backend': 'fake_fez'})\nlast = T3.iloc[-1]; C_IQAE = float(np.median(T3['Oracle calls (median)'] * T3['IQAE abs. error (mean)']))\nEPS_T = 0.1 * P_LIM                                                          # ±10% relative precision on the full book's 1% tail probability\nMC_NEED = (2 / np.pi) * P_LIM * (1 - P_LIM) / EPS_T ** 2; QAE_NEED = C_IQAE / EPS_T          # same criterion: mean absolute error = EPS_T\nP999 = 0.001\nPRECQ = pd.DataFrame([{'Relative precision': f'±{int(r * 1000) / 10:g}%', 'Absolute error target': r * P999,\n                       'Monte Carlo scenarios': (2 / np.pi) * P999 * (1 - P999) / (r * P999) ** 2, 'QAE oracle calls (noiseless)': C_IQAE / (r * P999)} for r in (0.1, 0.01, 0.001)])\nPRECQ['Fewer calls (×)'] = PRECQ['Monte Carlo scenarios'] / PRECQ['QAE oracle calls (noiseless)']\nPRECQ['Monte Carlo CPU time, this book'] = [f\"{v * t_mc / 400_000:,.0f} s\" if v * t_mc / 400_000 < 3600 else f\"{v * t_mc / 400_000 / 3600:,.1f} h\" for v in PRECQ['Monte Carlo scenarios']]\ndisplay(PRECQ.round(6))\nprint(f\"Deepest circuit: k={K3} → {DEEP3:,} two-qubit gates, ESP {B.fmt_esp(ESP3)}; needs a two-qubit error rate ≤ {P_REQ:.1e} (today ~3.9e-3).\")\nprint(f\"Full book, P(loss > limit) = {P_LIM:.3f} to ±10%: Monte Carlo ≈ {MC_NEED:,.0f} scenarios; amplitude estimation ≈ {QAE_NEED:,.0f} oracle calls \"\n      f\"(constant fitted from the runs above). A per-obligor oracle for the book needs ≥ {len(BOOK):,} logical qubits for the default indicators alone.\")"
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "7a4fc99d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:49:43.003682Z",
     "iopub.status.busy": "2026-10-03T21:49:43.003238Z",
     "iopub.status.idle": "2026-10-03T21:49:43.033767Z",
     "shell.execute_reply": "2026-10-03T21:49:43.031852Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "7a4fc99d",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087146690,
     "user_tz": -180,
     "elapsed": 4045,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "14482cbe-63b1-4786-c0ef-d751a668944e"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Quadratic speed-up in oracle calls (noiseless); needs fault-tolerant hardware\n",
      "• Full book (classical, today): 49,720 loans and 400,000 Monte Carlo scenarios in 7 s give expected loss 439.0 m TRY, VaR99.9 1186.9 m and ES99.9 1288.5 m TRY.\n",
      "• Quantum circuit: the six largest exposures in a 21-qubit Egger-type credit-risk circuit; statevector simulation reproduces the exact tail probability P(loss ≥ limit) = 0.0243 to 1e-17, and one Grover iterate on the full circuit matches the amplification law sin²(3θ).\n",
      "• Iterative amplitude estimation reaches an absolute error of 8.3e-05 with ~12,050 oracle calls; Monte Carlo with the same number of samples errs by 0.0011 — up to 13× worse — and needs ~2,199,652 samples to match: the quadratic speed-up, in a noiseless simulation.\n",
      "• For the regulatory 99.9% tail of the full book, the gain grows with the precision asked: ±10% / ±1% / ±0.1% means 9× / 94× / 939× fewer oracle calls than Monte Carlo scenarios (Monte Carlo: 1 s / 112 s / 3.1 h of CPU here) — but with one qubit per loan, as in the circuit above, each quantum call needs at least 49,720 logical qubits.\n",
      "• Hardware gap: the deepest circuit used (k=173) needs 1,722,383 two-qubit gates on IBM Heron, with an estimated success probability of ≈ 0 (below 1e-12); a useful run needs two-qubit error rates ≤ 4e-07, about 9,691× better than today — i.e. error-corrected (fault-tolerant) machines. Published estimate for quantum advantage in derivative pricing, a related Monte Carlo workload: 8,000 logical qubits and T-depth 54 million (Chakrabarti et al. 2021).\n"
     ]
    }
   ],
   "source": "SENT3 = [f\"Full book (classical, today): {len(BOOK):,} loans and 400,000 Monte Carlo scenarios in {t_mc:.0f} s give expected loss {EL / 1e6:.1f} m TRY, VaR99.9 {VAR999 / 1e6:.1f} m and ES99.9 {ES999 / 1e6:.1f} m TRY.\",\n         f\"Quantum circuit: the six largest exposures in a {NQ3}-qubit Egger-type credit-risk circuit; statevector simulation reproduces the exact tail probability \"\n         f\"P(loss ≥ limit) = {TRUE3:.4f} to {abs(P_SV - TRUE3):.0e}, and one Grover iterate on the full circuit matches the amplification law sin²(3θ).\",\n         f\"Iterative amplitude estimation reaches an absolute error of {last['IQAE abs. error (mean)']:.2g} with ~{int(last['Oracle calls (median)']):,} oracle calls; \"\n         f\"Monte Carlo with the same number of samples errs by {last['MC abs. error at same calls']:.2g} — up to {info3['best_ratio']:.0f}× worse — and needs \"\n         f\"~{int(last['MC calls for IQAE error']):,} samples to match: the quadratic speed-up, in a noiseless simulation.\",\n         f\"For the regulatory 99.9% tail of the full book, the gain grows with the precision asked: ±10% / ±1% / ±0.1% means \"\n         f\"{PRECQ['Fewer calls (×)'].iloc[0]:,.0f}× / {PRECQ['Fewer calls (×)'].iloc[1]:,.0f}× / {PRECQ['Fewer calls (×)'].iloc[2]:,.0f}× fewer oracle calls than Monte Carlo scenarios \"\n         f\"(Monte Carlo: {PRECQ['Monte Carlo CPU time, this book'].iloc[0]} / {PRECQ['Monte Carlo CPU time, this book'].iloc[1]} / {PRECQ['Monte Carlo CPU time, this book'].iloc[2]} of CPU here) — \"\n         f\"but with one qubit per loan, as in the circuit above, each quantum call needs at least {len(BOOK):,} logical qubits.\",\n         f\"Hardware gap: the deepest circuit used (k={K3}) needs {DEEP3:,} two-qubit gates on IBM Heron, with an estimated success probability of {B.fmt_esp(ESP3)}; a useful run needs two-qubit error rates ≤ {P_REQ:.0e}, \"\n         f\"about {0.0039 / P_REQ:,.0f}× better than today — i.e. error-corrected (fault-tolerant) machines. Published estimate for quantum advantage in derivative pricing, \"\n         f\"a related Monte Carlo workload: 8,000 logical qubits and T-depth 54 million (Chakrabarti et al. 2021).\"]\nCAV3 = (\"The speed-up is in oracle calls and is proven; it is realised here only in noiseless simulation. Loading the distribution and computing losses inside the circuit is what \"\n        \"makes each call expensive, and today's devices lose the signal after a single Grover iterate. Classical Monte Carlo on the full book takes seconds.\")\nS3 = B.summarise_generic('qae', 'Portfolio tail risk: amplitude estimation vs Monte Carlo', 'Quadratic speed-up in oracle calls (noiseless); needs fault-tolerant hardware', SENT3, CAV3,\n                         numbers={'n_book': len(BOOK), 'mc_s': t_mc, 'el_m': EL / 1e6, 'var999_m': VAR999 / 1e6, 'es999_m': ES999 / 1e6, 'p_lim': P_LIM, 'qubits': NQ3,\n                                  'true_p': TRUE3, 'sv_err': abs(P_SV - TRUE3), 'p_k1': P_K1, 'iqae_err': float(last['IQAE abs. error (mean)']),\n                                  'mc_err': float(last['MC abs. error at same calls']), 'calls': int(last['Oracle calls (median)']), 'mc_calls_equiv': int(last['MC calls for IQAE error']),\n                                  'best_ratio': info3['best_ratio'], 'k_max': K3, 'hw_2q_A': HA3['two_qubit_gates'], 'hw_2q_Q': HQ3['two_qubit_gates'], 'hw_2q': int(DEEP3),\n                                  'hw_esp': ESP3, 'p_req': P_REQ, 'err_gap': 0.0039 / P_REQ, 'mc_need': MC_NEED, 'qae_need': QAE_NEED, 'c_iqae': C_IQAE,\n                                  'x10': float(PRECQ['Fewer calls (×)'].iloc[0]), 'x1': float(PRECQ['Fewer calls (×)'].iloc[1]), 'x01': float(PRECQ['Fewer calls (×)'].iloc[2]),\n                                  'mc_t10': PRECQ['Monte Carlo CPU time, this book'].iloc[0], 'mc_t1': PRECQ['Monte Carlo CPU time, this book'].iloc[1], 'mc_t01': PRECQ['Monte Carlo CPU time, this book'].iloc[2],\n                                  'mc_n01': float(PRECQ['Monte Carlo scenarios'].iloc[2]), 'qae_n01': float(PRECQ['QAE oracle calls (noiseless)'].iloc[2])},\n                         headline={'value': f\"{info3['best_ratio']:.0f}×\", 'label': 'lower error than Monte Carlo at equal oracle calls (noiseless, 21-qubit credit-risk circuit)'},\n                         table=T3, figures=[FIG3a, FIG3b],\n                         context='The one place where quantum advantage is mathematically proven for credit — and the hardware it waits for.')\nprint(S3['verdict']); [print('•', t) for t in S3['sentences']];"
  },
  {
   "cell_type": "markdown",
   "id": "c838891a",
   "metadata": {
    "id": "c838891a"
   },
   "source": "---\n## Track 4 — Real hardware: IBM Fez and Origin Wukong\n\n**Question.** Do the effects seen in simulation survive a real quantum processor — gate errors, readout errors, finite shots, drift?\n\n**Experiment A — projected-kernel credit scoring (Track 2 on the QPU).**\n1. A fixed sample of applicants (preset): quantum-structured data and, as a control, realistic data (Track 1).\n2. Each applicant's 10-qubit circuit runs in the X, Y and Z basis. Readout errors are corrected per qubit (IBM: all-0 / all-1 calibration circuits in the same job; Origin: vendor readout correction).\n3. The projected kernel is trained on the hardware features of the training applicants (γ and C by cross-validation) and scored on the test applicants, next to the noiseless kernel,\n   the device-noise **rehearsal** and the best classical model (chosen by cross-validation, never on the test set). The verdict uses a bootstrap confidence interval.\n\n**Experiment B — amplitude estimation (Track 3 on the QPU).** Two obligors and a two-point systematic factor (3 qubits). The circuit A·Q^k is run for several Grover powers k;\nthe measured probabilities show how long the processor stays coherent, and maximum-likelihood amplitude estimation turns them into an estimate of the loss probability.\n\n**Before any QPU second is spent** both experiments are rehearsed with each device's error rates — and over a sweep of error rates, so any processor can be placed on the curve."
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "f640f75d",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:49:43.037448Z",
     "iopub.status.busy": "2026-10-03T21:49:43.036979Z",
     "iopub.status.idle": "2026-10-03T21:49:52.658666Z",
     "shell.execute_reply": "2026-10-03T21:49:52.656481Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "f640f75d",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087153797,
     "user_tz": -180,
     "elapsed": 5855,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "b5f1b4e0-39a6-43a1-f672-0f2502a5fbb6"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "B · quantum-structured (Track 2): 150 train / 150 test · best classical by CV: Gradient boosting (AUC 0.638) · noiseless projected kernel AUC 0.879\n",
      "A · realistic control (Track 1): 100 train / 100 test · best classical by CV: RBF-SVM (AUC 0.806) · noiseless projected kernel AUC 0.782\n",
      "Amplitude-estimation oracle: two exposures with PD [0.1746 0.0854] and ρ [0.16 0.1 ]; exact P(at least one default) = 0.24148; Grover powers [0, 1, 2, 3, 4, 6, 8]\n"
     ]
    }
   ],
   "source": "rs = np.random.default_rng(21)\nHB_TR = rs.choice(POOL2, HWS['b_train'], replace=False); HB_TE = rs.choice(TEST2, HWS['b_test'], replace=False)\ndef strat(n_pool, y_pool, n, rate, rng):\n    pool = np.arange(n_pool); pos, neg = pool[y_pool == 1], pool[y_pool == 0]; k = max(2, int(round(n * rate)))\n    return np.r_[rng.choice(pos, k, replace=False), rng.choice(neg, n - k, replace=False)]\nHA_TR = strat(len(ytr1), ytr1, HWS['a_train'], 0.2, rs) if HWS['a_train'] else np.array([], int)\nHA_TE = strat(len(yte1), yte1, HWS['a_test'], 0.2, rs) if HWS['a_test'] else np.array([], int)\nSETS = {'B': dict(Ztr=Z2[HB_TR], ytr=Y2[HB_TR], Zte=Z2[HB_TE], yte=Y2[HB_TE], bw=BW2, label='quantum-structured (Track 2)')}\nif len(HA_TR):\n    SETS['A'] = dict(Ztr=Ztr1A[HA_TR], ytr=ytr1[HA_TR], Zte=Zte1A[HA_TE], yte=yte1[HA_TE], bw=BW1P, label='realistic control (Track 1)')\ndef classical_best(Ztr, ytr, Zte):\n    cands = {'Logistic regression': GridSearchCV(LogisticRegression(max_iter=3000, class_weight='balanced'), {'C': [0.01, 0.1, 1, 10]}, scoring='roc_auc', cv=3),\n             'RBF-SVM': GridSearchCV(SVC(class_weight='balanced'), {'C': [1, 10, 100], 'gamma': [0.3, 1, 3, 10]}, scoring='roc_auc', cv=3),\n             'Gradient boosting': GridSearchCV(HistGradientBoostingClassifier(random_state=7), {'learning_rate': [0.05, 0.1], 'max_depth': [3, None]}, scoring='roc_auc', cv=3)}\n    fits = {k: m.fit(Ztr, ytr) for k, m in cands.items()}\n    k = max(fits, key=lambda k: fits[k].best_score_); m = fits[k]\n    return k, (m.decision_function(Zte) if hasattr(m, 'decision_function') else m.predict_proba(Zte)[:, 1])\ndef evaluate(Ftr, ytr, Fte, yte, cls_scores, n_boot=1000, seed=3):\n    cv = H.pqk_cv(Ftr, ytr, gammas=(0.25, 0.5, 1, 2, 4, 8)); s = H.pqk_scores(Ftr, ytr, Fte, cv['gamma'], cv['C'])\n    aq, ac = roc_auc_score(yte, s), roc_auc_score(yte, cls_scores)\n    rr = np.random.default_rng(seed); d = []\n    for _ in range(n_boot):\n        b = rr.integers(0, len(yte), len(yte))\n        if yte[b].min() == yte[b].max():\n            continue\n        d.append(roc_auc_score(yte[b], s[b]) - roc_auc_score(yte[b], cls_scores[b]))\n    return {'auc_q': aq, 'auc_c': ac, 'diff': aq - ac, 'lo': float(np.percentile(d, 2.5)), 'hi': float(np.percentile(d, 97.5))}\nREF = {}\nfor key, S in SETS.items():\n    name, sc = classical_best(S['Ztr'], S['ytr'], S['Zte'])\n    S['cls_name'], S['cls_scores'] = name, sc\n    REF[(key, 'Noiseless projected kernel')] = evaluate(H.bloch_features(S['Ztr'], S['bw']), S['ytr'], H.bloch_features(S['Zte'], S['bw']), S['yte'], sc)\n    print(f\"{key} · {S['label']}: {len(S['ytr'])} train / {len(S['yte'])} test · best classical by CV: {name} (AUC {REF[(key, 'Noiseless projected kernel')]['auc_c']:.3f}) · \"\n          f\"noiseless projected kernel AUC {REF[(key, 'Noiseless projected kernel')]['auc_q']:.3f}\")\n# Experiment B: hardware-sized oracle from the two highest-PD exposures of Track 3\no2 = np.argsort(-PD6)[:2]; PD4, RHO4 = PD6[o2], RHO6[o2]\nA4, ORC4, P4EX = H.credit_oracle(PD4, RHO4)\nQAE_CIRCS, Q4 = H.grover_power_circuits(A4, ORC4, HWS['ks'])\nTH4 = np.arcsin(np.sqrt(P4EX)); KS = np.array(HWS['ks']); IDEAL = np.sin((2 * KS + 1) * TH4) ** 2\nprint(f\"Amplitude-estimation oracle: two exposures with PD {PD4.round(4)} and ρ {RHO4}; exact P(at least one default) = {P4EX:.5f}; Grover powers {HWS['ks']}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "24079abe",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:49:52.662443Z",
     "iopub.status.busy": "2026-10-03T21:49:52.662093Z",
     "iopub.status.idle": "2026-10-03T21:52:03.061179Z",
     "shell.execute_reply": "2026-10-03T21:52:03.058627Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 243
    },
    "id": "24079abe",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087263494,
     "user_tz": -180,
     "elapsed": 109053,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "06676372-23d3-4ce2-93b0-88bf99230217"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "      e2  auc_q  auc_c   diff     lo     hi\n",
       "0  0.001  0.863  0.638  0.224  0.092  0.366\n",
       "1  0.003  0.881  0.638  0.243  0.108  0.384\n",
       "2  0.010  0.865  0.638  0.227  0.088  0.374\n",
       "3  0.020  0.860  0.638  0.222  0.085  0.367\n",
       "4  0.040  0.860  0.638  0.221  0.077  0.371"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-d8a94e42-6f8e-45ee-a80b-3cc6c18a69ae\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>e2</th>\n",
       "      <th>auc_q</th>\n",
       "      <th>auc_c</th>\n",
       "      <th>diff</th>\n",
       "      <th>lo</th>\n",
       "      <th>hi</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.001</td>\n",
       "      <td>0.863</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.224</td>\n",
       "      <td>0.092</td>\n",
       "      <td>0.366</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.003</td>\n",
       "      <td>0.881</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.243</td>\n",
       "      <td>0.108</td>\n",
       "      <td>0.384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.010</td>\n",
       "      <td>0.865</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.227</td>\n",
       "      <td>0.088</td>\n",
       "      <td>0.374</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.020</td>\n",
       "      <td>0.860</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.222</td>\n",
       "      <td>0.085</td>\n",
       "      <td>0.367</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.040</td>\n",
       "      <td>0.860</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.221</td>\n",
       "      <td>0.077</td>\n",
       "      <td>0.371</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-d8a94e42-6f8e-45ee-a80b-3cc6c18a69ae')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-d8a94e42-6f8e-45ee-a80b-3cc6c18a69ae button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-d8a94e42-6f8e-45ee-a80b-3cc6c18a69ae');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"      f\\\"oracle two-qubit gates on Fez for k = {HWS['ks']}: {Q2Q}\\\")\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"e2\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.015927962832704,\n        \"min\": 0.001,\n        \"max\": 0.04,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.003,\n          0.04,\n          0.01\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"auc_q\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.008757853618324533,\n        \"min\": 0.86,\n        \"max\": 0.881,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.881,\n          0.86,\n          0.863\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"auc_c\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.638,\n        \"max\": 0.638,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.638\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"diff\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.009016651263079876,\n        \"min\": 0.221,\n        \"max\": 0.243,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.243\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"lo\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.011467344941179715,\n        \"min\": 0.077,\n        \"max\": 0.108,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.108\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"hi\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.007231873892705824,\n        \"min\": 0.366,\n        \"max\": 0.384,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          0.384\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Rehearsals done in 119 s · IBM Fez median two-qubit error on the selected line 0.0021 (live) · oracle two-qubit gates on Fez for k = [0, 1, 2, 3, 4, 6, 8]: [4, 25, 44, 61, 82, 118, 158]\n"
     ]
    }
   ],
   "source": "# ---- Experiment A rehearsal: IBM Fez error rates on the qubits the transpiler selects (live calibration if connected, else the FakeFez snapshot)\nFEZ_CAL = H.ibm_line_calibration(FEZ_BE, Q2)\ndef rehearse(S, p2, p1, ro, seed):\n    return (H.noisy_bloch_features(S['Ztr'], S['bw'], p2, p1, ro, shots=HWS['shots'], traj=32, seed=seed),\n            H.noisy_bloch_features(S['Zte'], S['bw'], p2, p1, ro, shots=HWS['shots'], traj=32, seed=seed + 7))\nt0 = time.perf_counter()\nfor key, S in SETS.items():\n    Ftr, Fte = rehearse(S, 1.25 * FEZ_CAL['p2'], 1.5 * FEZ_CAL['p1'], FEZ_CAL['readout'], 11)\n    REF[(key, 'Rehearsal · IBM Fez error rates')] = evaluate(Ftr, S['ytr'], Fte, S['yte'], S['cls_scores'])\nif WK_CAL and WK_CAL.get('median_2q_error'):\n    e2w, row = WK_CAL['median_2q_error'], WK_CAL.get('median_readout_error') or 0.02\n    e1w = WK_CAL.get('median_1q_error') or e2w / 10\n    for key, S in SETS.items():\n        Ftr, Fte = rehearse(S, np.full(Q2 - 1, 1.25 * e2w), np.full(Q2, 1.5 * e1w), np.full(Q2, row), 13)\n        REF[(key, 'Rehearsal · Origin Wukong error rates')] = evaluate(Ftr, S['ytr'], Fte, S['yte'], S['cls_scores'])\nSWEEP = []\nfor e2 in (0.001, 0.003, 0.01, 0.02, 0.04):\n    Ftr, Fte = rehearse(SETS['B'], np.full(Q2 - 1, 1.25 * e2), np.full(Q2, 0.15 * e2), np.full(Q2, 0.02), 17)\n    SWEEP.append(dict(e2=e2, **evaluate(Ftr, SETS['B']['ytr'], Fte, SETS['B']['yte'], SETS['B']['cls_scores'])))\nSWEEP = pd.DataFrame(SWEEP); display(SWEEP.round(3))\nCROSS = float(SWEEP[SWEEP['lo'] > 0]['e2'].max()) if (SWEEP['lo'] > 0).any() else None\n# ---- Experiment B rehearsal: Aer density-matrix simulation with the IBM Fez noise model and with uniform error rates\nfrom qiskit import transpile as _tr\nfrom qiskit_aer import AerSimulator\nfrom qiskit_aer.noise import NoiseModel, depolarizing_error, ReadoutError\ndef run_aer(circs, sim, shots, reps):\n    out = []\n    for rep in range(reps):\n        r = sim.run(circs, shots=shots, seed_simulator=rep + 1).result()\n        out.append([H.good_fraction(r.get_counts(i)) for i in range(len(circs))])\n    return np.array(out)\nQISA_FEZ = _tr(QAE_CIRCS, FEZ_BE, optimization_level=3, seed_transpiler=7)\nQ2Q = [sum(1 for i in c.data if len(i.qubits) == 2) for c in QISA_FEZ]\nREPS = max(1, HWS['qae_repeats'])\nAMP = {'Rehearsal · IBM Fez noise model': run_aer(QISA_FEZ, AerSimulator(method='density_matrix', noise_model=NoiseModel.from_backend(FEZ_BE)), HWS['qae_shots'], REPS)}\ndef uniform_nm(e2, ro=0.02):\n    nm = NoiseModel(); nm.add_all_qubit_quantum_error(depolarizing_error(4 * e2 / 3, 2), ['cz']); nm.add_all_qubit_quantum_error(depolarizing_error(2 * e2 / 10, 1), ['sx', 'x'])\n    nm.add_all_qubit_readout_error(ReadoutError([[1 - ro, ro], [ro, 1 - ro]])); return nm\nLINE = _tr(QAE_CIRCS, basis_gates=['cz', 'rz', 'sx', 'x'], coupling_map=[[0, 1], [1, 0], [1, 2], [2, 1]], optimization_level=3, seed_transpiler=7)\nfor e2 in (0.001, 0.01, 0.03):\n    AMP[f'Rehearsal · uniform two-qubit error {e2:.1%}'] = run_aer(LINE, AerSimulator(method='density_matrix', noise_model=uniform_nm(e2)), HWS['qae_shots'], REPS)\nif WK_CAL and WK_CAL.get('median_2q_error'):\n    AMP['Rehearsal · Origin Wukong error rates'] = run_aer(LINE, AerSimulator(method='density_matrix', noise_model=uniform_nm(WK_CAL['median_2q_error'], WK_CAL.get('median_readout_error') or 0.02)), HWS['qae_shots'], REPS)\nprint(f\"Rehearsals done in {time.perf_counter() - t0:.0f} s · IBM Fez median two-qubit error on the selected line {np.median(FEZ_CAL['p2']):.4f} ({'live' if IBM_LIVE else 'FakeFez snapshot'}) · \"\n      f\"oracle two-qubit gates on Fez for k = {HWS['ks']}: {Q2Q}\")"
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "01aa4ba4",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:52:03.065085Z",
     "iopub.status.busy": "2026-10-03T21:52:03.064580Z",
     "iopub.status.idle": "2026-10-03T21:52:03.090810Z",
     "shell.execute_reply": "2026-10-03T21:52:03.088580Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 149
    },
    "id": "01aa4ba4",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087269493,
     "user_tz": -180,
     "elapsed": 4051,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "1d4ae22c-b279-4c14-e769-dd4cab891b12"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                          Experiment  Circuits  Shots per circuit  IBM QPU s (estimate)  Total shots\n",
       "0  A · projected kernel (3 bases per applicant) +...      1502               1000                 392.5      1502000\n",
       "1  B · amplitude estimation (Grover powers × repe...        23               2000                  14.0        46000"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-10b74757-869b-48c8-9528-510d418ef8cb\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Experiment</th>\n",
       "      <th>Circuits</th>\n",
       "      <th>Shots per circuit</th>\n",
       "      <th>IBM QPU s (estimate)</th>\n",
       "      <th>Total shots</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>A · projected kernel (3 bases per applicant) +...</td>\n",
       "      <td>1502</td>\n",
       "      <td>1000</td>\n",
       "      <td>392.5</td>\n",
       "      <td>1502000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>B · amplitude estimation (Grover powers × repe...</td>\n",
       "      <td>23</td>\n",
       "      <td>2000</td>\n",
       "      <td>14.0</td>\n",
       "      <td>46000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-10b74757-869b-48c8-9528-510d418ef8cb')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-10b74757-869b-48c8-9528-510d418ef8cb button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-10b74757-869b-48c8-9528-510d418ef8cb');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"      f\\\"(planning estimate; the job's own usage is reported after the run)\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"Experiment\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"B \\u00b7 amplitude estimation (Grover powers \\u00d7 repeats) + 2 readout calibrations\",\n          \"A \\u00b7 projected kernel (3 bases per applicant) + 2 readout calibrations\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Circuits\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1045,\n        \"min\": 23,\n        \"max\": 1502,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          23,\n          1502\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Shots per circuit\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 707,\n        \"min\": 1000,\n        \"max\": 2000,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          2000,\n          1000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"IBM QPU s (estimate)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 267.63991667910824,\n        \"min\": 14.0,\n        \"max\": 392.5,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          14.0,\n          392.5\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Total shots\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 1029547,\n        \"min\": 46000,\n        \"max\": 1502000,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          46000,\n          1502000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Preset 'pilot': 1,525 circuits, 1,548,000 shots per backend · IBM Fez ≈ 6.8 QPU minutes (planning estimate; the job's own usage is reported after the run). All presets: smoke ≈ 0.6 min, pilot ≈ 6.8 min, full ≈ 21.2 min\n"
     ]
    }
   ],
   "source": "n_pts = sum(len(S['ytr']) + len(S['yte']) for S in SETS.values())\nQAE_N = len(HWS['ks']) * HWS['qae_repeats']\nBUD = pd.DataFrame([{'Experiment': 'A · projected kernel (3 bases per applicant) + 2 readout calibrations', 'Circuits': 3 * n_pts + 2, 'Shots per circuit': HWS['shots'],\n                     'IBM QPU s (estimate)': H.ibm_qpu_seconds(3 * n_pts + 2, HWS['shots'])},\n                    {'Experiment': 'B · amplitude estimation (Grover powers × repeats) + 2 readout calibrations', 'Circuits': QAE_N + 2, 'Shots per circuit': HWS['qae_shots'],\n                     'IBM QPU s (estimate)': H.ibm_qpu_seconds(QAE_N + 2, HWS['qae_shots'])}])\nBUD['Total shots'] = BUD['Circuits'] * BUD['Shots per circuit']\ndisplay(BUD.round(1))\nQPU_EST = float(BUD['IBM QPU s (estimate)'].sum())\nBUDGETS = {p: H.ibm_qpu_seconds(3 * (v['b_train'] + v['b_test'] + v['a_train'] + v['a_test']) + 2, v['shots']) + H.ibm_qpu_seconds(len(v['ks']) * v['qae_repeats'] + 2, v['qae_shots'])\n           for p, v in PRESETS.items()}\nprint(f\"Preset '{PRESET}': {int(BUD['Circuits'].sum()):,} circuits, {int(BUD['Total shots'].sum()):,} shots per backend · IBM Fez ≈ {QPU_EST / 60:.1f} QPU minutes \"\n      f\"(planning estimate; the job's own usage is reported after the run). All presets: \" + ', '.join(f\"{p} ≈ {v / 60:.1f} min\" for p, v in BUDGETS.items()))"
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "93ef3bbc",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:52:03.093970Z",
     "iopub.status.busy": "2026-10-03T21:52:03.093660Z",
     "iopub.status.idle": "2026-10-03T21:52:03.134324Z",
     "shell.execute_reply": "2026-10-03T21:52:03.132545Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "93ef3bbc",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087274391,
     "user_tz": -180,
     "elapsed": 3051,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "040c45ed-9693-499e-8e33-453fa65dd85a"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Hardware results available for: none yet (rehearsal mode)\n"
     ]
    }
   ],
   "source": "def pqk_values(Zs, bw, params):\n    order = [int(p.name.split('[')[1][:-1]) for p in params]\n    return (bw * np.pi * np.asarray(Zs))[:, order]\ndef ibm_pubs(runner):\n    tm = runner.isa([H.pqk_circuit(Q2, b) for b in 'XYZ'])\n    lay = list(tm[2].layout.final_index_layout(filter_ancillas=True))\n    cal = runner.isa(H.readout_cal_circuits(Q2), initial_layout=lay)\n    pubs, names = [], []\n    for key, S in SETS.items():\n        Zall = np.r_[S['Ztr'], S['Zte']]\n        for bi, b in enumerate('XYZ'):\n            pubs.append((tm[bi], pqk_values(Zall, S['bw'], tm[bi].parameters), HWS['shots'])); names.append(f'{key}-{b}')\n    pubs += [(cal[0], None, HWS['shots']), (cal[1], None, HWS['shots'])]; names += ['cal0', 'cal1']\n    qisa = runner.isa(QAE_CIRCS); qlay = list(qisa[0].layout.final_index_layout(filter_ancillas=True))\n    qcal = runner.isa(H.readout_cal_circuits(3), initial_layout=qlay)\n    qpubs = [(c, None, HWS['qae_shots']) for _ in range(HWS['qae_repeats']) for c in qisa] + [(qcal[0], None, HWS['qae_shots']), (qcal[1], None, HWS['qae_shots'])]\n    return pubs, names, qpubs, lay, qlay\ndef wk_circuits():\n    tm = [H.pqk_circuit(Q2, b) for b in 'XYZ']; circs = []\n    for key, S in SETS.items():\n        Zall = np.r_[S['Ztr'], S['Zte']]\n        for bi in range(3):\n            circs += [tm[bi].assign_parameters(v) for v in pqk_values(Zall, S['bw'], tm[bi].parameters)]\n    circs += H.readout_cal_circuits(Q2)\n    return circs, [c for _ in range(HWS['qae_repeats']) for c in QAE_CIRCS] + H.readout_cal_circuits(3)\nRUN_ID = None\nHW_PREFIX = 'Dry run · ' if RUN_MODE == 'dryrun' else 'Hardware · '\nif RUN_MODE in ('submit', 'dryrun'):\n    if RUN_MODE == 'submit' and not CONFIRM_QPU_SPEND:\n        print('Submission blocked: set CONFIRM_QPU_SPEND = True after reviewing the budget above.')\n    else:\n        RUN_ID = time.strftime('%Y%m%d-%H%M%S')\n        if IBM is not None:\n            pubs, names, qpubs, lay, qlay = ibm_pubs(IBM)\n            j1 = IBM.submit(pubs, HWS['shots'], f'pqk-{PRESET}'); j2 = IBM.submit(qpubs, HWS['qae_shots'], f'qae-{PRESET}')\n            H.log_job({'run_id': RUN_ID, 'provider': 'ibm', 'backend': IBM.name, 'kind': 'pqk', 'job_ids': [j1], 'preset': PRESET, 'pub_names': names, 'layout': lay})\n            H.log_job({'run_id': RUN_ID, 'provider': 'ibm', 'backend': IBM.name, 'kind': 'qae', 'job_ids': [j2], 'preset': PRESET, 'ks': HWS['ks'], 'layout': qlay})\n            print('IBM jobs submitted:', j1, j2)\n        if WK is not None:\n            circs, qcircs = wk_circuits()\n            ids1 = WK.submit(circs, HWS['shots'], f'pqk-{PRESET}', batch=WUKONG_BATCH); ids2 = WK.submit(qcircs, HWS['qae_shots'], f'qae-{PRESET}', batch=WUKONG_BATCH)\n            H.log_job({'run_id': RUN_ID, 'provider': 'origin', 'backend': WK.name, 'kind': 'pqk', 'job_ids': ids1, 'preset': PRESET})\n            H.log_job({'run_id': RUN_ID, 'provider': 'origin', 'backend': WK.name, 'kind': 'qae', 'job_ids': ids2, 'preset': PRESET, 'ks': HWS['ks']})\n            print('Origin jobs submitted:', len(ids1) + len(ids2))\nHW_PQK, HW_QAE, HW_USAGE = {}, {}, {}\nLOG = [e for e in H.read_log() if e['preset'] == PRESET]\nif RUN_MODE in ('submit', 'retrieve', 'dryrun') and LOG:\n    rid = RUN_ID or LOG[-1]['run_id']; entries = [e for e in LOG if e['run_id'] == rid]\n    deadline = time.time() + 60 * (2 if RUN_MODE == 'retrieve' else WAIT_MINUTES)\n    done = lambda r, ids: all(str(r.status(j)).upper() in ('DONE', 'FINISHED') for j in ids)\n    failed = lambda r, ids: any(str(r.status(j)).upper() in ('ERROR', 'CANCELLED', 'FAILED') for j in ids)\n    for e in entries:\n        runner = IBM if e.get('provider', 'ibm' if e['backend'].startswith('ibm') else 'origin') == 'ibm' else WK\n        if runner is None:\n            print(f\"Cannot retrieve {e['backend']}: not connected (check the secrets).\"); continue\n        while time.time() < deadline and not done(runner, e['job_ids']) and not failed(runner, e['job_ids']):\n            time.sleep(30)\n        if failed(runner, e['job_ids']):\n            print(f\"{e['backend']} {e['kind']}: job failed — see the provider's job page.\"); continue\n        if not done(runner, e['job_ids']):\n            print(f\"{e['backend']} {e['kind']}: still queued or running — re-run later with RUN_MODE = 'retrieve'.\"); continue\n        if runner is IBM:\n            bits = IBM.fetch(e['job_ids'][0]); HW_USAGE[(e['backend'], e['kind'])] = IBM.usage_seconds(e['job_ids'][0])\n            if e['kind'] == 'pqk':\n                d = {n: b.mean(axis=-2) for n, b in zip(e['pub_names'], bits)}; d['mit'] = (bits[-2].mean(axis=0), 1 - bits[-1].mean(axis=0)); HW_PQK[e['backend']] = d\n            else:\n                HW_QAE[e['backend']] = {'probs': [np.array([((b[:, 0] == i) & (b[:, 1] == j)).mean() for j in (0, 1) for i in (0, 1)]) for b in bits[:-2]],\n                                        'mit': (bits[-2].mean(axis=0)[[1, 2]], 1 - bits[-1].mean(axis=0)[[1, 2]])}\n        else:\n            counts = WK.fetch(e['job_ids'], HWS['shots'] if e['kind'] == 'pqk' else HWS['qae_shots'])\n            if e['kind'] == 'pqk':\n                p1 = np.array([H.p1_from_counts(c, Q2) for c in counts]); i0, d = 0, {}\n                for key, S in SETS.items():\n                    n = len(S['ytr']) + len(S['yte'])\n                    for b in 'XYZ':\n                        d[f'{key}-{b}'] = p1[i0:i0 + n]; i0 += n\n                d['mit'] = (None, None); HW_PQK[e['backend']] = d\n            else:\n                pr = []\n                for c in counts[:-2]:\n                    tot = sum(c.values()); v = np.zeros(4)\n                    for k_, n_ in c.items():\n                        bs = k_.replace(' ', '')[::-1] + '00'; v[int(bs[0]) + 2 * int(bs[1])] += n_ / tot\n                    pr.append(v)\n                HW_QAE[e['backend']] = {'probs': pr, 'mit': (None, None)}\nfor be_name, d in HW_PQK.items():\n    e01, e10 = d['mit']\n    for key, S in SETS.items():\n        F = H.bloch_from_p1(np.stack([d[f'{key}-{b}'] for b in 'XYZ'], axis=1), e01, e10); ntr = len(S['ytr'])\n        REF[(key, f'{HW_PREFIX}{be_name}')] = evaluate(F[:ntr], S['ytr'], F[ntr:], S['yte'], S['cls_scores'])\ndef mitigate2(p, e01, e10):\n    if e01 is None:\n        return p\n    Mi = np.kron(np.linalg.inv([[1 - e01[1], e10[1]], [e01[1], 1 - e10[1]]]), np.linalg.inv([[1 - e01[0], e10[0]], [e01[0], 1 - e10[0]]]))\n    v = np.clip(Mi @ p, 0, None); return v / v.sum()\nfor be_name, d in HW_QAE.items():\n    AMP[f'{HW_PREFIX}{be_name}'] = np.array([1 - mitigate2(p, *d['mit'])[0] for p in d['probs']]).reshape(-1, len(HWS['ks']))\nprint('Hardware results available for:', sorted(set(list(HW_PQK) + list(HW_QAE))) or 'none yet (rehearsal mode)')"
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "2fd3c2f3",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:52:03.137355Z",
     "iopub.status.busy": "2026-10-03T21:52:03.136950Z",
     "iopub.status.idle": "2026-10-03T21:52:08.031144Z",
     "shell.execute_reply": "2026-10-03T21:52:08.029509Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 1000
    },
    "id": "2fd3c2f3",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087280097,
     "user_tz": -180,
     "elapsed": 4907,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "09bb2707-b71f-481f-942b-d408dc4f2022"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                           Data                           Source  Projected kernel AUC  Best classical AUC  Difference  CI low  CI high     Best classical\n",
       "0  quantum-structured (Track 2)       Noiseless projected kernel                 0.879               0.638       0.240   0.110    0.379  Gradient boosting\n",
       "1   realistic control (Track 1)       Noiseless projected kernel                 0.782               0.806      -0.024  -0.105    0.041            RBF-SVM\n",
       "2  quantum-structured (Track 2)  Rehearsal · IBM Fez error rates                 0.880               0.638       0.241   0.102    0.383  Gradient boosting\n",
       "3   realistic control (Track 1)  Rehearsal · IBM Fez error rates                 0.806               0.806       0.000  -0.077    0.066            RBF-SVM"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-b0222fb9-2798-4090-b435-64fa7168aba0\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Data</th>\n",
       "      <th>Source</th>\n",
       "      <th>Projected kernel AUC</th>\n",
       "      <th>Best classical AUC</th>\n",
       "      <th>Difference</th>\n",
       "      <th>CI low</th>\n",
       "      <th>CI high</th>\n",
       "      <th>Best classical</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>quantum-structured (Track 2)</td>\n",
       "      <td>Noiseless projected kernel</td>\n",
       "      <td>0.879</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.240</td>\n",
       "      <td>0.110</td>\n",
       "      <td>0.379</td>\n",
       "      <td>Gradient boosting</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>realistic control (Track 1)</td>\n",
       "      <td>Noiseless projected kernel</td>\n",
       "      <td>0.782</td>\n",
       "      <td>0.806</td>\n",
       "      <td>-0.024</td>\n",
       "      <td>-0.105</td>\n",
       "      <td>0.041</td>\n",
       "      <td>RBF-SVM</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>quantum-structured (Track 2)</td>\n",
       "      <td>Rehearsal · IBM Fez error rates</td>\n",
       "      <td>0.880</td>\n",
       "      <td>0.638</td>\n",
       "      <td>0.241</td>\n",
       "      <td>0.102</td>\n",
       "      <td>0.383</td>\n",
       "      <td>Gradient boosting</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>realistic control (Track 1)</td>\n",
       "      <td>Rehearsal · IBM Fez error rates</td>\n",
       "      <td>0.806</td>\n",
       "      <td>0.806</td>\n",
       "      <td>0.000</td>\n",
       "      <td>-0.077</td>\n",
       "      <td>0.066</td>\n",
       "      <td>RBF-SVM</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-b0222fb9-2798-4090-b435-64fa7168aba0')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-b0222fb9-2798-4090-b435-64fa7168aba0 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-b0222fb9-2798-4090-b435-64fa7168aba0');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"plt\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"Data\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"realistic control (Track 1)\",\n          \"quantum-structured (Track 2)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Source\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Rehearsal \\u00b7 IBM Fez error rates\",\n          \"Noiseless projected kernel\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Projected kernel AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.05032809023464595,\n        \"min\": 0.782,\n        \"max\": 0.88,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.782,\n          0.806\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Best classical AUC\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.09699484522385715,\n        \"min\": 0.638,\n        \"max\": 0.806,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.806,\n          0.638\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Difference\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.14611040346258714,\n        \"min\": -0.024,\n        \"max\": 0.241,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          -0.024,\n          0.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CI low\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.11435762618499332,\n        \"min\": -0.105,\n        \"max\": 0.11,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          -0.105,\n          -0.077\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"CI high\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.18936450741009167,\n        \"min\": 0.041,\n        \"max\": 0.383,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.041,\n          0.066\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Best classical\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"RBF-SVM\",\n          \"Gradient boosting\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                          MLAE error  Noise-aware MLAE error  Fitted fidelity per call  Coherent depth k  Monte Carlo error, same oracle calls\n",
       "Source                                                                                                                                                        \n",
       "Rehearsal · IBM Fez noise model              0.00240                 0.00047                   0.97000               4.0                               0.00103\n",
       "Rehearsal · uniform two-qubit error 0.1%     0.00218                 0.00021                   0.98000               8.0                               0.00103\n",
       "Rehearsal · uniform two-qubit error 1.0%     0.27017                 0.00352                   0.86000               0.0                               0.00103\n",
       "Rehearsal · uniform two-qubit error 3.0%     0.27235                 0.04644                   0.69167               0.0                               0.00103"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-5bbb3b9d-c738-433c-a257-b0af22646a90\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>MLAE error</th>\n",
       "      <th>Noise-aware MLAE error</th>\n",
       "      <th>Fitted fidelity per call</th>\n",
       "      <th>Coherent depth k</th>\n",
       "      <th>Monte Carlo error, same oracle calls</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Source</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Rehearsal · IBM Fez noise model</th>\n",
       "      <td>0.00240</td>\n",
       "      <td>0.00047</td>\n",
       "      <td>0.97000</td>\n",
       "      <td>4.0</td>\n",
       "      <td>0.00103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rehearsal · uniform two-qubit error 0.1%</th>\n",
       "      <td>0.00218</td>\n",
       "      <td>0.00021</td>\n",
       "      <td>0.98000</td>\n",
       "      <td>8.0</td>\n",
       "      <td>0.00103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rehearsal · uniform two-qubit error 1.0%</th>\n",
       "      <td>0.27017</td>\n",
       "      <td>0.00352</td>\n",
       "      <td>0.86000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00103</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Rehearsal · uniform two-qubit error 3.0%</th>\n",
       "      <td>0.27235</td>\n",
       "      <td>0.04644</td>\n",
       "      <td>0.69167</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.00103</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5bbb3b9d-c738-433c-a257-b0af22646a90')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-5bbb3b9d-c738-433c-a257-b0af22646a90 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-5bbb3b9d-c738-433c-a257-b0af22646a90');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"plt\",\n  \"rows\": 4,\n  \"fields\": [\n    {\n      \"column\": \"Source\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 4,\n        \"samples\": [\n          \"Rehearsal \\u00b7 uniform two-qubit error 0.1%\",\n          \"Rehearsal \\u00b7 uniform two-qubit error 3.0%\",\n          \"Rehearsal \\u00b7 IBM Fez noise model\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"MLAE error\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.15529247813936986,\n        \"min\": 0.00218,\n        \"max\": 0.27235,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.00218,\n          0.27235,\n          0.0024\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Noise-aware MLAE error\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.022570087874588942,\n        \"min\": 0.00021,\n        \"max\": 0.04644,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.00021,\n          0.04644,\n          0.00047\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Fitted fidelity per call\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.13402013738614058,\n        \"min\": 0.69167,\n        \"max\": 0.98,\n        \"num_unique_values\": 4,\n        \"samples\": [\n          0.98,\n          0.69167,\n          0.97\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Coherent depth k\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 3.8297084310253524,\n        \"min\": 0.0,\n        \"max\": 8.0,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          4.0,\n          8.0,\n          0.0\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Monte Carlo error, same oracle calls\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.0,\n        \"min\": 0.00103,\n        \"max\": 0.00103,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          0.00103\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1430x429 with 2 Axes>"
      ],
      "image/png": "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Tk7Wt99+63ChrbKyWq3q37+/pk+fruzsbHXt2lUPP/ywoqKilJCQoF27dunTTz/VnDlz1KFDB/Xs2dO8OMaMGTMUGxurWrVqaeLEieV63J49e5oJ6PHjxyswMFBBQUF68sknndavUaOGmdR68cUXNWDAAH3wwQcuv0Da9+Gnn36qWrVqycvLS61atXJ4vXz66ae6+uqrlZCQ4HAhG3txcXHmSN0aNWo4XMTMlV9//dX8Ml406lQqHK1SdOJflLB79dVXtWnTJt1555264oorlJubq4ULF+rrr782t+vVq5ekwpFIvXr10pIlS5SUlKQBAwbozjvv1Ny5c80vczfddFOpI8hLO8ZKU97n43xasWKFpPJN7bJy5UplZGQ4PDe5ubnmyJ6aNWuaP0+98sor1aVLF91yyy2qXbu2Dhw4oOeff97crmnTpuaXpIEDB+qZZ55RRkaG3n77bdWvX19Vq1bV448/btYfPnx4qfGVdPx27txZkZGROnHihD788ENFRUXp+uuvl81mU1xcnL7++mv9/PPP5nPRtm1bXXrppWrdurWqV6+utLQ0h4vNFL0f2j/m119/rZUrVyooKEj169cvdjFFABdGixYt1KhRI+3Zs0cnTpxQ//79dc899+inn37SRx99JKnwc7zoglmS47QSRQmoq666SrVr11blypW1b98+p3XPt/KcK1aqVEk33HCDVqxYIZvNphtuuEFPPfWUatSood9++00bN27Up59+esFiP13//v3NRPysWbMUHR2txo0b67XXXjN/wdiuXTuXU1BIhQNTZs6cqd69e6tWrVoKCQlx+Cl+0Xvz7bffrldffVVS4bRIaWlpatGihVJSUvTnn39qzZo1io2NLfGcu3PnzoqKitLx48d14MABdenSRSNGjFBAQIC+//57Wa1WTZgwweH8aO7cuapdu7Z27Niht99++8w7qwxK+syzn3qlLPr06aPRo0crJydHr7zyinx8fNSmTRtlZWVp//79Wr9+vTIzM81R987Y98O6dev00UcfKTc3V6NGjXJav7zf8aTCaSIuv/xy/fTTTw6xDBw40LxduXJl+fr6Kjs7W4mJiZo8ebIaNWqk55577pz9UTcsLMy8KPLrr7+uyy67TCEhIWrWrFm5zvU6d+4sf39/ZWZmauvWrXrooYfUrVs3LVy40Lz43+n1y3MuU1L8RU4/dzmb78c+Pj767LPPdMUVV+ivv/7S3LlzVa1aNT333HNq3ry5mjZtql27dun777/XHXfcodtuu01eXl46cOCAtmzZosWLFxebgqVmzZo6cOCApMILUdv/Gg1udO6nQQZQ0cyaNcuccL579+5O61x33XVmnYULF57Tx09MTDSqV69ebGL9Sy65xOnFD3Jzcx0uCFC02F9EwX4i/+7duxer27ZtW4f1ImW5MNvpb5233HJLsfaLti1vrPYXxLC/kIX9RUrsL9xmf/GF0i6cZhiGcffddxeLpWjx8/Mz/vzzzzLtl6sLxtmzv8CMs/0+/Tnt0qWLy9iSkpLMupdddlmx+4tiSExMNAIDA0t8XFcXuHPWf0lJSUazZs1cxnX682F/cbqiJTIy0ggJCSnz85STk2M0b968WDv16tVzegwuWrSoWF1fX1+HfrI/ln7++WenFwHZv3+/kZqaalStWrXE14v9Rd/sLxji7EKIzpTlQkZF7F8PzpYnnnjCoe2DBw8a0dHRTuvGxsYaCQkJZYqxpGOstIvNlPf5KO0Cd2V9Hzpddna2ERAQYDRp0qRM++wsHmeLfTwl1QsKCjJ++OEHh7bnzJnj9NiTZNx9991liq+k49cwDOPzzz93emFGZ8ep/cX4Tl8aN25s5OfnG4ZhGHl5eebF8OwXZ88/gPKzf191diEm+89q+9fdDz/8YAQFBbl8HU+ePNmhnZycHIcLckVFRZn39e7d22Hb7777rkyxuzoPc/Ze7eozs7znigcPHnRaX3K8gJarcxz7/nZ1DmfP1ee8q3PT//3vfy6fk4iICGPPnj1mXWcXuHvvvfdK/Hz54IMPzO2LLuJals8sV1atWmVesOv0pejidAcOHHB6ETD78yNX5/OuLrhclthK+8xzdRE2V98n3n77bfMCic4WZxf2tZefn+/w/cxZP9gfJ66+49mf0zo7f5w2bZpD/fr16xer88ADDzhtNyoqqlg/lXTxYlev4ccee8xl/5T3XG/KlCnF6nt5eTlcJNK+fnnOZVwp7dzlbL8f//bbb+aFwCUZM2bMMAyj8EKeoaGhJb4uT1fe77O4MJiGAoDD1BI9e/Z0Wsf+4l/neiqK8PBwbdq0ST169JC/v7/Cw8N1//33O73wgiR5eXlp6dKluuqqq+Tt7a3o6GhNmDDB5UUO3nvvPQ0aNEjh4eEKDQ3VoEGDzIv5nQtvvPGG+vbt6zBH1pnGer4VjbZs0KCBQkJC5OHhoaioKPXu3VubN292+LlYSftVFq+//rpuvfVWBQQEKCQkRIMGDdKmTZuc1vXy8tIXX3yhN998U1deeaWCgoLk4+OjWrVqafDgwQ4/i/rggw90/fXXO53bNDw8XEuXLtUll1wib29v1alTR2+++abTC3GVRWhoqL777js9++yzat68ufz8/OTv76969eqpT58++uCDD3TllVea9RctWqQHHnhA4eHh8vf3V9euXbVp0yaFhoaW+TG9vb315ZdfasCAAQoODlZwcLD69u3rMI+YvT59+mjWrFmqV6+efH191apVK61atcrlXIvNmjXTu+++q0aNGhUblRIUFKQvv/xS1157rQICAhQdHa1nnnlGzzzzjNO27EdvuLoozNkYPXq0nnrqKbVu3VpVqlSRp6enwsPD1aVLFy1durTYSPWYmBj9+OOPGjZsmKpXry4vLy9Vr15dw4YN05YtW1S9evUyPW5Jx1hpyvt8nC/r1q1TRkbGeb1g5JIlSzRo0CA1aNBAwcHB8vb2Vu3atTVs2DDt3Lmz2AVsBg8erNWrV6tTp04KCgqSn5+fLr30Us2YMcNh7sGSlHT8StINN9ygn376SQMHDlR0dLS8vLwUERGhFi1aaOTIkVq0aJFZ98knn1SvXr1Uo0YN+fv7y8vLSzVr1tTw4cO1bt06c14+T09PLVu2TO3atXOYSx6Ae7Vu3Vrbtm3TXXfdpejoaHl6eio0NFSdO3fWF1984fDLBanw89V+znv7aYmKflYtSf7+/g4XGT7fynuuGBMTo+3bt2v06NFq3LixfH19FRgYqEsuuUT9+/e/YHG78uKLL2rRokXq0KGDQkJC5OXlpRo1amjYsGHatm2bGjZsWOL2V111lR5++GG1bNlSERER8vDwUEhIiK6++mp99NFH6tevn1n3mWee0YoVK3T99dcrPDzc/Nxv166dJk2apAkTJpQab9euXbV161bdeeediomJkZeXlypVqqR27dqpU6dOkqTY2FitXr1arVq1kp+fn+rUqaPp06frnnvuObvOKkVpn3nldc8992jTpk26+eabVblyZXl6eqpy5cpq3bq1/u///k/Tp08vcXsPDw99/vnn6tmzp0JCQhQZGamHH35Y77zzjtP6p3/Hq1SpkoYOHerwWexM//79HeYSLprH2N7LL7+shx9+WFWrVlVgYKB69uypr7766pxNNThu3Djde++9qlatWrFpNsp7rvfoo4/qzTffVK1ateTj46OWLVvq888/d3gt+Pv7m7fLcy7jSmnnLmf7/bhBgwZavHixeeH7ESNGaOnSpWrZsqV27Nih4cOHq3bt2vL29jbngB8+fPgZ/doT7mExjHM8szoAnCNn8hN3ABeO/dWg586dq7vuusu9AcH0wAMPaPr06dq8eXOZ5gIGAADAuWcYRrGEc25ururWrWtORbFt2zZdeuml7ggPcIo5iwEAwBnZuHGjJKlDhw4kii8yzZs314QJE0q9oB8AAADOn/fff1/ffPONbr31VtWtW1fHjh3Tiy++aCaKGzVqpBYtWrg3SOA0JIsBAMAZ2bhxo3x8fDRz5kx3h4LT2F+dGgAAAO6Rl5enGTNmmBfCthcSEqL58+cXG3kMuBvJYgAAcEZ27Njh7hAAAACAi1bLli3Vp08f/fjjjzp27JikwikWO3furMcff1w1atRwc4RAccxZDAAAAAAAAACQ1d0BAAAAAMCZeOONN3T55ZfLx8dH/fr1K7Huxo0b1bRpU/n7+6tVq1bauXPnBYoSAACg4iBZDAAAAKBCqlatmp566ikNHTq0xHonT55Ur1699L///U9JSUnq37+/evbsqZycnAsUKQAAQMVAshgAAABAhXTzzTerd+/eioiIKLHe4sWLVbduXQ0aNEg+Pj569NFHZbPZtHbt2gsUKQAAQMVAshg4S/n5+UpISFB+fr67QwEAAIATu3btUosWLcx1i8WiSy65RLt27XK5TWpqqhISEswlLi5Oe/bs4ZwPAAD8q3m6OwCgojt69KhiYmIUHx+v6Ohod4cD/CcYtnyl/zrHXA9sPEQWKx9pAADn0tPTFRYW5lAWGhqqtLQ0l9tMmTJFEyZMKFbOOd9/V7v3Z0mSvr59mJsjAQDg/OGbNQCg4jFsytj9trka2Ogu98UCALjoBQYGKiUlxaEsJSVFQUFBLrcZOXKk7rnnHnP9yJEjat269XmLEQAA4GJAshgAUPFYrPKr1cthHQAAV5o2baq33nrLXDcMQz///LPuu+8+l9sEBwcrODj4QoQHAABw0eDbNQCgwrFYPRXS+ilzYQoKAPhvys/PV3Z2tvLz82Wz2ZSdna28vLxi9W6++Wbt27dPCxYsUG5url599VVJ0nXXXXehQwYAALiokSwGAAAAUCE999xz8vPz08SJE7Vo0SL5+flp6NChkgqnnti8ebMkKTw8XEuXLtWkSZMUEhKihQsXatmyZfLx8XFn+AAAABcdhmIBAAAAqJDGjx+v8ePHO70vPT3dYb1Dhw7atWvXBYgKAACg4mJkMQAAAAAAAACAkcUAgIrHsOUr/dc55npg4yHMWwwAAAAAwFnimzUAoOIxbMrY/ba5GtjoLvfFAgAAAADAvwTTUAAAAAAAAAAASBYDAAAAAAAAAEgWAwAAAAAAAABEshgAAAAAAAAAIJLFAAAAAAAAAACRLAYAAAAAAAAASPJ0dwDAv0XLTo/IwyvA3WEA/wleHjZtGfPPeo2WdyuvgL9/AhfakV3z3R0CAAAAgHOIb9YAAAAAAAAAAJLFAAAAAAAAAACmoQAAVECGYdGeI74O6wAAAAAA4OyQLAYAVDj5Notuf6e2u8MAAAAAAOBfhWkoAAAAAAAAAAAkiwEAAAAAAAAAJIsBAAAAAAAAAGLOYgBABWS1GLq6Xrq5vnlfoGxc5A4AAAAAgLNCshgAUOF4WA1Nuy3eXG/9fEPZCkgWAwAAAABwNpiGAgAAAAAAAABAshgAAAAAAAAAQLIYAAAAAAAAACCSxQAAAAAAAAAAkSwGAAAAAAAAAIhkMQAAAAAAAABAJIsBAAAAAAAAACJZDAAAAAAAAAAQyWIAAAAAAAAAgEgWAwAAAAAAAAAkebo7AAAAyiuvwKpLn23s7jAAAAAAAPhXYWQxAAAAAAAAAIBkMQAAAAAAAACAZDEAAAAAAAAAQMxZDACokAxFBeWba8fTPCVZ3BcOAAAAAAD/AiSLAQAVjpeHodWP7DPXWz/fUHkFJIsBAAAAADgbTEMBAAAAAAAAACBZDAAAAAAAAAAgWQwAAAAAAAAAEMliAAAAAAAAAIBIFgMAAAAAAAAARLIYAAAAAAAAACCSxQAAAAAAAAAAkSwGAAAAAAAAAIhkMQAAAAAAAABAJIsBAAAAVFDJycnq27evgoKCVK1aNU2bNs1l3ffee08NGjRQYGCg2rdvr99///3CBQoAAFBBeLo7AAAAyiu/wKL+b9dyWAcA/PeMGDFCOTk5OnTokA4cOKBOnTqpQYMG6tatm0O9r7/+Wg8//LDWrl2rSy65RM8995x69uyp3bt3y9OTr0QAAABFGFkMAKhwDFn021E/czFEshgA/msyMjK0aNEiTZw4UcHBwWrWrJmGDh2qOXPmFKv72WefqU+fPmrZsqU8PT311FNPaf/+/dq8ebMbIgcAALh4kSwGAAAAUOHs3btXNptNTZs2NctatGihXbt2FatrGIYMw3BYl6Sff/7ZZfupqalKSEgwlyNHjpzD6AEAAC5OJIsBAAAAVDjp6ekKCQlxKAsNDVVaWlqxujfccIMWLVqkLVu2KDc3VxMmTFB+fr4yMzNdtj9lyhTFxMSYS+vWrc/5PgAAAFxsSBYDAAAAqHACAwOVmprqUJaSkqKgoKBidTt27KiXXnpJgwYNUrVq1ZSVlaXGjRsrOjraZfsjR45UfHy8uWzZsuWc7wMAAMDFhqs5AAAqHC8Pm1Y/vM9c7/pqPeUV8PdPAPgvqV+/viwWi3bv3q0mTZpIknbs2OEwLYW9e++9V/fee68kKSkpSbNmzSpxtHBwcLCCg4PPfeAAAAAXMb5ZAwAqpLCAAnMBAPz3BAQEqE+fPho7dqzS0tK0a9cuvfPOOxoyZEixujk5Odq5c6dsNpuOHTume+65RzfffLMaNGjghsgBAAAuXiSLAQAAAFRIb775pry8vFS1alV17txZo0ePVrdu3SQVTlOxefNmSVJubq7uvPNOBQcHq2nTpqpWrZpmzZrlztABAAAuSkxDAQAAAKBCCg0N1aJFi5zel56ebt4OCgrSjh07LlBUAAAAFRfJYgAAAAAA/sUys/K0/Ku9WrZ2r04mZyk81E89r6uvGzvVl7+fl7vDAwBcREgWAwAAAADwL/VXfJIGj1qmoycyZLFIhiHFJSTrp1+OaPqCnzR3ck/Vjglzd5gAgIsEcxYDAAAAAPAvlJmVp8Gjlul4YqakwkSx/f/HEzM1eNQyZWbluSlCAMDFhpHFAAAAAABUIAUFNqWm5yotI0cpaTlKTctRSnrh/6npf5el52jX3hM6eiLDZTs2w9DRExkaPGqZmtSPVIC/lwL8vBXg76VAf2+H9QB/bwX4eZm3PT0YewYA/0YkiwEAAACgjA4kHFelSpHy9/cxy+IOHpPNMBQZHqKgQD+zPP7QCeXlF6hSaJBCQwLM8kNHTionN0+hIYGqFBpolh85dkpZ2bkKDvRXRHiwWX48MVnpGdkK8PdV5chQszzxVKpS0zLl6+OtalUqmeWnktOVnJIub28vRVcNN8tTUjN0MilNnh4eio2ONMvTM7J0PDFFFotFtWIrm+WZWTk6ejxJklQrtrIsFoskKTsnV4ePnpIkxVaPlKenhyQpLy9f8YcTJUnVq4bLx7twLlybzaa4+OOSpKqVK8nP19t8jL8OHJUkVY4MVYC/7z/9HH9cBTabIioFKzjI/58+PZyovLx8l30aEhyg8LAgs/zo8SRlZuUoKMBPkREhZvmJxBSlZWTJ389HVaL+mYLBVZ8mpaSroMAmixylpmUq8VSqPKxW1YiJMsszMrN17ERyiX1avWq4MjLzlZKWo8SkDP114LjSM3Ll7eNbWJ6eo+SULB05dkppGbnKK7AqPaOwPC09R7aCHEmS1cNLFouH+Ri2/GwZkqxWL1msduUF2TIMyWr1lMXqaVeeo62/HND23YeKlRuGIYvVQ1arl115rgzDJl9fbwUHBpjJYy8Pm7w8DQUH+SkyPNRMLMsokEX5Cg7yU2z1CDPpXFCQr9ycHAUH+ahurSrm8ZWWnqUTJ1Nc9qkk1a5RxSzPys7VkWOFx2ON6Ch5/J3Ezs3LV8Lfx2N0tQh5exXuW35+gQ4eOiFJqlalknx9Co9HwzC0/+AxSVKVyLByvcbDw4IUEvzP8Zhw5KRyz+A1Hhjgq6iIULM88WSqUtMz5efrraqVy/4a9/L0UEz1f17jRX1qtVhU0/54zMzR0RNlf4276tOCApsOJJzZa7y875uuXuNn+76ZlJKupOR0eXl5KqZaRLE+PZP3zZoxUbJaC4/HnNw8HTpyslifluV9s0pUmPz9/jke9x88JsMwyv2+GRYaqLCQf47Hw0dPKTsnV8FB/oqo9E/flfd982RSmlJSM+Tj7aXqdsdjckqGTiWnFevT0t43JdevcVd9GlMtQl7leY276NOoiBAFBvxzPB5MOKH8grK/xl316bETycrILP9r3GWfnsFr3L5PS0OyGAAAAADK6KY7n9f7bz2l665pYZbd0H+CklIy9Nrz9+rWnm3N8tuGTtb+g8c04Ynbde/Armb5vY+9qW0//6lHhvXUEw/eYpaPGj9PX23eqbv6ddILTw0yy595+SN9uuJb9br+Cs18+X6z/NW3luudBWvU/som+uid/5nl8z78SpPfWKxmjWtozcfPmOWLP/9OYya+p+hqEfpxzStm+dqNO3Xf/2YowN9Xf2yZZZb/uH2f+t07WZJ0cPts84v4738c0vW3jZck7dzwqvnF9+jxJLXt/oQkacPSiWpQN1pSYfKkqHzJ/DG68rIG5mNc02uM8vMLNOfVh9St02Vm+Y13PKcTJ1P0yoQhuv2Wa8zyO+57RXv/PKz/G3mb7h9yg1l+/xMztWXbXo24u7vGPtrXLB/93LtavW6bbr/lGr0yYYhZ/sKrn+iDJZt0w3WXa/a0B83y6XO+0Ix5K3XV5Q21eN6TZvmCRRuUnJ0uD49/kq+StOSL7zX62fmKCA/Ru9PHmKN6v/7hF733wTJ5eHho4IA7lJpeONI3PuGwfv/1B0lSUNTlZpK3IC9TGad+kSQFRrSQ1aMwiWEryFV64nZJUkClpvLwKkpWGMo4uVOS5B/aUJ4+/yR00k/+Iskmv5C68vL9J8mQcWqPDFuufINqytvfLpmQvFe2/Ez5BETLJ7C6WZ6V+pcKclPl7V9FvkE1zPLstAPKzzmlXN8I5eXX0cnkrL/r71de1nF5eofKP+yf5zg7PV65GYfl4RWogEpNzPKcjCPKST8oq4evQqJaFCaR/b2UnX5MB/bvkpeXt3r2vFkBft4KDPDWkSOHtGTZSlksFr358mhz1POB+MN67P+mS5J+/HKaqkaFyMPDqgPxx9W+Z+Fz+N0XL5kJlOTUDPN4XPnBOLVoVruwr22GWb5w5mPq2O4SM9aut41Xalqm3pg0TLf0aGOW33r3izqQcELPPXmH7h7Q2Sy/55HXtXP3fj12X289/sBNZvnIp+dowze/aMjt12nimIFm+fjJH2rJ59/ppu5XafqLw83yqbM+05z316pD22b6YNbjZvmchV/qlRlL1bxJLa36aLxZ/snyb/XUCwtUIzpS36962Sxfs2G7RoyepeAgf/3+3Qyz/Pttv2vA8ML3goSdc+XhUZgs/m1vgrr1nyBJ+mXT62bS6/CRk2YfbVr2gurVriapMHFaVP7Zu2PVumV98zGuvnG0bDZD8994RF06XGqW33D7MzqVlKZpz92j23pfbZb3H/6K/tx/ROMe76fhd3Uzy+8bNV0/7vhDDw29UU8+3Mcs/9+Eefpy4w4NvPVavTTuLrN84tRF+vizr9WjSyu9PWWEWf7G7M81a/4qtbuisRbNfsIsn//hOr34+qdq0iBWaz991ixfuvIHjX52vqpVrqStX001y9d//YvufexN+fl5668f3zbLt+78Q33veUmStH/r22aict9fh9W5z9OSpG1fTTUTg8cTU8y+W7f4OTWqHyNJys7OM8s/nTNabVo3Mh/j2t5jlZObp7enjlCPzq3M8t53TtTR48maPH6w7ujTwSwf9MBU/bYvQWMeuVUP3tPDLB8xepa+++k33XdXNz39eD+zfOzzC/TF2p/U/6b2mvLs3Wb5pNc/1fufblTXji0177WHzfKZ81bqjdmfq3XL+vrs3bFm+fufbtSzUz5S/TrVtPGzF8zyFWt+1GPj5igyPEQ/b3zNLN/03W4Nefg1eXp6KH7HHLN85+79uunO5wv78YeZZjI37uAxdehd+HhbVr9sJk9PJaeZfbfqo/Fq3qSWpMIkclH5h2+N0jVtmpqP0bnP08rIzNaMl+5T7xuuNMtvGTJJCYcT9fzYgRrc/zqzfMjDr+qXXw9o1IibNXJ4L7P80afe0abvd+ueO7ro2dEDzPJxL76vz1b9oFt6tNEbk4aZ5a/MWKp5H36lTlc314IZI83yt99brWmzlqnlJXX0+ftPm+UfL/ta4158X7ViK+vbL14yy1et26aHxrylsJAA/frNdLP82x/3aOADhcftkV3zVVYkiwEAAAAA/1nZOYWje9PSc3QssXDKhsSkTL27+Gcz+fvNd39IVxYmFHvc/aGZ/E05dViSdDIpU/0eWmy2mZddOAquoMCmxat/M8vzc1PPefxREf6qWjVSIYE+Cg7y0eLFW5Wfb9ONneprT1y+Dh5OMecoLslVl0WrZYsWysjKVUZmnlav2a8TJ1IVHuavqKqhysjMU0ZWrjKTz/kuqMBmmH2am1U4v3J+vk1ffr3frJOXUzg6zjAMjX5pnVmen5tm3u54+3uyWD3l6+MpL2uuWT5y4peKDA9TgL+XrBabWb78q73aezBbAX5e8vP95w8BxxMzdDIpUwH+3vLxdvwDAQD821kMoywfGwBcSUhIUExMjCLr32L3l34A55PVYqhX82Rz/bOdobIZp/8wFMD5Vp4RCkBFV3TO9/V3W3XpJU2YhuIimobCMAz9GXdcJ5MzJEvhlAlF8/gmHDmpU8kZys0zlFfgYc7te/JUqlLSMpWeWaACm91UDbY8GbYCWSwWc3SvJBm2fHneWiBJKvjUsdxmy5dFktXT1668QDZbXvFyo0C2gsKLyVk9fOTpYVVwkI+C/L3k41WgwABvVYmqpNAQPwUH+CggwEv5uVkKDPBWrdgoRYQFmPVPnEyW1Wop8efUn6//S09P3Vi4byVMQ/Hw4FYa0LtFmX6ifuRYkk4lZ0iyys/frzCJnJmnw8dO6WRShgpskoeHj5l0PnkqVcmpGcrJNWSTp9IzcpWRlae0tEylZ2Qqv0DF+rqkPpUkD4c+tclWkGv2adFx6ljuLYvFah4v/0zh4ar8n6k9PKwW+XgVyM/XU8FBAQoO8lfg31NvGAU58vHxUHhokMIrBSrA31uB/l7Kys6Sl4dUOTJEVaNCzak6UlPTlZuXxzQUYhoKpqFgGgrp4p2GgmQxcJZIFgMA/qtIFuO/pOicLz4+XtHR0e4O51/HMAxlZOUVu0Cbs4u3paYXL8vLt5X+IGfJ45bCxGPBp94O5V6eVgX/Paq3aHSv/e3T/w8O9DHrB/h5mQm68yEzK0/dBr+v44mZsjn56m+1WBQV4a+Vc2+Xv5+XkxbOv9y8AnPUclEiuWi9MBFdWPbPfcXrpGcW/p+ZleeWfSgPP1/Pv+dz9nb4PzDA8QKCzu8ruuiglznq+XweP+dbZlaeln+1V8vW7tXJ5CyFh/qp53X1dWOn+m47HgEwDQUAAAAA4Byw2QylZ+aaUzqYyVy7xK59gjfFLvmblp6r/ILzn/B1xcfbo1hiNyjQRyFB/yR230z7WhaLRdOn9nao6+vjedEm7Pz9vDR3ck8NHrVMR09kyGKRDEPm/1ER/po7uadbE3PeXh7yDvFQWIhv6ZVLYbMZysx2nkguKcl8emI64+/E9Pn4I0RWdr6ysvOVmJR11m15WC3maOZ/EsyOyeay3ufv52VeHPBC+Cs+qdhxGZeQrJ9+OaLpC37S3Mk9VTsmrPSGAJxzJIsBAAAAwM0ulhF2BQU2pWXklnlUr/19aRm5stnc98NVP19PBZ+W4LUfzRsS9HcC+PQRv0E+8vEu/avxO+9/L0m6/JJq53tXzqnaMWFaOfd2rVi3T8vW/q7EpCxFhPmp53UN1KNjvX/VCE6r1aJAf28F+ntLOvtffebmFii9LCOci+4rITF9PkY928/1fC7Yj3oOPG0Us32yOdBF8jnA38vcztvL9ajnzKw8DR61TMcTC+enLhr0XvT/8cRMDR61zK0j3oH/MpLFAAAAAOBG53qEXX6BzUzqOkv6lpT8TcvILf0BzqMAfy+n0zU4m8ohJMhxFLC3Fxcic8Xfz0t9uzdW3+6N3R1KheLt7aFK3n6qFOJXeuVS2GyGMv9OMqeflmwunmQ+LRHtJDF9sY969vSwFks2F02ncfxkpo6eyHC5rc0wdPREht5870d161C3cPS5l4d8vIv+95S3l4e8vKwX7aj+iuBi+SPlf9XF3P/MWQycJeYsBi48T6uhV/sdNNcf/jBW+TZOFIELjTmL8V9yvuYsLm1OWYtFqhTip/GPtFdObkGZpnTIyHTvvK1BAd6lztVrP6o32O5+zwv4M/jyavf+LEnS17cPc3MkwN+jnu0SyemnJ5uLktBOk8+OdTOz8929O2fMPons7e0hn7//93ZILFvNBHNRPcfkc1F58bo+f7dl/xj27RbVu5BTeJwLzv5IWfR/lcgApgE5zy72/mdkMQCgwrFYDLWpk+GwLpEsBgBUPMu/2lviCDvDkE4mZ+nB8asvWEwWi8o9qrco6RsU4F3hkiZARWSOeg49+1HPBQU2ZWXnOySfixLK6aWMcM7IzD0tUZ13Qecfz80rUG5ewQV7PFc8Payuk9B2CWwfL095e1v//r+wjlexkdPOkthO7vs7Oe7l/U/y2tOj9NHWTAPiXhWh/0kWAwAAAICbLFu71xxNdC55WC2OCd4gHwUHuEj+nlYW4O8tq5U/wgL/FR4eVgUGeCswwPus2zIMQ7l5Bf8km52MeJ71wTbFH0kttS1fHw9FhQcoN69AObmFSeHc3ILzMgXH2covsCk/y3Ze5qYuD6vVUiyxfHoSOyklq0zTgAwb+7nq1awki8Wiovxz0W2L/v7fIslikcXuvsJ6/9SRk22KEtpmew73l3Jf4T+7+wsfXy7qF95Xttgt5rrruB0eqzz79Pf6hu/jytT/K9btc9vUQSSLAQAAAMBNTiZnlSlR7OPtoStaVC+W2LUf1Ws/pUOAnxdzeQK44CwWi3y8PeXj7ely1LPNMPT01I2ltjX2gaudJstsNsMcUWyfRM7JzTdvO9x3Wr3C9fzi2+cVKC/3n7Ich7o25dndLtr+YpvY1WYzlJ2Tr+ycs59aZMvOw9qy8/A5iArlZbFIy9b+TrL4fDh48KAaN26skydPysfH54zb6dChg/r166fhw4efw+gunCZNmujVV1/Vdddd59Y4Ro8eraNHj2revHnF7tuwYYP69euno0ePXvjATlOzZk3NnDlT119/vbtDAQAAwL9ceKif4hKSS0w4WCzSJQ2j9PYLPS5cYABwntzYqb6mL/jJ5VztVotFURH+6tGxntPtrVaLfH085evj3pSWYRjKy7c5JKHNJHNugXLy8pWbW5hYzss7PQF9ehK7MAntKpFdlMwulgj/e7sLOfUHzj/D0Dm50OSZuqiTxR06dNDXX3+tX3/9VfXr15ck/fbbb2rUqJHKcl2+2NhYpaenn+8wL3q7d+8+6zYupmQuAAAA8G/R87r6+umXIyXWMQyp53UNLlBEAHB++ft5ae7kni4v8BUV4a+5k3te9PPlWiz/TPkgf/fGUlBgczqaOu/0EdK5Nk1++1vtjy/lj5SSqlUO0q3dG8kw9PdSuIFhGP+UqfC2ispkONQ3ZHefw/1Fbdm1Z39f4T+7xypqy3l91/f9/fjlifvvB/+nLcc4XMUtJ/ULwyq6v7B8f0Kyskq5qKTFIkWEnf185Gfqok4WS1JISIj+7//+Tx999JG7Q7ko5efny9Pzon8aLxj6AwAAABXJ2Y6wA4CKqHZMmFbOvV0r1u3TsrW/KzEpSxFhfup5XQP16Fjvok8UX2w8PKzy87DKz7f0fjtxKqPUaUAMScMHXOa2aRD+zT5asbv0/nfzH4kv+svUPvjgg/riiy+0fft2p/enpqbq7rvvVpUqVRQdHa2RI0cqJydHkhQXFyeLxaLs7GxJ0nvvvae6desqKChIMTExmjp1qtnO6tWrdfnllys0NFQtW7bU5s2bXca0YMECNW3aVKGhobr66qsdRu6+/PLLiomJUVBQkGrXrq0PP/xQkvTXX3+pY8eOCgkJUXh4uNq3b++yfYvFotdff11169ZVpUqVNHToUHOfNmzYoCpVqmjatGmqXr26evToIcMw9NJLL6l27doKDw9X7969dfjwP/PK1KxZU6tWrZJU+FeMKVOmqH79+qpUqZJuuOEGJSQkmHV///133XDDDYqIiFBERIRGjBihlJQUdevWTcePH1dgYKACAwO1Z8+eUvvi559/VqtWrRQUFKTu3bsrKSnJ5T476+NatWppz549pcZssVg0ffp0NWzYUKGhoebz/t5776lWrVoKCwvTo48+WubnEAAAALhQikbYRUUUDkuzvziQVHFG2AFAefn7ealv98ZaMPUmrZp3uxZMvUl9uzfm/e48u7FTfVWJDJDVxbz2VotFVSID+CPleVIR+v+iTxZXqVJFDz30kMaMGeP0/oceekiHDh3Sb7/9pp9++knffPONnnnmmWL1MjIyNGTIEM2dO1dpaWnauXOnOnToIEnauXOnbr/9dk2bNk2nTp3SM888o969eysxMbFYO8uXL9dTTz2lDz74QCdPntQdd9yhG2+8Ubm5ufr999/19NNPa+3atUpLS9M333yjSy65RJI0duxY1a9fX4mJiTp69KgmTpxY4n5/+OGH+vbbb/Xbb79px44dDvUTExO1f/9+/fnnn1qyZInmz5+v6dOn64svvlBCQoKqVq2qvn37Om33jTfe0MKFC7VmzRodO3ZMLVu2VL9+/SRJ6enpuu6669S2bVvFx8crPj5e/fr1U0hIiFauXKmoqCilp6crPT1djRo1KrEv8vLy1KtXL9100006deqUHn74Yb333nsl7nORqVOn6rnnntOGDRvUqFGjEmMu8vHHH2vTpk06ceKEWbZ27Vrt2rVLW7du1dy5c7Vu3bpSn8OySE1NVUJCgrkcOVLyzwYBAACAkhSNsHt2ZAdd3qyqasWE6vJmVfXsyA5aOfd21Y4Jc3eIAIB/Cf5I6V4Vof8rxO/1R40apTp16mjTpk2KiooyywsKCvTBBx9oy5YtCg0NlSRNmDBBQ4cOdZqM9fLy0q+//qrmzZurUqVKqlSpkiRp1qxZuueee9SuXTtJUo8ePdSiRQt98cUXGjRokEMbM2bM0BNPPKFmzZpJkoYNG6aXXnpJ33//vapXry7DMLRr1y7FxsaqatWqqlq1qiTJ29tbR44c0YEDB1S3bl1dffXVJe7z6NGjzX196qmn9Nhjj5lJcMMw9MILL8jX11dS4SjZRx99VA0bNpQkTZ48WWFhYfrzzz9Vp06dYvG/8sorqlmzpiRp/PjxCggI0MGDB/Xtt98qJCREY8eONesX9YkzJfWFVJigHz16tKxWq7p06aKuXbuWuM+S9OSTT2rNmjXavHmzIiMjS405Nja2WH8VmTBhggICAlS7dm21b99e27ZtU8eOHUuMu6QR30WmTJmiCRMmlFoPAAAAKKuiEXb85BcAcL4xDYh7Xez9f9GPLJak0NBQPfHEE3ryyScdyhMTE5Wbm2smEaXCKReOHDlS7AJ4AQEBWrZsmZYsWaKYmBhdc801+u677yQVTlfx+uuvKzQ01Fy+//57h6kcisTFxWnUqFEOdY8cOaJDhw6pTp06mj9/vl577TVVrlxZ3bt312+//SapMIFbrVo1XXvttapdu7YmTZpU4j4XJUElqUaNGjp06JC5HhERIX//f2ZPP3TokEMfBAYGKjw83GEb+/hvu+02M/aIiAhZrVYlJCTo4MGDqlu3bolxlbUvDh8+rOrVq8tq/ecQq1GjRontpaSk6M0339SoUaPMRHFpMZfUdpUqVczb/v7+5sUOS4q7LEaOHGmOvI6Pj9eWLVvKtB0AAAAAAMDFgGlA3Oti7v8KkSyWCucujouL04oVK8yyiIgIeXt7Ky4uziyLi4tT1apVZXEy98d1112nVatW6cSJE+revbs5VUNsbKz+97//KTk52VyKRsWeLjY2Vm+88YZD3czMTPXv31+S1LdvX23cuFFHjx5VnTp1NHToUElSVFSUZsyYofj4eC1evFiTJ0/WV1995XJ/Dx486HC7evXq5vrp+1a9enWHPkhPT9fJkycdtrGPf9myZQ7xZ2VlqU2bNoqNjdWff/7pNB5n/VlSX1SrVk2HDh2SzWZzuk/OhISEaNWqVXrwwQe1cuXKMsVcUnyulPYcliY4OFjR0dHmUjR6HMCFYxgWffRjmLkYRtnfAwAAAAAAgHMVJlns5+enp59+2mFEroeHh/r166cnn3xSycnJOnbsmCZMmKCBAwcW2/7YsWNaunSp0tPT5eXlpaCgIHl4eEiS7r33Xr311lv6+uuvZbPZlJWVpfXr1zuMXC1y3333adKkSdq5c6cMw1B6erqWL1+utLQ0/f7771q7dq2ys7Pl4+OjwMBA8zE+/vhjxcfHSyocKe3h4WHe58xLL72kEydO6MSJE5o4cWKJicwBAwZo2rRp2rt3r7Kzs/XEE0+odevWxaagKIp/7NixZlI4KSlJH3/8sSSpe/fuOnXqlCZNmqSsrCxlZWXp66+/liRVrlxZSUlJDhepK6kvrrrqKvn5+emll15SXl6e1q5da15kryRt2rTR0qVLNWjQILN+STGfiZLiBlAx5NssmrSqqrnk20gWAwAAAABwtipMsliS7r77boWFOV7coWjKhwYNGujSSy9V69at9fTTTxfb1mazadq0aYqOjlZoaKjmzZun999/X5LUsmVLzZ8/X6NGjVJ4eLhq1KihV155xWFUbJFevXpp3LhxuvPOOxUaGqp69eqZF27LycnR2LFjFRkZqfDwcH3//feaOXOmJGnr1q266qqrFBAQoPbt2+uRRx4xL7DnTN++fXXVVVepfv36atq0qcM8wqe78847de+996pr166qVq2a4uPj9dFHHzmt++CDD6pfv37q0aOHgoOD1bx5c61evVqSFBQUpC+//FLr1q1T9erVFRsbayZlGzZsqDvuuEN169ZVaGio9uzZU2JfeHl56bPPPtMnn3yisLAwTZ061WkS35m2bdtqyZIlGjhwoDnS2FXMZ6KkuAEAAAAAAID/Kotx+uS+cDuLxaI9e/aYF6w7WzExMZo/f746dux4TtqDo4SEBMXExCiy/i3y8ApwdzgAAFwwR3bNd3cIwAVTdM4XHx+v6Ohod4cDN2j3/ixJ0te3D3NzJAAAnD8VamQxyu/YsWM6ceKEwwXwAAAAAAAAAOB0nu4OAOfP5s2b1bNnT40YMUK1a9d2dzgAcM54WAzdf+1xc336+igVcJE7AAAAAADOCsnii9C5mhnk6quvdrggHQD8W1ithoa0PWmuz9wYqYICksUAAAAAAJwNpqEAAAAAAAAAAJAsBgAAAAAAAACQLAYAAAAAAAAAiGQxAAAAAAAAAEAkiwEAAAAAAAAAIlkMAAAAAAAAABDJYgAAAAAAAACASBYDAAAAAAAAAESyGAAAAAAAAAAgydPdAQAAUF6GYdHPCX4O6wAAAAAA4OyQLAYAVDj5NovunFvL3WEAAAAAAPCvwjQUAAAAAAAAAACSxQAAAAAAAAAAksUAAAAAAAAAADFnMQCgArJaDHVsmGaur/stSDYucgcAAAAAwFlhZDEAoMLxsBqa3CfBXDyshrtDAgC4QXJysvr27augoCBVq1ZN06ZNc1n3448/VuPGjRUUFKR69epp9uzZFy5QAACACoKRxQAAAAAqpBEjRignJ0eHDh3SgQMH1KlTJzVo0EDdunVzqHfw4EHdcccd+vTTT9WjRw/98MMPuu6669SyZUtdeumlbooeAADg4sPIYgAAAAAVTkZGhhYtWqSJEycqODhYzZo109ChQzVnzpxidePj4xUaGqobb7xRFotFV155pRo1aqRdu3a5IXIAAICLF8liAAAAABXO3r17ZbPZ1LRpU7OsRYsWThPAV1xxhRo0aKAlS5bIZrPp66+/1v79+9W+fXuX7aempiohIcFcjhw5cl72AwAA4GLCNBQAAAAAKpz09HSFhIQ4lIWGhiotLa1YXU9PT915550aNGiQsrKyZLFYNHPmTNWoUcNl+1OmTNGECRPOedwAAAAXM0YWAwAAAKhwAgMDlZqa6lCWkpKioKCgYnXXrFmjUaNGac2aNcrNzdWOHTv03HPP6fPPP3fZ/siRIxUfH28uW7ZsOef7AAAAcLEhWQwAAACgwqlfv74sFot2795tlu3YscNhWooiP//8s9q2baurrrpKVqtVTZo00Q033KCVK1e6bD84OFjR0dHmUrVq1fOyHwAAABcTksUAAAAAKpyAgAD16dNHY8eOVVpamnbt2qV33nlHQ4YMKVa3devW+vbbb/Xjjz9Kkn7//Xd98cUXat68+YUOGwAA4KJGshgAAABAhfTmm2/Ky8tLVatWVefOnTV69Gh169ZNUuE0FZs3b5YktW/fXs8//7wGDBigoKAgde7cWf3799fdd9/tzvABAAAuOlzgDgAAAECFFBoaqkWLFjm9Lz093WF9+PDhGj58+IUICwAAoMIiWQwAqJBy8y3uDgEAAAAAgH8VksUAgAonr8CqK15o5O4wAAAAAAD4V2HOYgAAAAAAAAAAyWIAAAAAAAAAAMliAAAAAAAAAICYsxgAUCEZignLM9fik7wkccE7AAAAAADOBsliAECF4+VhaNmIP8z11s83VF4ByWIAAAAAAM4G01AAAAAAAAAAAEgWAwAAAAAAAABIFgMAAAAAAAAARLIYAAAAAAAAACCSxQAAAAAAAAAAkSwGAAAAAAAAAIhkMQAAAAAAAABAJIsBAAAAAAAAACJZDAAAAAAAAAAQyWIAAAAAAAAAgCRPdwcAAEB55RdYdMvM2g7rAAAAAADg7JAsBgBUOIYs+uuEr7vDAAAAAADgX4VpKAAAAACcV+vWrVPjxo2Vmppa7L6UlBQ1adJEmzZtckNkAAAAsEeyGAAAAMB5NXXqVA0dOlTBwcHF7gsJCdGwYcP08ssvuyEyAAAA2CNZDAAAAOC82rFjh66//nqX93fp0kXbtm27gBEBAADAGeYsBgBUOF4eNq17bK+53vGV+sor4O+fAHCxSkxMlJeXl8v7PTw8dPLkyQsYEQAAAJzhmzUAoEIK9LGZCwDg4hYTE6Off/7Z5f0///yzYmJiLmBEAAAAcIZkMQAAAIDzqnfv3vq///s/ZWVlFbsvMzNTTz/9tHr37n3hAwMAAIADpqEAAAAAcF6NGTNGn332merXr68RI0aoYcOGkqQ9e/bojTfeUEBAgMaMGePmKAEAAECyGAAAAMB5FRoaqu+++05PPvmkJk2apJSUFElSSEiI+vbtq+eff16hoaHuDRIAAAAkiwEAAACcf5UqVdKsWbM0c+ZMnThxQpIUGRkpi8Xi5sgAAABQhGQxAAAAgAvGYrEoKirK3WEAAADACZLFAAAAAM6rWrVqOR1BHBISovr16+uxxx5T69at3RAZAAAA7JEsBgAAAHBePf74407Lk5OTtW3bNrVr105ffPGFrrvuugscGQAAAOyRLAbOkW1fTVN0dLS7wwD+E4yCXB37pK25fmDbbFk8vN0YEQCgJA888ECJ90+aNEkTJkwgWQwAAOBmVncHAAAAAOC/7aabbtKvv/7q7jAAAAD+8xhZDACoeCweCrligsM6AKDiysvLk6cnX00AAADcjTMyAECFY7F6yK/mDe4OAwBwjsybN0/Nmzd3dxgAAAD/eSSLAQAAAJxX//vf/5yWp6SkaOvWrfr111+1cePGCxwVAAAATkeyGAAAAMB59eOPPzotDw4O1rXXXquPP/5YtWvXvsBRAQAA4HQkiwEAAACcV+vXr3d3CAAAACgDq7sDAACgvIyCPJ1cN8xcjII8d4cEADhDubm5+uijj9S1a1d3hwIAAPCfx8hiAEAFZCjvxDaHdQBAxbJ9+3bNmTNHH3zwgfLy8nTjjTe6OyQAAID/PJLFAAAAAC6IpKQkLViwQHPnztXvv/+u7OxszZo1S4MGDZK3t7e7wwMAAPjPYxoKAAAAAOfV6tWr1bdvX0VHR2vFihV69NFHdfToUVmtVrVp04ZEMQAAwEWCkcUAAAAAzqvu3bvr8ccf1/79+xUVFeXucAAAAOACI4sBAAAAnFcDBgzQjBkzdMcdd+jdd99VRkaGu0MCAACAEySLAQAAAJxX8+fP16FDh3Trrbdq5syZqly5svr16ydJMowzv0hpcnKy+vbtq6CgIFWrVk3Tpk1zWm/hwoUKDAw0l4CAAFksFi1evPiMHxsAAODfiGQxAAAAgPMuMDBQQ4cO1bfffqsff/xRsbGxioiIULt27TRo0CAtW7as3G2OGDFCOTk5OnTokFavXq3nn39eK1euLFZvwIABSk9PN5dPPvlEwcHBuv7668/FrgEAAPxrkCwGAAAAcEE1atRIL730khISEjRv3jylpKTo1ltvLVcbGRkZWrRokSZOnKjg4GA1a9ZMQ4cO1Zw5c0rdds6cObrtttvk7+9/prsAAADwr8QF7gAAAAC4hYeHh3r16qVevXrp+PHj5dp27969stlsatq0qVnWokWLUqeWOHnypJYtW6YNGzaUWC81NVWpqanm+pEjR8oVHwAAQEVEshgAAACA20VFRZWrfnp6ukJCQhzKQkNDlZaWVuJ2CxcuVJ06dXTVVVeVWG/KlCmaMGFCuWICAACo6EgWAwAqHotV/vVvd1gHAPy3BAYGOoz8laSUlBQFBQWVuN3cuXM1ePDgUtsfOXKk7rnnHnP9yJEjat269ZkFCwAAUEGQLAYAVDgWq6eCL33U3WEAANyofv36slgs2r17t5o0aSJJ2rFjh8O0FKfbvn27du3apYEDB5bafnBwsIKDg89ZvAAAABUBQ7EAAAAAVDgBAQHq06ePxo4dq7S0NO3atUvvvPOOhgwZ4nKbuXPnqlu3bqpSpcoFjBQAAKDiIFkMAAAA4IKoXbu2Tp48Waw8OTlZtWvXLnd7b775pry8vFS1alV17txZo0ePVrdu3SQVTlOxefNms25ubq7ef//9EpPJAAAA/3VMQwEAAADggoiLi1NBQUGx8pycHB06dKjc7YWGhmrRokVO70tPT3dY9/b2VmJiYrkfAwAA4L+EZDEAoMIxbPlK2/m6uR7U/EFZrHykAcDF6osvvjBvf/XVVwoJCTHXCwoKtHbtWtWsWdMNkQEAAMAe36wBABWPYVPm3vfN1aBLHnBjMACA0vTo0UOSZLFYNGDAAIf7vLy8VLNmTb3yyivuCA0AAAB2SBYDAAAAOK9sNpskqVatWvrxxx8VERHh5ogAAADgDMliAAAAABfE/v373R0CAAAASmB1dwAAAAAA/hvefPNNLVmyxFy/99575ePjo6ZNm+r33393Y2QAAACQSBYDAAAAuECmTp2q8PBwSdL69ev10Ucf6b333tMll1yiRx991M3RAQAAgGkoAAAAAFwQhw4dUq1atSRJy5Yt06233qq+ffvqkksuUZs2bdwcHQAAABhZDAAAAOCCCA0NVUJCgiRp5cqV6ty5syTJarUqPz/fnaEBAABAjCwGAAAAcIHcfPPN6t+/v+rVq6fjx4+rW7dukqQdO3aoTp06bo4OAAAAJIsBAAAAXBDTpk1TrVq1FB8fr0mTJik4OFiSdPjwYd1///1ujg4AAAAki4FzpOOH78irUqi7wwD+E7xUoFUB/6xfOv915cnDfQEB/1G7hzzi7hBQwXh5eenxxx8vVv7II49c+GAAAABQDHMWAwAqHEPSjoIoczHcHRAAoMyWL1+uHj16qHHjxoqPj5ckzZo1S19++aWbIwMAAADJYgBAhZMvDz2W3dlc8hlVDAAVwrx58zRw4EA1a9ZM+/fvV15enqTCC9y99NJLbo4OAAAAJIsBAAAAXBAvv/yy3nnnHb3wwgvy9PxnRrwrr7xSO3fudGNkAAAAkEgWAwAAALhA/vzzT7Vq1apYua+vr9LS0twQEQAAAOyRLAYAAABwQdSoUUM///xzsfI1a9aoYcOGbogIAAAA9jxLrwIAwMXFKps6ehww19cV1JCNv38CwEXrmWee0eOPP67HHntMDzzwgHJzc2UYhrZt26ZFixZp4sSJmjFjhrvDBAAA+M8jWQwAqHA8ZOhJ32/N9Y0ZsbK5MR4AQMkmTJig4cOHa+jQofL399fo0aOVmZmpvn37qmrVqpo8ebIGDBjg7jABAAD+80gWAwAAADivDMMwbw8YMEADBgxQZmam0tPTFRUV5cbIAAAAYI9kMQAAAIDzzmKxOKz7+/vL39/fTdEAAADAGZLFAAAAAM67yy+/XB4eHiXW+euvvy5QNAAAAHCGZDEAAACA8+6+++5TUFCQu8MAAABACUgWAwAAADjvhgwZwvzEAAAAFzmruwMAAAAA8O92+nzFAAAAuDiRLAYAAABwXhmG4e4QAAAAUAZMQwEAAADgvLLZbO4O4ZzJTz+k/DTn+2P1DpHVJ+SfuhmHJVu+y7Ysnv7y8Isw1wsyj8soyHZd38NbHv5VzHVbdpJseWmug7VY5RkY/U/93DTZcpJc15fkEVBdFmvhhQiN/GwVZB0vub5/ZVk8fArr2/JVkHG4xPpW30qyegWa6/lpB0uu7x0sq0+ouV6QcUSGLc9l/WJ9mnVCRn6W6/pWb3kElLFPbQXSaYPkbbnpsuWcKnEfPAKqyWIt/Opdpj71i5LF07ew/hn1abwk13+gOfs+TZSRn+m6vtVLHgFVzXVbTrJsuakl7IFFnkEx/9TPS5ct28196lNJVm+7Pk1PkAzX72NWryBZfcPM9YKMozJsuS7rWzz95OEX+U/9c96nkmdQ7D/1y9unBTkqyDxWcn2HPi1QQcahEutbfcJk9f5n3vpy92nmURkFJfSph688/P+Z6qi0PpXVU54B1cxVW06KbLkpJe6DY59myJZ9ssT6Hv5VZfHwkiQZBbkqyDxaYn2rX6Ssnn6F9Q2bCtITSq7vEyqrd7C5XlqfWrwC5eFbyVwvyDwmoyDHdX0PH3n4V/6nfvZJGXkZrgOyeMgzsLq5astNlS0nucR98AiMMX99ZMvLlC07seT6/lVk8fCWVMY+9Y2Q1cu/sL5hqCA9vuT6xfr0kGQUuKxv8QqQh2+4uV7+Pj0lIy/ddUDFPsfL0qfRslgKxwbb8rNkyzohyfH4LQ3JYgAAAAAoo1Pr7pVvuLfT+wKb3afAxkPM9aQNI0r8Yupbs7tCrxhvrqf+9Lxyjnzjsr5X+CUKv262uZ7+6xxl7vvQZX2LT6gq9/7SXM86sFJp2ya7rC9JUTetk+XvhE5u4k4lbRxRYv3w6+bJK7yJJKkg67gSv7ilxPohVzwjv5rdzPXElX1L/CIe0GSogprea64nbXpY+an7Xdb3je2q0KueM9dTt76onEMbXdb3DGukiC7vmuvpv72rzN8XOK1ry71FOm1Klez4L5X60/Mu25ekqF5rZPk76ZV7areS1g8vsX6lju/IO7J54WNmnyq1T4NbPy3/Wjea6ydX317iHx0CGg1W0CX3m+tJXz+m/OR9Luv7RHdSWNtJ5nrqtpeVk/CVy/qeofUU0fV9cz3j9/eVsWeuy/oWD19V7rPZXM9OWK/ULc+4rC9JkTd+biYG85J+16l195RYP+zamfKJukySZOSmld6nl4+Rf52bzPWTawaWmNDxb3CHgls8bK4nffM/5SftcVnfp/o1Cmv3srmetmOasg+udlnfM7iWIrp9bK5n7PtYGbvfdr0DFg9V6fu9uZpzaLNSfnjadX1JET0+M5On+cl/6OTau0qsH3bNG/KpcoUkycjPLLVPg1qOUkC9vub6ybWDZZSQ9PKv10/BLR8z15O/Hau8kz+7rO9Tta3C2k8z19N+fkPZcZ+7rO8RGKPI7ovN9cw/P1X6LzNK3Icqt/1o3s49+p2Sv32yxPoRN3xqJujyU/fr5Jo7SqwfevVU+VZrJ6kwYV9qn7Z4VAENbjfXT62710wMOuNft4+CL3vCXE/+/mnlndjmsr535daq1OFNcz39lxnK+uszl/Wt/lUVdeMycz3rr8+UtvO1Eveh8q3fSZbC1GTusS1K/mZUifXDr/9QXiF1JEn56fE6uapfifVD206Wb3SHwhWjoPQ+bf6QAhoONNdPrb9PtswjLuv71e6lkFZPmespW55R7rEtLut7RbZUeMdZ5nrG7reV+ccnLutb/SIV1fMLcz1r/wql7Zha4j5E3bJJlr//6JB7fKuSNz8qyfH4LQ3JYgBAhZRh8BEGAAAAAMC5ZDGYQAw4KwkJCYqJiVG9yePkVSnU3eEAAHDB7B7yiLtDAC6YonO+/Xu+V3T1qk7rMA3Fv3saig6frZAs0tcD/hmVyzQUTuozDQXTUDjBNBRMQ+EM01BcnNNQkCwGzhLJYgDAfxXJYvyXFJ3zxcfHKzo6uvQN8K/T7v3Cnw5/ffswN0cCAMD5Y3V3AAAAAAAAAAAA9yNZDAAAAAAAAADgAncAgIrHIkOxln/mFDtohMiQpYQtAAAAAABAaUgWAwAqHE/ZNMf/c3P9+ox+ypOHGyMCAAAAAKDiYxoKAAAAAAAAAADJYgAAAAAAAAAAyWIAAAAAAAAAgEgWAwAAAAAAAABEshgAAAAAAAAAIJLFAAAAAAAAAACRLAYAAAAAAAAAiGQxAAAAAAAAAEAkiwEAAAAAAAAAIlkMAAAAAAAAABDJYgBABZQnqwZm9jSXPD7OAOA/KTk5WX379lVQUJCqVaumadOmuaybnZ2thx9+WFFRUQoODtZll12mtLS0CxcsAABABeDp7gAAACg/iw4bQe4OAgDgZiNGjFBOTo4OHTqkAwcOqFOnTmrQoIG6detWrO7w4cOVkZGhX375RZGRkfrll1/k7e3thqgBAAAuXiSLAQAAAFQ4GRkZWrRokbZu3arg4GA1a9ZMQ4cO1Zw5c4oli3///Xd9+umnio+PV2hoqCSpefPmbogaAADg4sbvdgEAAABUOHv37pXNZlPTpk3NshYtWmjXrl3F6m7ZskU1a9bUs88+q8jISDVq1EizZ88usf3U1FQlJCSYy5EjR875PgAAAFxsGFkMAAAAoMJJT09XSEiIQ1loaKjTeYjj4+O1a9cu9ezZUwkJCfr555/VuXNn1a1bV9dcc43T9qdMmaIJEyacl9gBAAAuVowsBgBUOF4q0Er/D8zFSwXuDgkAcIEFBgYqNTXVoSwlJUVBQcXntPf395eHh4fGjRsnHx8ftWrVSrfeeqtWrFjhsv2RI0cqPj7eXLZs2XLO9wEAAOBiw8hiAECF5G2xuTsEAIAb1a9fXxaLRbt371aTJk0kSTt27HCYlqLIJZdcUu72g4ODFRwcfNZxAgAAVCSMLAYAAABQ4QQEBKhPnz4aO3as0tLStGvXLr3zzjsaMmRIsbrt27dX7dq1NXHiROXn52v79u365JNPdOONN7ohcgAAgIsXyWIAAAAAFdKbb74pLy8vVa1aVZ07d9bo0aPVrVs3SYXTVGzevFmS5OnpqWXLlmndunUKCQlR3759NWXKFLVv396d4QMAAFx0mIYCAAAAQIUUGhqqRYsWOb0vPT3dYb1hw4Zm8hgAAADOMbIYAAAAAAAAAECyGAAAAAAAAABAshgAAAAAAAAAIJLFAAAAAAAAAACRLAYAAAAAAAAAiGQxAAAAAAAAAECSp7sDAACgvApk0YTsdg7rAAAAAADg7JAsBgBUODZZtamghrvDAAAAAADgX4VpKAAAAAAAAAAAJIsBAAAAAAAAACSLAQAAAAAAAABizmIAQAXkqQJN9V1rrj+afZ3y5eHGiAAAAAAAqPhIFgMAKhyLpMYeiQ7rAAAAAADg7DANBQAAAAAAAACAZDEAAAAAAAAAgGQxAAAAAAAAAEAkiwEAAAAAAAAAusDJ4nnz5unKK6+8kA95RsaPH69+/fq5OwwAAAAAAAAAuGDKnSzu0KGDfH19FRgYqPDwcF1//fXau3fv+YitQjo9IW7fX0FBQbr88su1ceNG8/4NGzbIYrGoc+fODu2cOHFC3t7eqlKlisvHsm+7aFm6dOk536eKpqL8UQIAAAAAAAC4mJzRyOJp06YpPT1d8fHxioyM1JAhQ851XGctPz/f3SGYivorJSVFw4YN00033eQQX6VKlfTzzz8rISHBLFu4cKFq165d5raLlt69e5+PXSiVs/4u73NQlvoX0/MKAAAAAAAA/Juc1TQU/v7+6tevn7Zv326WHT16VLfddpsqV66smJgYjR8/XjabzWG7sWPHKjw8XNWrV9fChQvN8tzcXI0ZM0a1atVSRESEbr/9diUlJZn39+/fX1WrVlVISIiuvvpq/fLLL+Z9d911l4YPH66bbrpJgYGBWrRokX766SddccUVCg4OVmRkpAYMGGDWHzlypGJjYxUUFKSWLVs6jPY9X6xWqwYMGKCkpCQdPnzYLPfy8tJtt92md9991yybN2+e7rzzzjN6HMMwNGXKFNWvX1+VKlXSDTfcYCaip0yZ4jAS2dvbWx06dHDaTmpqqoYPH67o6GhVqVJFI0aMUHZ2tqTCEdFVqlTRtGnTVL16dfXo0cMc0fvEE08oKipKDzzwgHJzczVq1ChFR0ercuXKuuuuu5SSkmI+hsVi0fTp09WwYUOFhoY6jcNZncmTJ6tu3boKCgpSo0aN9Omnn0qSfvnlFw0fPlw//vijuY8ZGRkl9olhGBo1apQqV66s4OBgNWzYUBs2bDijvgcAAAAAAAAqqrNKFqelpWnhwoWqW7euJMlms6lnz56qW7euDhw4oB9++EGfffaZZs+ebW6zdetWValSRceOHdPrr7+uYcOGKTU1VZL05JNPatu2bfrhhx8UHx8vb29vjRgxwty2S5cu+v3333X8+HG1bt1a/fv3d4hnwYIFeuihh5SWlqbevXvrwQcfVM+ePZWcnKz4+Hjdf//9Zt3LLrtM27ZtU1JSkgYNGqRbb71VmZmZZ9MdpSooKND8+fMVGxuratWqOdx31113af78+ZKkHTt2KDs7W1ddddUZPc4bb7yhhQsXas2aNTp27JhatmxpzsE8cuRIcxTygQMHFBMT45BEtzd48GBlZ2fr119/1W+//aZ9+/bp2WefNe9PTEzU/v379eeff2rJkiWSpJ9++kkRERE6dOiQpk2bpueff15fffWVtmzZor179+rUqVMOz4Mkffzxx9q0aZNOnDjhcp9Or1OrVi1t3LhRKSkpevbZZzVw4EAlJCSoWbNmmjlzplq1amXuZ0BAQIl9smbNGn344YfasWOHUlNTtXLlSsXGxrqMJTU1VQkJCeZy5MiRMjwrAAAAAAAAwMXtjJLFI0eOVEhIiIKDg7VlyxYtWLBAUmGiMD4+Xs8995x8fX1VrVo1jRw5Uh988IG5bfXq1fXggw/K09NTN998s6xWq/bu3SvDMDRz5kxNnTpVUVFR8vPz07PPPqtFixapoKBAUmHyMjg4WD4+Pnr66ae1e/dunTx50my7R48euvbaa2WxWOTn5ydvb28dOHBAhw8flq+vr9q2bWvWHTBggCIiIuTp6alHHnlEeXl52rNnT6n7fvDgQQUGBurgwYPl6q/Q0FAFBATo0Ucf1QsvvCBPT0+HOi1btpSPj4++//77co0qLmo7NDRU0dHRkqQZM2boueeeU82aNeXl5aXx48frxx9/dIg5Ly9Pt9xyi2688UYNHTq0WLvHjx/XsmXL9Prrrys4OFihoaF66qmnHJ5LwzD0wgsvyNfXV35+fpKkqKgoPf744/Ly8pKfn58WLFigcePGqVq1agoJCdFLL72kjz76SLm5uWY7o0ePNp9zV06v06dPH1WvXl1Wq1V9+vRRgwYN9MMPP7jcvqQ+8fb2VnZ2tnbv3q28vDzVqlWrxClApkyZopiYGHNp3bq1y7oAzo8CWfR+bmNzKZDF3SEBAAAAAFDhnVGyeMqUKUpJSdG+fftktVq1b98+SVJcXJxOnDihsLAwM4H5wAMP6NixY+a2p1+wzd/fX+np6Tpx4oQyMzN11VVXmds2a9ZMVqtVR48eVUFBgUaPHq06deooODhYNWrUkFQ4urVIUVmROXPmKDMzUy1btlSTJk00Z84c876XX35ZjRo1UkhIiEJDQ5WSkuLQliuxsbFKT08vceSps/5KTk5WVlaWfvjhBz3++ONavXp1sXp33XWX3n77bX300UcaNGhQudpOTk42p1WIi4vTbbfdZvZjRESErFarw5zI999/v/z8/PTKK684bTcuLk4FBQWKiYkx2+nRo4eOHz9u1omIiJC/v7/DdjExMbJY/knaHDp0SDVr1jTXa9asqYKCAh09etQsO/15c+b0Ou+++65atGhhxvbLL7+U+PyV1CfXXnutJkyYoDFjxigyMlL9+vVzmCbkdCNHjlR8fLy5bNmypdT4AZxbNlk1O+9Sc7Gd3Q9lAAAAAACAJM/Sq7hWt25dvfrqq7r77rvVrVs3xcbGKjo6WnFxceVuKyIiQn5+ftqxY4dDcrHIe++9p8WLF+vLL79UrVq1lJqaqtDQUBmGYdaxT1JKUp06dbRgwQIZhqGNGzeqS5cuat++vY4cOaIXXnhB69evV9OmTWW1WhUWFubQ1vlgsVjUvHlztW3bVitWrFDXrl0d7r/jjjsUExOjDh06qHr16mYSvrxiY2M1c+ZMl3MRT506Vd98842+++47eXh4uGzD09NTx48fl7e3t8v9Ka2sevXqiouLU/PmzSUVJm2tVqvDHw2ctVNSuwcOHNA999yjtWvXqm3btvLw8NCll15qPn/O2iutT+6//37df//9SkpK0tChQ/XEE0/ovffec1o3ODhYwcHBpcYMAAAAAAAAVCRnPRSrW7duqly5smbNmqVWrVopMjJSzz77rDIyMmSz2bRv374yXTzOarVq2LBhevTRR805YI8fP67PPvtMUuH8yD4+PgoPD1dWVpaeeuqpUtt89913dfz4cVksFoWGhspiscjDw0NpaWny9PRURESE8vPzNXHiRHPe5PPt119/1ebNm9W0adNi90VFRWnjxo2aOXPmWT3Gfffdp7Fjx+rPP/+UJCUlJenjjz+WJK1atUqTJk3S8uXLFRIS4rKNKlWqqHv37nr44YeVlJQkwzAUHx+vVatWlSuWAQMG6Nlnn9WRI0eUmpqq0aNH67bbbnOZgC6LjIwMSVJkZKSkwud5165d5v2VK1fWoUOHlJOTY5aV1Cc//vijvvvuO+Xm5srf31/+/v4uk+gAAAAAAADAv9U5+d3uE088oRdffFG5ublavny59u3bp3r16iksLEx9+/Yt8wXAJk2apObNm+vqq69WUFCQ2rRpY/7Ef9CgQapdu7aqV6+uRo0aqVWrVqW29+WXX6pZs2YKDAzUrbfequnTp6tWrVrq2rWrunfvroYNG6pGjRry8vJSTEzMWfVBSR555BEFBgYqMDBQN9xwg4YOHep0nmBJuvLKK1WrVq2zerwHH3xQ/fr1U48ePRQcHKzmzZub0158+OGHOnXqlJo3b27G1K1bN6ftzJ8/X15eXmrRooVCQkLUtWtX7d27t1yxjBkzRtdcc40uv/xy1a1bV8HBwZo+ffpZ7V/jxo01atQotW3bVpUrV9aOHTvUpk0b8/6OHTuqRYsWqlq1qkJDQ5WRkVFin6Smpmr48OEKDw9XtWrVlJKSokmTJp1VjAAAAAAAAEBFYzHO99wLwL9cQkKCYmJiVG/yOHlVCnV3OMB/godsesD7J3P9zdzLVcC8xcAFt3vII+4OAbhgis754uPjzQtL47+l3fuzJElf3z7MzZEAAHD+nNWcxQAAuINVhnp5/TOv+4zcy1TgxngAAAAAAPg3YBgWAAAAAAAAAIBkMQAAAAAAAACAZDEAAAAAAAAAQCSLAQAAAAAAAAAiWQwAAAAAAAAAEMliAAAAAAAAAIBIFgMAAAAAAAAARLIYAAAAAAAAACCSxQAAAAAAAAAASZ7uDgAAgPIyJP2YX9VhHQAAAAAAnB2SxQCACidfHhqd09HdYQAAAAAA8K/CNBQAAAAAAADABdatWzfNnj3b3WFo5syZ6tChg9P74uLiZLFYlJ2dfWGDcqJDhw6aOXPmeWl7w4YNqlKlynlp+1yaN2+errzyyvP6GIwsBgAAAAAAQIWVmZWn5V/t1bK1e3UyOUvhoX7qeV193dipvvz9vNwdnksrV6486zbi4uJUq1YtZWVlydfX9xxEhf86ksUAAAAAAACokP6KT9LgUct09ESGLBbJMKS4hGT99MsRTV/wk+ZO7qnaMWEXPK78/Hx5epJ2K2Kz2WSxWGSxWNzy+BfT83ExxeIM01AAACocq2y6wfMPc7HK5u6QAAAAAFxgmVl5GjxqmY4nZkoqTBTb/388MVODRy1TZlbeOXm8mjVr6oUXXlCzZs0UEhKiW265RcnJyZL+ma5h3rx5qlWrli655BJJ0vz589WwYUOFhoaqY8eO+u2338z2Tp9WYcGCBWratKlCQ0N19dVXa/fu3eZ9hw8fVr9+/VS5cmWFhYWpd+/ekqQ2bdpIkiIiIhQYGKhVq1ZJklavXq3LL79coaGhatmypTZv3my2dfDgQXXq1ElBQUFq27atDhw4UOY+WLt2rWJiYsz2Soq5Zs2aeumll3TZZZfJ399fR48elcVi0VtvvaWGDRsqJCREd9xxh3Jzc81tSoq7PO666y4NHz5cN910kwIDA7Vo0SKlpqZq+PDhio6OVpUqVTRixIhi02u8/vrrqlq1qqKiojR58mSz3DAMTZkyRfXr11elSpV0ww03KCEhwbx/5MiRio2NVVBQkFq2bKmNGzea940fP14333yzhgwZotDQUE2ePFl//fWXOnbsqJCQEIWHh6t9+/Zm/cmTJ6tu3boKCgpSo0aN9Omnn55RH5wpksUAgArHQ4Ye8/nBXDxkuDskAIAbJCcnq2/fvgoKClK1atU0bdo0l3UtFosCAgIUGBiowMBAdevW7cIFCgAoN8MwlJtbUOKyZPVvOnoiQzbD+fcBm2Ho6IkMLV3ze6ltGS7aON28efP02WefKSEhQTk5OXrooYcc7l+1apV27typrVu3asOGDXrkkUc0b948HT9+XJ06dVL37t2Vk5NTrN3ly5frqaee0gcffKCTJ0/qjjvu0I033qjc3FwVFBToxhtvVKVKlbRv3z4dP35cjz76qCTp22+/lSQlJiYqPT1d119/vXbu3Knbb79d06ZN06lTp/TMM8+od+/eSkxMlCT1799fDRo00IkTJ/Taa6+Ved7kjz/+WEOGDNHy5ct19dVXlxhzkXfffVeLFi1SWlqaIiMjJUmffPKJvvnmG+3bt0/fffedFixYIEmlxl1eCxYs0EMPPaS0tDT17t1bgwcPVnZ2tn799Vf99ttv2rdvn5599lmzfmJiouLj43XgwAGtWLFCY8eO1R9//CFJeuONN7Rw4UKtWbNGx44dU8uWLdWvXz9z28suu0zbtm1TUlKSBg0apFtvvVWZmZnm/cuXL1eXLl106tQpPfLIIxo7dqzq16+vxMREHT16VBMnTjTr1qpVSxs3blRKSoqeffZZDRw40CExfb5dvGOeAQAAAKAEI0aMUE5Ojg4dOqQDBw6oU6dOatCggctE8NatW9WwYcMLHCUA4Ezk5dnUrNusc9LWhNc2acJrm0qs88vKYfL29ii1rREjRqh27dqSpIkTJ6p169aaN2+eef/48eMVHBwsqTBZedddd5kXJHvyySf15ptv6uuvv1anTp0c2p0xY4aeeOIJNWvWTJI0bNgwvfTSS/r+++/l7e2t/fv367vvvpO3t7ck6ZprrnEZ46xZs3TPPfeoXbt2kqQePXqoRYsW+uKLL9ShQwd99913+uKLL+Tr66vLLrtMAwYM0Pbt20vc7+nTp2v69Olat26d6tatW2rMRSNl7furyJgxYxQeHi5J6t69u7Zt26YhQ4aUGPegQYNKjM+ZHj166Nprr5UkpaWladmyZTp16pSCgoIkSU899ZTuvPNOM1FrtVr13HPPydvbW61bt1bDhg21Y8cO1a1bVzNmzNArr7yimjVrSip8ngMCAnTw4EHFxsZqwIAB5uM+8sgjmjBhgvbs2aPLLrtMUmEyuSi57OfnJ29vbx05ckQHDhxQ3bp1dfXVV5vb9+nTx+H2xIkT9cMPPyg6OrrcfXAmGFkMAAAAoMLJyMjQokWLNHHiRAUHB6tZs2YaOnSo5syZ4+7QAAD/YrGxsebtGjVqKDc3VydOnHAoK3Lo0CEzuSgVJiNjY2N16NChYu3GxcVp1KhRCg0NNZcjR47o0KFDZkKyKFFcmri4OL3++usObX3//fc6fPiwDh8+rJCQEIWEhDiN2ZUXX3xR99xzj5koLi3mktquUqWKedvf31/p6emlxn0m7B87Li5OBQUFiomJMdvu0aOHjh8/btapVKmSQx+fHtttt91mbhsRESGr1WqO+H355ZfVqFEjhYSEKDQ0VCkpKQ4jok/vh8mTJ6tatWq69tprVbt2bU2aNMm8791331WLFi3Mx/rll1/OeHT1mWBkMQAAAIAKZ+/evbLZbGratKlZ1qJFCy1evNjlNh07dlRBQYEuv/xyvfTSS2rSpInLuqmpqUpNTTXXjxw5cm4CBwBUaAcPHnS47eXlpcjISLPc/gJu1atXV1xcnLlus9kUHx+v6tWrF2s3NjZW//vf/3TXXXcVu+/777/XwYMHlZeXJy8vL4f7nF0wrqit8ePHO40/JSVFqamp5gho+31yZc2aNerevbsiIyN19913lxpzSfG5UlLcZ8L+sWNjY+Xp6anjx4+XOel+emwzZ85Uhw4dit23efNmvfDCC1q/fr2aNm0qq9WqsLAwh6lNTu+HqKgozZgxQzNmzNCOHTvUqVMntWrVSnXr1tU999yjtWvXqm3btvLw8NCll15a5mlSzgVGFgMAAACocNLT0x1GRUlSaGio0tLSnNbfsGGD4uLi9Mcff+jSSy9Vly5dHJLBp5syZYpiYmLMpXXr1uc0fgBAyby8rPpl5bASl6cfvLr0hiSNe6h9qW15eZUtRTZ9+nTt379faWlpeuqpp3TbbbfJanW+7YABAzRv3jxt2bJFeXl5evHFF+Xt7W1Os2Dvvvvu06RJk7Rz504ZhqH09HQtX75caWlpatWqlWrUqKGRI0cqLS1NeXl55gXUIiMjZbVa9eeff5pt3XvvvXrrrbf09ddfy2azKSsrS+vXr1dCQoJiY2N15ZVXasyYMcrJydH27du1cOHCUve7QYMG+uqrr/T000+bv+IpKeYzUVLcpyu6oKB9Mr4kVapUUffu3fXwww8rKSlJhmEoPj7evCBgae677z6NHTvW7OekpCR9/PHHkgqnuPD09FRERITy8/M1ceLEEs8xpML5n+Pj4yUVnr94eHjIw8NDGRkZkmTO7/zuu+9q165dZYrxXCFZDAAAAKDCCQwMLPZFLCUlxZyH8HTXXHONvL29FRQUpOeee06enp7mRYGcGTlypOLj481ly5Yt5zR+AEDJLBaLvL09Slxu6tpQVSIDZHUxetVqsahKZIB6d2lQaltlHQE7aNAg9ezZU9HR0fLw8NCrr77qsu61116rV155RQMHDlRkZKTWrFmjzz//XD4+PsXq9urVS+PGjdOdd96p0NBQ1atXT++9954kycPDQ8uXL9eRI0dUu3ZtVa5cWa+99pqkwqkSnnrqKV177bUKDQ3V6tWr1bJlS82fP1+jRo1SeHi4atSooVdeeUU2m02S9P7772v37t2KiIjQiBEjNGTIkDLte1HC+P/+7/80Z86cEmM+E6XFbS8+Pl41atRwOkrblfnz58vLy0stWrRQSEiIunbtqr1795Zp2wcffFD9+vVTjx49FBwcrObNm2v16tWSpK5du6p79+5q2LChatSoIS8vL8XExJTY3tatW3XVVVcpICBA7du31yOPPKIOHTqocePGGjVqlNq2bavKlStrx44datOmTZn38VywGBdyHDPwL5SQkKCYmJj/b+/Ow6Kq/j+Av4dxWAcYEGQTRAURVxQT0RRyKRHcjdy3wjIt99T0q1aiaZpWZlYKGK655JaoX78FKeYuKgq4sQsqCLKvc39/+PPmxC7LCL5fzzOPzLnnnvO5Z8Z5Lh/OnAP7r5ZCZqxQdzhErwQZinFMb5f4vH/2SBSi4s0oiKhm3Zg8U90h0CssOzsbxsbGuHz5sricxOLFixEVFYU9e/ZUeH7z5s2xcePGMjfD+7dn93zx8fF1tsEMvVxe3/F0o63To99XcyRE9Lx78WmYNO8Qkh9lQyIBBAHiv+amevD/ahBaWBvVSF+2trbYtGkT+vfvXyPt9ezZE5MmTap0spb+sXz5cpiamuL99/mZXNO4ZjEREREREdU7enp6GDFiBBYtWoTAwEDExsZi8+bN8Pf3L1H3xo0byM/PR4cOHVBQUIDVq1cjNzcXrq6uaoiciIhqUgtrIwT5j8aRP27j0MkopKTlwsRIB4P6OsCrtz10dWQVN6IG2dnZuHfvHpo3b67uUOqlxYsXqzuEBovJYiIiIiIiqpe+//57+Pj4wMLCAvr6+liwYIE4U1gulyMoKAg9e/bEw4cPMXXqVMTHx0NHRwddunTB8ePHoVAo1HsBRERUI3R1ZPD2bANvzzbqDqVS4uLi0K5dO3h5ecHNzU3d4RCpYLKYiIiIiIjqJYVCUeaSE1lZWeLPb7zxBiIjI+sqLCIiaqAqu5laRWxsbCrcAI1IXZgsJiKieildKLkpBBERERERERG9OCaLiYio3imEFMNzRqg7DCIiIiIiIqIGRUPdARARERERERERERGR+jFZTERERERERERERERMFhMRERERERERERERk8VERFQPSSDAXuOx+JBAUHdIREREREREpfrggw+wdOnSarURHBwMc3PzGoqIqGzc4I6IiOqdRlBik06Q+Lx/9kgUQqrGiIiIiIiIiEq3adMmdYdAVGmcWUxERERERERERERETBYTERERERERERFVxNbWFmvXroWzszMMDAwwYMAApKWlAQCCgoLQsWNHGBoawsXFBX///bd43sSJE7FgwQIAQGpqKgYPHgwjIyMYGRnBxcUFKSkpAICMjAx88MEHaNq0KczNzTF9+nTk5eWVGktycjLeeecdmJmZwdraGsuWLYNSqQQA3Lt3D71794ahoSEaN26MXr16ieetWbMG1tbW0NfXR4sWLbBr165aGSuqv5gsJiIiIiIiIiKil9K92GTci01GTk6+SnlM3APci01GZlauSnl84iPci01G+pNslfLEpFTci03G4/SsasWzbds2/Pbbb7h//z7S09Oxbt063L59G8OHD8eKFSuQmpqKadOmwcPDQ0wCP2/NmjVQKpVITExESkoKNm7cCG1tbQDApEmTkJeXh5s3byIyMhK3b9/GF198UaINpVKJQYMGwc7ODrGxsTh37hwOHjyILVu2AAAWLVqEVq1aISUlBcnJyfD19QUAREVFYcmSJTh58iQyMzMRGhqKDh06VGs8qOFhspiIiIiIiIiIiF5KPTzno4fnfJy5EKFSPmDUZ+jhOR/H/risUv6Oz1fo4Tkfvx46rVI+Zc736OE5Hz8HHq9WPDNmzICNjQ3kcjlGjBiBy5cvY/fu3Xjrrbfg6emJRo0aYfz48WjdujUOHjxY4nxNTU2kpqbizp07kEqlcHZ2hlwux8OHD3Ho0CF89913MDAwgEKhwOLFi7Fz584SbVy8eBHx8fFYvnw5tLW1YWlpidmzZ4t1NTU1kZSUhNjYWMhkMvTs2RMA0KhRIwiCgPDwcOTm5sLCwgJt2rSp1nhQw8NkMRERERERERERUSWYm5uLP+vq6iIrKwuJiYmwtbVVqWdra4vExMQS58+bNw+vv/46hg8fDktLS3zyyScoLCxETEwMiouLYW1tDYVCAYVCAS8vLzx8+LBEGzExMXj06BGMjIzEutOmTcODBw8AAF999RUsLS3xxhtvoEWLFvjyyy8BAC1btsTWrVvx7bffwszMDJ6enoiMjKzB0aGGoJG6AyAiIiIiIiIiIipN6O+rAADmpkYq5Ud3LoVSEGDa2FClfPfP81BYVAxjhb5K+U9rpyG/oBAKQ3mNx2hlZYVLly6plMXExKBfv34l6srlcqxevRqrV6/G3bt34eHhAQcHB3FW8sOHD6GpqVlufzY2NmjatCliYmJKPd6kSRP88MMP+OGHHxAWFoY+ffrgtddeQ58+feDt7Q1vb2/k5ORgwYIF8PHxwalTp1742qnh4cxiIiIiIiIiIiJ6KbVoZo4Wzcyhq6ulUm5rY4YWzcyhL9dRKbe2MkWLZuZQGOqplFtZNEaLZuYwVtR8stjb2xvHjx9HUFAQioqKsG3bNkRGRmLw4MEl6h45cgS3bt2CUqmEgYEBZDIZpFIpzM3N4enpiRkzZiAtLQ2CICA+Ph7Hjh0r0cZrr70GU1NTfPHFF8jOzoZSqcTt27cREhICAPj1118RHx8PAFAoFJBKpZBKpYiKisLJkyeRl5cHLS0tyOVySKXSGh8Pqt+YLCYiIiIiIiIiInpBrVq1wq+//or58+ejcePG+Oabb/D777/DxMSkRN07d+6gf//+0NfXR4cOHfDmm29i3LhxAICtW7dCJpPByckJhoaGeOutt3Dr1q0SbUilUhw+fBi3b9+Gvb09jIyM4O3tjaSkJADApUuX4OrqCj09PfTq1QszZ86Eu7s78vPzsWjRIpiamqJx48Y4e/YsNm3aVLuDQ/WORBAEQd1BENVnCQkJsLa2hv1XSyEzVqg7HKJXggzFOKa3S3zeP3skCsG/iBPVtRuTZ6o7BKI68+yeLz4+Hk2bNlV3OKQGr+/4EQBwevT7ao6EiIio9nBmMRERERERERERERFxgzsiIqp/CqGBd3KGqjwnIiIiIiIiouphspiIiOohCVIEXXUHQURERERERNSgcCoWERERERERERERETFZTERERERERERERERMFhMRERERERERERERuGYxERHVQzIU45jeLvF5/+yRKIRUjRERERERERER1X9MFhMRERERERG9oH6/bsGS7n3Qs6ktzifFY3LQPmg3kgEAdGUy9Gtmh/kubtCUPv3D9sSje3AhORGBnt7obGYptrPybDC23QzDku698U7rDiX6+XfbANBSYYzdg0bV8hUSEdGrhMliIiIiIiIiohpirKOLv0ZNAQA8ysnGBycOYMfNMExs7yzWsTUwwsHbN8VkcaGyGMeib8HGQFHptomIiGoD1ywmIiKil9rtTz5H1vUIdYehInHLDjzYe7jW2o9d9yPSTp2tVhsFKY9x891ZUBYWllnn0cFjeHTkv9Xq50V069YNAQEBAIDt27ejd+/edda3RCJBZGRknfVXlrZt2+LkyZPVbicnJwetWrVCSkpKDURFRDXNVFcPrlY2uJOeqlLu2dIBJ2PvIK+oCADwV3w0WhmbwExX74X6iX2ShveP/4Ye2zeh/x5/7Iy4Kh7rsX0Tuvzyvfho67ce55PiX/yiiF5htra2OHbsmLrDUDFx4kQsWLCg1tr38PDAli1bqtVGTEwMJBIJ8vLyaigqqk1MFhMREdErpzKJVHVqNut9GPXsVqt9FGdl43HwGRj36SmWCUXFSPn9JO4s/hIRUz9B1KwliFm1AU/OXqq1OMaMGYM//vijRtpyd3fHpk2baqStmlRaXDdu3EDfvn2r3bauri4mTpyIL7/8stptEVHNe5CdhdCEWHQwtVApb6yjC6cmlvhf7B0AwIHbNzHErs0L9ZFbVIjJx/bjDZsWCB7lgx/eHIzN1y7iTGIsACB0zAe4OH4aLo6fho86u6KFwhhtGjep3oURUY152ROpQUFBePfdd9UdBtUhLkNBRERE9ApK//si5G1aQaqjLZYlbNqKgkepsJzgDW1ba0g0NJBzNwZpwWdg2M25RBuCIECpVEIq5QaT6jRu3Dh06tQJvr6+0NLSUnc4RK+8x7k56LZtIwQByCosgFMTC3i2dChRb4h9G+yJug5XSxuEPUzCGvcB2BN1vVJtP/NR5+5orK0LUx1djHTsCABobmiMEQ7tcPReFLpbNRPrnoqPxpZrF7HNyxtyTX5WEBFR6TizmIiIiErQgBIyFFfq0QjFVT5fA8oqxZMXl4i7S1YjcvpCxH/vj+KcXPFYbnQcYr78DpEffYo7i1ci49I18VjW9Yin5324AFGzluDBr4cAADErvgEARM1YjIgP55e5zEX6mQu4+59ViPxwAW4v9C21XnFuHuK+/RlRM/+DyI8+Rdz6n1CYmqbSxu2Fvoj8cAFuzf0MqSeCAQBFWdmI+24LIj/6FJEffYp7y9ehKDPraXyrN+BxcGiFcWRej8C9z9YgctrTth/+drTSY5p19QZ0W9v/8/zmLWRdj4D1R+9C174FNGQySKRS6LVqiaZTxon1YlZvwIN9vyNm9Qbo6enh/PnzCAoKQufOnWFgYABra2v85z//Uelr165daNGiBYyMjDB37lyVYwEBAejW7Z9Z1Ldv34aHhwdMTEzQsmVLbNz4T1Jk2bJlGD58OHx8fGBoaAg7OztxKYf58+fj1KlTmDlzJuRyOcaNG4ey/Pe//4WdnR2MjY3h4+OD/Px88djWrVvRunVrKBQK9O7dW2XJiuTkZAwfPhwmJiZo3rw5VqxYAaXy6Xs5NTUVgwcPhpGREYyMjODi4oKUlJQy43r+a6zlXRcAxMXFoXfv3tDX18frr7+OTz/9FO7u7uJxa2trGBkZ4cyZM2VeMxHVHWMdXZwd+yHOjfsQF8ZNQ0dTC7x//ECJem7WzRGZ+gh+1y+hT7OW0GpU8VyuZ20/e4xp44TErAxEPH6Ebts2ig+/axeRkpsjnncnLRULT53Amjc8KlwXmehlU5QZV+5Dmf9EtX72/XLrF+dWb+mmK1euoH379jA0NMTw4cORnp4uHrtw4QJ69eoFIyMjODo6Yv/+/eKxY8eOoX379tDX14e5uTnmzZsHAOjevTsAwMTEBHK5vMxlLn755Re0a9cO+vr6sLOzK7VeRkYGBg4ciCZNmsDIyAgDBgxAXFyceDwwMBB2dnbQ19eHtbU11q1bB6Ds+xig5DekyoqjovtBqj84s5iIiIhKGCsLxwTN8mc3PXO72Agf5A1QKXOR3sdy7ZAyz9la0B6/FJbc6b0s6aHnYTNrCqRyORJ/CkTyjv2wem8MCtOfIG7dj7CYOBL6Tm2RGxOPuHU/QcvCDFqWZrjvvxNNRgyEovtrUOblI+9+MgDA9tMZuDP/Czh8sxwaMlmpfWZcvo4Hew7Detok6LS0RVFaOpR5BSUrCgIU3V9D0/cnAIKA+wG7kbRtL2xm+ECZn4/7AbvQbO6H0GvVEsVZ2Sj4/0Ry6vE/AUGJVmuWQSJrhLy4xFJjKS8ODU1NWE4eDS0rc+TfT0bs2k3QtraEQRenCsc0LyEJpkP++Rpy9s0o6DS3gaaJcYXnPgk9D5uZU3B7ySoUFhbi3LlzCAgIQLt27XDjxg3069cPHTt2xIgRIxAZGYnJkyfj0KFDcHNzw6pVq3Dx4sVS283JyUGfPn2wcOFCHDp0CPfu3UO/fv1gb2+Pfv36AQCOHDmCXbt2YdOmTfj2228xefJkxMXFYdWqVTh37hxGjhyJDz74oNz4d+3aJSZWPT094evri88//xzBwcGYOXOm+MvOV199BU9PT9y8eRNaWloYNWoUmjdvjri4ONy/fx/9+/eHqakpfHx8sGbNGiiVSiQmJkJLSwthYWHQ1taudFxlXRcAjBo1Cp06dcLRo0cRGRkJDw8PODiozlJ0dHREWFgY3njjjQpfPyKqO7oyGYa1aoutNy4jPS8XCm0d8ZimVIr+LVohIPwStnl5v3AfFnJ9dGpigYABb5d6PD0vF9NPHsIM5+7oamH9wv0QqUvK0eHlHpe3nwp5m8ni87Tg6SjOKntdbm1bTyhclr1wPAEBAQgKCoKpqSlGjRqFjz/+GL/88guSkpLQv39/bNmyBQMHDsTFixfh4eEBR0dHODo6YtKkSVi9ejXGjRuHrKws3LhxAwBw5swZNG/eHCkpKdDW1i61zwMHDuCTTz7B/v374erqioSEBGRlZZWop1QqMWHCBOzevRtKpRLvvfcePvzwQxw5cgTZ2dmYPHky/vjjD/Ts2ROPHz9GbOzT5WrKuo+pShx6enpl3g9S/cKZxURERPTSM+7zOjRNTSDV0UaTYQOQceEKBKUST/6+CL02rWDQuT0kGhrQbdEMBp3bI+NiGABAIm2EgocpKMrMgoa2FnRbNCu/o+ekhZxB47fegK5dc0gkEsiMjaBlaVainlRXBwZdnKChpQkNbS2YePZBTtRd8bhEKkXB/Qcozs2DVK4HnWZNxfLirBwUPEyBREMDOrbW0NAu+bXg8uLQc2gJbWtLSDQ0oN3UEoYunZD9XN/lKc7JgcZzvwQUZ2WjkcJQpU7UjMWInL4QEe/PQ37yQ7HcsHsXaNtYQUNDA1paWujVqxc6dOgADQ0NtG/fHqNGjUJIyNM/Fvz666/w8PBA3759IZPJsHDhQhgZGZUa05EjR2BhYYGpU6dCJpPBwcEBPj4+2Llzp1jH1dUVQ4cOhVQqxYQJExAfH1/lzd0WLFiAJk2aoEmTJli8eDF27NgBANi2bRsmTpyIbt26QVNTEwsXLkRubi5Onz6NhIQEhISEYO3atdDV1YWdnR3mzp2LX375BQCgqamJ1NRU3LlzB1KpFM7OzpDL5ZWOqazriouLw99//40VK1ZAW1sbTk5OGDNmTInz9fX1kZaWVkrLRKRO+UVFOHD7Jkx19GCoVTLx8n7Hrtjcfzicmli+cB9u1s2RmJWBfbfCUVBchCKlErcep+D6o2QUKZWY+ccRuFk3x9sO7atzKUT0/6ZPn44WLVpAX18fvr6+YmI2MDAQffv2xZAhQyCVSuHi4oKhQ4diz549AJ7eK9y5cwcpKSmQy+VwcXGpdJ+bNm3C3Llz0b17d0gkElhbW8PR0bFEPYVCgREjRkBXVxdyuRwLFy4U78kAQCaT4ebNm8jIyICxsTE6deokxlaZ+5jy4ijvfpDqF84sJiIiopeezPif5KKssTGEomIUZ2ajMCUNmVfCETl9oXhcUCqhcO0CAGg6fRJSjvwXdz5dAc0mJjAd9Bb0O7atVJ+FqWnQbGJSYT1lfgGSdx9A9vVIFOfk/H9ZPpSFRdDQ0oL1R+8i9XgwHuw9DG1rKzQZ7gVdO1uY9O8NobAQCRv9ocwvgKGrM5oM9YSkker6v+XFkXMvFg/3HkF+YhKE4mIIhUXQ71y5ZIBUVxfK5zZSkcr1UJD8SKWOwzfLAQA3350FCIJYLmusOvv43LlzWLBgAcLDw1FQUID8/HwMHToUAHD//n3Y2Nj8049UCisrq1JjiomJwZUrV6BQKMSy4uJi9Oz5zyZ85ubm4s+6uroAgKysLJiYVPxaPfN8PM2aNUNiYiIAIDExEf379xePaWhowMbGBomJiZDL5TA0NFRJdNva2ornzps3D7m5uRg+fDiys7MxduxY+Pr6QlbGzPV/K+u6kpOTYWhoCAMDA/G4tbV1idnZmZmZZSbhiahuPc7NQZdfvgcAyDQ00LqxKb7vNwgSiaRE3cY6umiso1ut/vRkmtj81jB8deEU1l8MRZFSieaGRvjYuTseZGfiQnIiwlMeYN+tG+I5P745BM7mpX8WE71sTAbsK/e4hqbqH7uN3DcAyqIy60saVe//3L/vIwoKCvDo0SPExMTg4MGDKvcxRUVF4hJUv/32G5YvXw57e3vY2dlh6dKl8PLyqlSfcXFxsLOzq7BeTk4OZs2ahWPHjol/RM7KykJ+fj709PRw6NAhrFmzBp988gmcnJzw5ZdfwtXVtdL3MeXFUd79INUvTBYTERFRCdsK22FnYeWSqkIpZeeKLdE/e2SZ5xSj5C/M5Sl8/M+MycLUNEAqhVRfD7LGChh07QSrd0eXep5OM2tYT5sMQalExvkrSNgYAIdvl1eqT1ljIxQ8rHjGauqJYOTfT4btohmQKQyRF5+Ie8vW4NnIyNs4QN7GAUJREVL/G4KETVvRas1SaGhrweztQTB7exAKHqYgbv1P0DRvAqOe3VTaLy+OxJ8CYeTeAzYzfaChqYnkXb+hKD2zUten3dQC+UkPoWvXHACg59gKj0+eQmFqGmSNK0g6/uvlGz16NKZOnYqjR49CR0cHs2bNQlJSEgDA0tISV69eFesWFxeLCdZ/s7GxQffu3REcHFypaygRVimJmNLExcWhY8eO4s/PktdWVlaIiYkR6ymVSsTHx8PKygpWVlZ48uQJ0tPTxV8CY2JixHPlcjlWr16N1atX4+7du+JSEe+++26l4yqNpaUlnjx5gszMTOjr6wMA4uNLfrU2IiICs2bNeuF+iOjF/df7XfHnrhbWCJ88s9z6ZS0XUdGxrhbW+GvUlFKPNTM0woa+g0o9dqOCeIhedo30bSqu9Hx9vRefqV8Zz68BHBcXB5lMBlNTU9jY2GDkyJEICAgo9bzOnTtj//79KC4uxu7duzFixAikpqZW6j7BxsYGd+7cqbDe2rVrcfPmTZw9exYWFha4evUqnJycIPz/H/379u2Lvn37oqCgAOvXr4e3tzfi4+PLvY+pbBzl3Q9S/cJlKIiIqN4phgSL89zER1UTj1QxJTRQCGmlHkWQVvl8ZRVvQR7/GYqCR6kozs3Dw9+OwvA1J0g0NGDYrQuywiOQGRb+dGZtURFy7sUi//4DCEVFSD9zAcXZOZBoaEBDVweQSAANDTTSlwMSSbnJYKNernh84k/k3I2BIAgofJyO/KQHJa81Lw8aMhmkujoozs7Bo8MnxGNFTzKRcfk6lHn5gFQKDW1tSDSevl8zr95AfvJDCEolNHS0IZFqQCIpOS7lxaHMy4dUTwcamprIjYnDk3OXKz2m8g5tkBP1z82+vK0D9Nq0Qvx3W5Bz+x6UhUUQiouRc/tehW09m9Wqo6ODixcviss6AMDbb7+NoKAg/PHHHygsLMSqVavKXC7By8sLMTEx2LJlC/Lz81FUVITr16/jwoULlbomMzMz3L1b8TIcq1evxqNHj/Do0SP4+vpi1KhRAIAxY8YgICAA58+fF2PV1NTE66+/jqZNm6Jnz56YO3cucnNzcffuXaxdu1acLXTkyBHcunULSqUSBgYGkMlkkEqlVYqrNDY2NujWrRsWLVqE/Px8XLt2TWV8ASAhIQGPHz8WN8ghIiKi2rNx40ZER0cjMzMTixcvxjvvvAMNDQ2MHTsWQUFBOHz4MIqKilBQUIBz584hIiICBQUFCAwMRFpaGqRSKRQKBSQSCaRSKUxNTaGhoVHuvcKUKVOwdu1anD17FoIgICEhQWUT3mcyMzOho6MDhUKBtLQ0fPHFF+KxBw8e4MCBA8jKyoJMJoO+vr54r1LefUxl4yjvfpDqGYGIqiU+Pl4AIMTHx6s7FCKiBqlZs2bCihUrhHbt2gkGBgbCkCFDhNTUVPH4xYsXhd69ewvGxsZC48aNhTfeeEO4cuWKkJ+fL/Tv318wMjIS5HK50K5dO+HQoUPieUuWLBFMTU0FQ0ND4dixY6X2vXnzZsHR0VGQy+WCnZ2dWG/ChAnC/PnzBUEQhMTERMHNzU3Q09MT7O3thU2bNgkAhNzcXOH+/fuCm5ubYGhoKBgYGAhdu3YVQkNDBUEQhHXr1gnNmzcXdHV1BXNzc2HmzJlCUVGRIAiC4ObmJvzwww8VxrFnzx7BxsZGkMvlgqenpzBt2jThnXfeEQRBEKKjo8U4SpOamiqYmZkJGRkZYllBQYGwfPlyoXXr1oKOjo5gbm4u9OrVS9ixY4dQXFxcamwVxSEIgrB9+3bB1tZWUCgUwuzZswUXFxfB399fEARB8Pf3F1xcXMS6t27dEgYNGiSYmpoKCoVC6Natm3Dy5ElBEARh6dKlKu3m5uYKAITo6GhBEAThzJkzQqtWrQSFQiGMHz++1OsGIHz77bdCy5YtBYVCIUyePFlljLZs2SK0atVKMDQ0FNzd3YUbN26IxxITE4UhQ4YIxsbGgo2NjfD555+L41Le61laXM2aNROCgoIqdV3R0dGCm5ubIJfLhe7duwtz584V3nzzTbH+ypUrhdmzZ5d6vVRzeM9HPbZvEnps36TuMIhIjXhfWjv3pfRykQiCUNq3R4mokhISEmBtbY34+Hg0bdpU3eEQERFV2rJlyyCTybBo0SJ1h0JVMGPGDGRnZ2Pz5s3IycmBk5MTQkNDYWpqqu7QGjTe89HrO34EAJwe/b6aIyEiIqo9XLOYiIiI6BW1bNkydYdAlXDp0iUYGBjAzs4OoaGh2Lp1q/jVTl1dXdy6dUvNERIRERFRQ8FkMRERERHRS+zBgwcYNmwYHj16BHNzcyxZsgQDBgxQd1hERERE1AAxWUxERPWOUFyI1JOTxOeN+/pDIpWpMSIiotozYMAAxMbGqjsMIiIiInoFMFlMRET1kICi9CiV50RERERERERUPRrqDoCIiIiIiIiIiIiI1I/JYiIiIiIiIiIiIiJispiIiIiIiIiIiIiImCwmIiIiIiIiIiIiIjBZTERERERERERERERgspiIiIiIiOqp9PR0eHt7Q19fH5aWlli/fn2F5wQEBEAikWDTpk21HyARERFRPdNI3QEQERERERG9iOnTpyM/Px+JiYmIjY1Fnz594ODgAA8Pj1Lrp6amYuXKlWjbtm0dR0pERERUP3BmMRERERER1TvZ2dnYs2cPfH19YWBggPbt28PHxwd+fn5lnjN37lzMnj0bJiYmdRgpERERUf3BmcVE1VRUVAQASEpKUnMkRK8OobgAj1ILxOeFCQmQSDXVGBERUf1lbm6ORo3q368Ft27dglKpRLt27cQyJycn7N+/v9T6ISEhiIiIwJYtW7Bz584K28/IyEBGRob4PD4+HgDv+V5l+alpAICEhAQ1R0JERFR1lb3nq393hUQvmejoaABA165d1RwJ0StsWkt1R0BEVG/dvHkTjo6O6g6jyrKysmBoaKhSplAokJmZWaJuQUEBpk2bhl9++QUaGpX7cuXXX3+Nzz77rEQ57/nI+uOF6g6BiIioyuLj49G0adMK6zFZTFRN1tbWAIAzZ86IP1PtS0pKQteuXXH+/HlYWFioO5xXAse87nHM1YPjXvc45urxbNx1dHTUHcoLkcvlKjN/AeDJkyfQ19cvUXf16tVwd3dH586dK93+7Nmz8d5774nP8/LyEB8fj+bNm1dqVk7Hjh1x9erVSvf3DP8/qN+Lvnb1xct8feqMrS76rq0+aqrd6rbDz73662X+XKgJL/v11VV85ubmlarHZDFRNWlrawN4mjSuzF9oqGZZWFhw3OsYx7zucczVg+Ne9zjm6lEfl6AAgFatWkEikeDGjRvihnVhYWEqy1I8c/LkSVy/fh179+4FADx+/BhXrlzBuXPn4O/vX2r7BgYGMDAwUCmzs7OrdHxSqbRa72f+f1Cf6r52L7uX+frUGVtd9F1bfdRUu9Vth5979dfL/LlQE17263vZ4qufd4ZERERERPRK09PTw4gRI7Bo0SIEBgYiNjYWmzdvLjX5u3//fhQU/LPW/bBhwzBkyBBMmTKl1uKbN29erbVNtauhv3Yv8/WpM7a66Lu2+qipdqvbzsv83qLyNfTX7mW/vpctPokgCIK6gyCqzxISEmBtbV3ptV+oZnDc6x7HvO5xzNWD4173OObq0RDGPT09HT4+PggKCoK+vj7mz5+PmTNnAni6TEVQUBB69uxZ4jx3d3eMHDkSH3zwQR1HXLGG8LoQEVUFP/eIXi6cWUxUTQYGBli6dGmJrylS7eK41z2Oed3jmKsHx73ucczVoyGMu0KhwJ49e0o9lpWVVeZ5wcHBtRRR9TWE14WIqCr4uUf0cuHMYiIiIiIiIiIiIiKChroDICIiIiIiIiIiIiL1Y7KYiIiIiIiIiIiIiJgsJiIiIiIiIiIiIiImi4mIiIiIiIiIiIgITBYTVUp6ejq8vb2hr68PS0tLrF+/vsJzAgICIJFIsGnTptoPsIGqyrhLJBLo6elBLpdDLpfDw8Oj7gJtQKoy5nl5eZgxYwaaNGkCAwMDODs7IzMzs+6CbSAqO+bbt28X399yuRx6enqQSCTYv39/3QbcQFTlvf7rr7+iTZs20NfXh729PbZs2VJ3gTYgVRnzwMBAODg4QC6Xo1evXoiKiqq7QBuQDRs2oEuXLtDS0sLIkSPLrRsSEoJ27dpBV1cXr732Gq5evVpHUdKLiI+PR/fu3eHu7o7evXvj/v376g6JiKhWhYSEoFu3bujVqxdGjRqFwsJCdYdE1GAxWUxUCdOnT0d+fj4SExNx/PhxrFixAkFBQWXWT01NxcqVK9G2bds6jLLhqeq4X7p0CVlZWcjKyiq3HpWtKmP+wQcf4P79+7h+/TrS09Ph5+cHTU3NOo64/qvsmI8ZM0Z8f2dlZWHv3r0wMDBA//791RB1/VfZcY+Li8PYsWOxatUqZGRkIDAwEDNmzMCVK1fUEHX9VtkxP336NGbMmIGdO3ciPT0dvXv3xqBBg1BUVKSGqOs3S0tLLF68GD4+PuXWS01NxeDBg/HJJ58gLS0No0aNwqBBg5Cfn19HkVJVWVpa4vTp0wgODsb48ePx008/qTskIqJaZWdnh+DgYPz111+wtbXFvn371B0SUYPFZDFRBbKzs7Fnzx74+vrCwMAA7du3h4+PD/z8/Mo8Z+7cuZg9ezZMTEzqMNKG5UXGnaqnKmMeFRWFffv24eeff4aZmRk0NDTQsWNHaGlpqSHy+qs673M/Pz+888470NXVrYNIG5aqjHt8fDwUCgUGDhwIiUSCbt26wdHREeHh4WqIvP6qypgfPHgQI0aMQOfOndGoUSMsXrwY0dHROHXqlBoir9+GDRuGIUOGVHg/sn//ftjZ2WH8+PHQ0tLCrFmzoFQqcfLkyTqKlKpKKpVCQ+Ppr3KZmZlo166dmiMiIqpdVlZW0NbWBgBoaWmJn4FEVPP4v4uoArdu3YJSqVS5CXdyciozURASEoKIiIgKZ/FQ+ao67gDQu3dvmJmZwdPTEzdu3KiLMBuUqoz5+fPnYWtriy+++AKmpqZwdHTkV/NfwIu8z4GnswAPHTqESZMm1XaIDVJVxt3FxQUODg747bffoFQqcfr0aURHR6NXr151GXK9V5UxFwQBgiCoPAeAa9eu1X6gr6jw8HA4OTmJzyUSCTp06MA/itSQ8pYDeZGlzp45f/48XFxc8N1338HZ2bmGoyYienG19bkHANHR0Th+/DiGDBlScwETkYpG6g6A6GWXlZUFQ0NDlTKFQlHq2qwFBQWYNm0afvnlF/6ls5qqMu4AEBwcDFdXV+Tn52PVqlV48803ERERAQMDg7oIt0GoypjHx8cjPDwcgwYNQkJCAq5du4Z+/frBzs4Obm5udRVyvVfV9/kz27dvR8uWLeHq6lqb4TVYVRn3Ro0aYcKECRg/fjxyc3PFteibNWtWV+E2CFUZ8wEDBmDYsGHw8fGBk5MTPv/8cxQVFSEnJ6euwn3lZGVlwcjISKWsMp9FVDnPlgM5efIkUlJSVI49vzxLbGws+vTpAwcHB3h4eCApKQlDhw4t0V5AQABat26Nrl274ty5c9i9ezd8fX2xefPmurokIqJy1dbnXlpaGsaOHYuAgAAuf0dUi5gsJqqAXC5HRkaGStmTJ0+gr69fou7q1avh7u6Ozp0711V4DVZVxh2AmKDU1NTE8uXLERgYiDNnznA91yqoypjr6upCKpVi6dKl0NTUxGuvvYa3334bR44cYbK4Cqr6Pn/G39+fs4qroSrjfuLECcybNw8nTpyAi4sLIiIi4OXlBXNzc3h6etZVyPVeVca8d+/eWL16NcaPH4+UlBRMmDABbdq0QdOmTesq3FeOXC7HkydPVMoq81lElTNs2DAAQFhYmErS5NnyLJcuXSqxPIuHhwcsLCxw9uzZUtvMz88Xl35SKBRckoiIXiq19bnn7e2NFStWwMHBoU6ug+hVxamPRBVo1aoVJBKJyrIGYWFhpa4Nd/LkSezcuRPm5uYwNzfHmTNnMH/+fCZ1XkBVxr00GhoaKl9jpopVZcw7dOhQl6E1WC/yPr9y5QrCw8Mxbty4ugixQarKuF+7dg09evSAq6srNDQ00LZtWwwYMICbaFZRVd/rU6ZMQWRkJFJSUrB48WLExMSga9eudRXuK6ddu3YICwsTnwuCgGvXrnEd3Fr2oksRAcDZs2fRq1cvvPHGG1i3bh3mz59fm6ESEdWI6nzu+fn5ISwsDEuXLoW7uzt27NhRm6ESvdKYLCaqgJ6eHkaMGIFFixYhMzMT4eHh2Lx5MyZPnlyi7v79+3Hjxg2EhYUhLCwMXbp0waJFi7Bu3To1RF6/VWXcb9y4gcuXL4tfU162bBlyc3P5Ff0qqsqY9+rVCy1atICvry+Kiopw5coV7N27FwMHDlRD5PVXVcb8GX9/f3h4eMDc3LwOI21YqjLuXbt2xZkzZ3DhwgUATzd3PHr0KDp27FjXYddrVRnz/Px8XL16FUqlEg8ePMB7772HYcOGcRbRCygqKkJeXh6KioqgVCqRl5eHwsLCEvWGDRuG27dvY9u2bSgoKMA333wDAOjbt29dh/xKedGliICn36j666+/8Oeff+LYsWOwsrKqrTCJiGpMdT73pk6dikePHiE4OBjBwcEYPXp0bYVJ9MpjspioEr7//nvIZDJYWFigX79+WLBgATw8PAA8/ermsx3ajY2NxVnF5ubm0NTUhIGBARQKhRqjr78qO+4PHz7E6NGjYWhoCBsbG5w9exbHjx/nuL+Ayo55o0aNcOjQIfzxxx8wNDSEt7c3vv76a2769QIqO+bA03XRd+zYUW4ymSqnsuPeq1cvrFixAmPGjIG+vj769euHUaNG4d1331Vn+PVSZce8oKAAEyZMgIGBAdq1awdLS0v8+OOP6gy93lq+fDl0dHTg6+uLPXv2QEdHR9yA9/kxb9y4MQ4cOIAvv/wShoaG2L59Ow4dOiQuc0C140WXIiIiqq/4uUdUP0gEfk+biIiIiIioVi1btgyRkZHYtWsXgKdrdxobG+Py5cto27YtAGDx4sWIiorCnj171BkqEVGN4OceUf3EmcVERERERES1pKzlQF5kKSIiovqAn3tE9RuTxURERERERLWkvOVAyluehYiovuLnHlH9xmUoiIiIiIiIiIiIiIgzi4mIiIiIiIiIiIiIyWIiIiIiIiIiIiIiApPFRERERERERERERAQmi4mIiIiIiIiIiIgITBYTEREREREREREREZgsJiIiIiIiIiIiIiIwWUxERFQpEomk3MeyZcuq1faRI0cqXX/ChAmQSqUICgoqcczd3R1z584tUb5hwwbY2tqqlKWlpeGTTz6Bvb09tLW1YWVlBU9PT/zvf/+r8jUQERERERFR/ddI3QEQERHVB0lJSeLP/v7+2LhxIy5cuCCWyeXyOokjMzMTv/32G+bMmQM/Pz94eHi8UDupqano3r07NDQ0sGLFCnTs2BGFhYU4fvw4pk2bhsjIyBqOnIiIiIiIiF52nFlMRERUCebm5uJDX18fUqlUpWznzp1wcHCAtrY22rRpA39/f/HcgoICTJs2Debm5tDW1kaLFi3w3XffAYA423fgwIGQSCQlZv/+265du9C1a1fMnj0bv//+O1JTU1/oej799FNkZWXhwoULePvtt9GqVSu0bdsWs2fPxtmzZ1+oTSIiIiIiIqrfmCwmIiKqpu3bt+Ozzz7DqlWrEBERgWXLlmHGjBk4ePAgAODbb7/F4cOHsXfvXkRFRcHPzw+WlpYAIM5ODgwMRFJSksps5dL4+flhzJgxMDc3x+uvv45t27ZVOV6lUondu3dj2rRppc6IVigUVW6TiIiIqLYFBATAxMSk3DoTJ07EiBEj6igiUoeUlBSYmZkhMTERQOXeF1V18uRJODk5QalU1mi7RPUBk8VERETVtHTpUqxbtw5DhgxB8+bN4e3tjQ8//BA//vgjACAuLg729vbo0aMHmjVrBnd3dwwfPhwAYGpqCuBpgtbc3Fx8XpqIiAhcvXpVPHfs2LEqM5gr69GjR3jy5AkcHR2rfC4RERHVT7W5/8LL5JtvvsHmzZvF52Xt51AbmKguW1X36CiPr68vRowYASsrqxpprzR9+/aFtrY2duzYUWt9EL2smCwmIiKqhuzsbNy9excTJkyAXC4XH+vWrcPdu3cBAOPHj8fly5fRunVrzJw5E3/88ccL9eXn5wcvLy8YGBgAAIYOHYpbt27h0qVLNXY9RERE1DAlJSWJjxUrVqBp06YqZXWVUK1thoaGr+S3pAoKCkqUCYKAoqKiKrdVVFQEQRAqrPei7VdHTk4O/Pz8MHny5Frva9KkSdiwYUOt90P0smGymIiIqBqysrIAPN30LiwsTHzcuHEDJ06cAAB06dIF0dHRWLZsGTIyMjB48GD4+PhUqZ+ioiIEBgZi3759aNSoERo1agQjIyPk5ubCz89PrGdgYIAnT56UOD89PR2GhoYAns5mNjQ0RERExIteNhEREdUzZe2/oKOjAysrK/GP3IWFhdDT00O/fv3Ec9evX48uXbqIz//880906dIFWlpasLKywmeffVbh1/WzsrIwduxY6OnpwcrKChs3bkSXLl3EGc0xMTGQSCQIDw8XzwkPD4dEIkFMTIxKW/v27YOdnR10dHTg5eWFhw8fiseen907ceJEhISEYO3ateIM6n+39cz9+/cxYMAA6OjowM7ODr/99htMTEwQEBAg1pk7dy7s7e2ho6ODli1bwtfXV7zuZcuWYevWrdi3b5/YV3BwMAAgPj4eb7/9NgwNDWFiYoIRI0bg/v375Y5XeHg4+vfvDz09PVhYWOC9995Tucdzd3fHjBkz8PHHH6Nx48YYOnQogoODIZFIcOzYMXTq1Amampq4cuUKcnNzMX36dJiamkJbWxtvvPEGrl+/Lrb1bBmHAwcOoHXr1tDS0kJKSkqJmMpq//bt2xg0aBDMzMygr68PV1dXnD59WjyvvD06Dhw4ACcnJ2hra8POzg6rV68u97109OhR6OnpwdnZudzx27BhA1q0aAFNTU20adMG+/btUzkeGhqKDh06QFtbG926dcOePXtKvD+8vLxw7tw5xMbGltsXUUPDZDEREVE1mJmZwcLCAvfu3YOdnZ3Ko1mzZmI9hUKBUaNGwc/PD5s3b0ZAQIB4IyyTyVBcXFxuP7///jtyc3Nx5coVlaT0Tz/9hJ07dyIvLw8A0KpVq1JnGl++fBmtWrUCAGhoaMDb2xsbNmwQk93PS09Pf9HhICIionrG0NAQTk5OCAkJAfB0PwUdHR38/fff4qzRkJAQuLm5AQASEhIwYMAA9OjRA1evXsX69euxbt06fPvtt+X2M2fOHISGhuLw4cMICgrCgQMHEBUVVeV4MzMzsWbNGuzYsQMhISFISEjApEmTSq37zTffwNXVFVOnThVnUFtbW5dad8KECXj48CH++usv7Ny5E2vXrkVmZqZKHUNDQ/zyyy+IiIjAV199ha+//lpc8mLu3Lnw9vaGl5eX2Ff37t1RWFiIt956C8bGxggNDUVISAgEQcCgQYPKTIqmp6ejd+/e6Nq1Ky5fvowjR47g1q1bmDhxoko9Pz8/yOVy/P3331i3bp1YvnDhQqxduxYRERGwt7fHJ598goMHD2L79u24ePEimjRpgv79+yMnJ0dlXNeuXYutW7ciPDxc/CZbaf7dfmZmJry8vPC///0Ply5dQvfu3eHp6SkmnMvao+PUqVOYOHEi5syZg5s3b+K7777Dt99+K24EXZpTp05VmCjet28f5syZgwULFiA8PBxjx46Ft7c3Ll++DADIyMjAoEGD4OzsjCtXrmDRokVYsGBBiXasrKxgbm6OU6dOldsfUYMjEBERUZV89913QrNmzcTnP/zwg6Cnpyd89913QlRUlHD16lXhxx9/FDZu3CgIgiB8/fXXwq5du4TIyEghIiJCGDlypODo6Cieb29vL0yfPl1ISkoSHj9+XGqfgwYNEsaMGVOiPC8vT9DX1xd27NghCIIg3LlzR9DS0hJmzZolXLt2TYiIiBBWrlwpSKVS4cyZM+J5jx49Euzs7ITWrVsLe/bsEaKiooSbN28K33zzjdC6deuaGCYiIiJ6Sf37XmbWrFnC0KFDBUEQhBUrVgjvvvuu0KJFC+Hvv/8WlEqlYGxsLBw8eFAQBEFYuHCh0KZNG0GpVIrnr1q1SrC0tCyzv4yMDEEmkwn79+8Xy+7fvy/IZDJh6dKlgiAIQnR0tABAuH79uljn+vXrAgAhOjpaEARB8Pf3FwAIly9fFutcuHBBACBERUUJgiAIEyZMEIYPHy4ed3NzE+bMmVPueERERAgAhCtXrohlV65cEQAI/v7+ZZ63dOlSoU+fPuLzf/ctCIIQGBgotG3bVqUsMzNTkEqlwrlz50pt94svvhAGDBhQaowPHjwQr6tLly4qdf78808BgHDkyBGVvmQymbB7926xLDs7W2jcuLHw008/CYLwz7iGh4eXea1ltV+WZs2aCYGBgeJzAMLhw4dV6vTp00dYvXq1StkPP/ygcp/8b4MHDxamTJmiUubv7y80btxYfO7q6ipMnTpVpY6Hh4cwevRosY8mTZoI+fn54vF169apvNee6dSpk7B8+fJyrpSo4eHMYiIiomr64IMP8MMPP+Dnn39G+/bt0bt3b+zevRstWrQAAOjp6WHlypVwdnZGt27dkJaWpvJVuLVr1+LYsWOwtrZGp06dSrT/4MEDHD16VNzY7nlaWlrw8vISl6Jo2bIlQkJCcO3aNfTu3Ruurq44fPgwfv/9d7i6uornmZiY4Ny5c/D09MSCBQvQvn179OnTBydOnMDGjRtreoiIiIjoJebm5oa//voLgiAgJCQE7u7ucHd3R0hICK5fv4709HT07NkTwNMNd7t37w6JRCKe36NHD9y/fx8ZGRk4deqUyj4O27dvx71791BYWAgXFxfxHAsLC5VvYVWWlpYWnJycxOfOzs7Q1NSs1vJaUVFR0NLSQseOHcWyjh07QlNTU6Xe7t270b17d5iZmUEul2PlypWIi4srt+2rV68iMjJSZUzMzc1RXFwsLv1R2jn//e9/Vc55tgzI8+c8vzTI854vv3v3LgoLC9GjRw+xTFdXF506dVIZMx0dHbRt27bcaymr36ysLMyZMwetW7eGQqGAXC5HfHx8pcZmyZIlKtc5a9asMscFAHJzc6GtrV1uuxERESrXCzx9jz673qioqBKvb9euXUttS0dHR2UGNtGroJG6AyAiIqpvpk+fjunTp6uUjRs3DuPGjSu1/pQpUzBlypQy2xs4cCAGDhxY5nEzMzMUFhaWefzfuzS7uLjg5MmTZdZ/xtjYGGvWrMGaNWsqrEtEREQNV8+ePfH48WNcvXoVZ86cwc8//wylUondu3dDV1cX7du3h5GRUaXa6tKlC8LCwsTnZmZmuHfvXoXnaWg8ncsmPLexWnn3P3Xt77//xpgxY7B8+XL069cPBgYG2LJlC3bt2lXueVlZWXBxccHWrVtLHDMzMyvznCFDhmDFihUljllZWYk/6+nplXp+WeXl0dXVrXTdf7c/d+5c/O9//8NXX32Fli1bQkdHBwMGDCh1073nZWVlYfny5Rg8eHCl+zYxMUFaWlql61fX48ePYWpqWmf9Eb0MmCwmIiIiIiIieoUZGxujffv2WLduHUxMTGBtbQ03Nzd89NFHkMlk4nrFAODo6IiDBw9CEARxdnFoaCisrKzEdW7t7OxU2m/RogVkMhnOnTuHoUOHAgCSk5NVNg57lpBLTk5G+/btATydefpv+fn5CAsLE7+NdfnyZRQUFMDR0bHUa9PU1KxwbwgHBwfk5+fj2rVr4uzia9euqSQ7z5w5g5YtW6qsbfvvzfJK66tTp07Yu3evuPlbZXTq1AkHDx5E8+bNIZVKK3VOWVq2bAmZTIbQ0FB4e3sDgLgPxjvvvFOttp8JDQ3F5MmTMWTIEABAWloaEhISVOqUtkdHp06dcOvWrRLvl/J06tSpwgS9o6MjQkNDMWbMGJUY27RpA+Dp671jxw4UFBSIs4ufraP8vPz8fNy7d6/Ub/4RNWRchoKIiIiIiIjoFefm5obt27fD3d0dANCsWTMYGxvjyJEjKsniDz/8EPfu3cPMmTMRFRWFvXv3YsWKFZg7d26Zbevr62PChAmYO3cugoODce3aNUycOBFaWlpiHR0dHXTt2hWrVq1CZGQkTpw4ga+++qpEW5qampg+fTouXLiACxcuwMfHB/379xc38v03W1tbnD17FrGxsUhJSSl1U7nWrVujb9++8PHxwcWLF3Hx4kV89NFH0NTUFBPi9vb2iI6Oxq+//oq7d+9izZo1OHbsWIm+rl69ilu3biElJQWFhYUYM2YMDA0NMXToUJw+fRrR0dH4448/MHXq1DI3FZ42bRoePHiAMWPG4OLFi7h79y6OHj1a7jfVyiKXy/H+++9jzpw5OHHiBG7cuCGO/ejRo6vcXmns7e2xb98+XL16FVeuXMGoUaNKJLltbW1x8uRJJCcnizOD//Of/8DPzw9ffPEFbt68iZs3b2L79u3w9fUts68333wT165dQ0ZGRpl15syZgy1btuCnn37C7du3sXLlShw/fhyzZ88GAIwePRpFRUWYOnUqIiIicOTIEXFTveeXVzl//jy0tbVVlk8hehUwWUxERERERET0inNzc0NxcbFKYtjNzQ1KpRK9evUSy5o2bYqjR48iNDQUHTp0wIwZMzBz5kx8/PHH5bb/9ddfw8XFBQMGDED//v3h5eUFBwcHlTpbtmxBRkYGOnXqhGXLluHzzz8v0Y6+vj5mzpwJb29v9OzZExYWFvD39y+z32dJbEdHR5iampa5ju7WrVvRuHFjvP7663jnnXcwa9YsyGQycX3cQYMGYebMmfjwww/RqVMnXL16FfPnz1dpw8fHB3Z2dnB2doapqSlCQ0Ohp6eHv/76CxYWFhgyZAgcHR3x/vvvQ0NDo8y1d62srHD69Gnk5eWhb9++aN++PebNm/fCyyGsXr0agwcPxpgxY+Ds7IwHDx4gKCioSktPlOfrr7+Gvr4+XF1dMXToUIwYMaLEa1vaHh0eHh44dOgQjh49CmdnZ3Tv3h3ff/89bG1ty+yrQ4cOcHJywt69e8usM3z4cKxduxYrV65E27ZtERgYiF9//RWdO3cGABgYGODQoUO4cOECnJycsHz5cixZsgQAVF6TXbt2YfTo0RWukUzU0EiE5xcEIiIiIiIiIiKqA126dIGXlxeWLVum7lBKiIqKQuvWrXHx4kU4OzurOxx6zuHDh7F48WKEhYWpzASujh9//BHz5s1Deno6NDQ08PjxYzg4OOD8+fNo3rx5jfRBVF9wzWIiIiIiIiIieqWdPHkSubm5aNeuHRISEjBnzhy0b99enI1KL4+BAwfizp07SE5OhoWFxQu1ERAQAHt7e1haWuLSpUtYsmQJxo8fL260GBMTgw0bNjBRTK8kJouJiIiIiIiI6JVWUFCABQsWIDo6GgYGBnBzc8P69etrbOYq1axZs2ZV6/ykpCQsXboUycnJaNq0KSZNmoTPPvtMPN65c2f+oYBeWVyGgoiIiIiIiIiIiIi4wR0RERERERERERERMVlMRERERERERERERGCymIiIiIiIiIiIiIjAZDERERERERERERERgcliIiIiIiIiIiIiIgKTxUREREREREREREQEJouJiIiIiIiIiIiICEwWExERERERERERERGYLCYiIiIiIiIiIiIiMFlMRERERERERERERAD+DwYSI0MLBPZdAAAAAElFTkSuQmCC\n"
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 1430x418 with 2 Axes>"
      ],
      "image/png": "iVBORw0KGgoAAAANSUhEUgAABYsAAAGXCAYAAADyLQ/pAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAQ6wAAEOsBUJTofAABAABJREFUeJzs3Xd4FGXXwOHf1vTee0gCoXdQ6U0RkSYWEAUbivoKNsQu2BV55f2wYwErFqSDgDTp0ntNT0jvvezO90fIuks2lUAAz31dC8nMMzNnZmc3s8+eOY9KURQFIYQQQgghhBBCCCGEEP9q6uYOQAghhBBCCCGEEEIIIUTzk85iIYQQQgghhBBCCCGEENJZLIQQQgghhBBCCCGEEEI6i4UQQgghhBBCCCGEEEIgncVCCCGEEEIIIYQQQgghkM5iIYQQQgghhBBCCCGEEEhnsRBCCCGEEEIIIYQQQgiks1gIIYQQQgghhBBCCCEE0lkshBBCCCGEEEIIIYQQAuksFkIIIYQQQgghhBBCCIF0FgtRq9DQUFQqFSqVyjRt8+bNpmn33XffZY/pvvvuM21/wYIFl337zW3AgAGm/Y+NjQUgNjbWNG3AgAEW7fPz85k6dSqhoaFoNBrT81bbMpdbc59T9WV+7m3evLnO9ubPVX3aX6yr5Tg2NWuvCSGEEEJUupKu+YQQ145/62cP8e8gncX/cjNnzjS9wVU9tFot3t7eDB48mO+//765Q7xqxMbGMnPmTGbOnMnSpUubOxxx3owZM5g3bx5xcXEYjcZmi2Pu3Lmm80MIIYQQQlT/LPL7779bzH/22WdN8+Qa6up24XPdr1+/am3Onj2LWq22aGf+Rbh5Ik99ExGWLFlisb7rr7/eajvzjr+aHpcj+aG+FixYYBFbaGhotc86eXl5ODo6Nss+5OTkmD77XI4Ep40bNzJ+/HhCQkKwtbXFy8uL7t2788orrxAVFXXJty/EtUbb3AGIK4/BYCA9PZ2NGzeyceNGUlJSePbZZ5s7rCtGly5d2Lp1KwA+Pj6m6bGxscyaNQuASZMmMXr06OYI71/Jz8/P9Jy4uLhYzFu+fDkAWq2W77//noCAAHx8fGpd5lKYO3cucXFxANU+7NR0Tl1pXnrpJR566CEAOnTo0MzRiCrz5s0jNzcXqHwtCCGEEFerN954g9tuu61J13m5r/lE/WzdupWTJ0/SunVr07Qvv/wSRVGadDs//fSTxe+7d+8mJiaGFi1aNOl2mltcXBzr169n6NChpmk//vgjhYWFzRJPTk6O6bNx//79L1nmbUVFBZMnT67WIV1aWkpGRgb79u0jISHhX3lHrhAXQzqLhcmwYcN48cUXKS0t5eOPP2bJkiUAfPTRR9JZbMbFxYU+ffo0dxjCjI2NTY3Pyblz5wDw9/fnrrvusph3pTyPV8s51bJlS1q2bNncYYgLXCsd94qiUFJSgp2dXXOHcsUqLCzEwcGhucMQQohL5uDBg6xYsYIRI0Y02Tpru04UtbvUf3e+/PJLPvjgAwDKy8ubvEOvoKCAlStXVpu+aNEiXnjhhRqX8/X15ddff602/Uq/5po/f75FZ/H8+fObMZrL45lnnjGdN2q1mgcffJARI0ZgZ2fH8ePHWbhwYZNvs+qaVYhrmZShECbe3t706dOHwYMH88Ybb5imp6SkXJLtrVq1itGjRxMeHo6Liwt6vZ6AgADuuusuDh8+bNHW/Dab++67j19//ZU2bdpgb29P3759OXLkCEajkddff52AgADs7e0ZNmyYKZOzivmtS6mpqdx77724u7vj5OTE2LFjSUhIqDNua7WJBgwYwMCBA01tFi5caLWNtdupzG/JuvAC6aOPPiI8PBw7Ozt69uzJxo0ba43t6NGj3HPPPQQEBKDX6/H19eXee++t9603O3fu5K677iIyMhI3Nzd0Oh3e3t6MGDGCv/76q8bjMGDAADZv3ky3bt2ws7Oja9euplucPv30U8LCwrC1taV3794cOnTIYj3mx+XIkSM88cQT+Pj4YG9vz4033sixY8fqjNtaLbqq41qVnRAfH29xnGurX1dSUsJ7771Ht27dcHJywt7entatW/PMM880+FhVnbvm56L5rWAXHssLv3VPSUlh2rRpREREYGNjg4uLC/369ePHH3+s9Rjs37+fIUOG4ODggKenJ//5z38oKyur8djX55a0mmoWGwwGZs6caXrtDRw4sNrzfKEdO3YwZswYfHx80Ov1BAcH89hjj5GammrRriHnZEOMHDnStC87duywmPf000+b5n333XcAHDp0iFGjRuHt7Y1Op8PDw4POnTszZcoU4uPja91WY54bRVGYP38+N9xwA87Oztja2hIZGclzzz1HVlaWRdua3lsWL15Mnz59TO+vvr6+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1pGZmYnVauX77793PH6J0CAf1GoXklI05e5XVV9zAB4eHrRs2dLRr3n//v1kZGTQsmXLMttOHB5Ip1buZOdZeGvRZfoPGMTu3buJj49HLpNh3XeU6AH9SDfkM2XzKnSGgkrFAJCfn8+CBQuYNWsWJpMJs9mMJEnIZDLy8vIqvU59kqzR4efjibPy1hqAVp+l5eex+PhBRq78nnHrfuaX2OPkFBlp4xfI7O792D5uCh/2H0bfBo2rlCguERrkS7o+h78O6LnevyGSBNsOZlX5sWrb999/X+rgVYmioiK+//77Ooio+syfP5+AgADatWtX16EIgiAIgiAI9USVksUbNmzgww8/pEWLFqWub9GihaPfo1D9tBlZmC0WR7/irFwz+45n0/PyLwD4D+yMa0RkXYYoXEXpJGNIL3vVlLs2nIPGdPIKCsnJrXwyqDb16+yNn5dThW/yJQn8vJzo26lqA97Krifx3nvv8e677+Lq6sqqVauYOXMm7dq1o2XLlo72CtfyyCOPMGrUKHr16kVUVBQ9evTg1KlTAHzwwQcMHjyYjh07Xrfi9T//+Q9t2rShffv27Ny5k6lTpxLrBO6t23DwyyfYv+pR7urZ4ZprXE9ISAgvvPAC7du3p0ePHo6+wjfjk08+Yffu3URFRTF69GgWLVpEUFDQTa97talTp9KjRw+io6MBaNasGVarlX79+gH2SuPLly87krUBAQEsWbKE+++/n6ioKLZv385nn31W7tojR46kT58+tG3blj59+jgeA+C+++7D3d2dFi1acP/999OxY8dS9+3evTujR4+mZcuWuLu788wzz5S63cPNhb5338Pyn38qd8Cdj49PlV5zJZYuXcpXX31Fu3bt+Pe//83y5ctLVYeXkMskXnw0nGA/JecTDCzdmMunn37KoEGDaNKkCT7e3qx/+33a+AVy9vhxWvfqQV5xxefMmTMJCwsjKSmJ3r17lzkQ8MYbbzBz5kycnZ3x9PRkzJgxtGnThj///NMxKPBWUmgsIkOfI1pQVINCs5kNF2KZsnkldy//mg8P7eZidib+alceb9uRNaMf5peR4xjXsh1eztXTOzg0yBeLFZLTjJU68JiVe/NnT9SWxx57jOzs7DLX5+bm8thjj9VBRNVnxowZaLVajh07VtehCIIgCIIgCPWEZKtCmaObmxsxMTFERkbi7u7OsWPH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vL29OXDgAP379+fbb79l8+bNTJ8+neLiYkaOHEl2djb79++X3y9d1E8//cSECRO48sorWbduHWVlZUDDaysgIACAK664gkOHDpGbm2v6XHBwMFdccQVQNwhg5MiR+Pj44OrqyhNPPMH8+fMZOnSo/K7ugqqrq/nqq68YNWoUp06dAhpeV/UFPhcXF3bv3m1afvvtt3Ps2DFSUlLw9/fnyiuvBOT6Eg2Vl5fz3//+l2nTpjF+/HjWrFljakV39k1Vub46LykWtyJbW1umTZvGs88+S2lpKUePHmXx4sXyqOpZdDodVVVV6HQ6DAYDVVVV1NbWKh2r3Zg9eza7du1iw4YNODg4KB2n3SksLOTrr7+mpKQEg8HAjh07+L//+z/Gjh2rdLR24eabb+b06dPExMQQExPDyy+/TO/evYmJiZEnHIDvv/+e0tJSDAYD27dv56OPPmLKlClKx2pXZs6cyUcffURWVhalpaW88cYbTJo0SelY7caBAwc4duwYd955p9JR2h1XV1eCg4P55JNPqKmpoby8nM8//1xa4oh243wjiLOyspg/fz4TJkxg4cKFnD59Gr1ez8GDB5k6dSq9evXiX//6F+PGjWP79u1ERkYSFBSEwWDAx8eH3NxcXnnlFX744QcAHn/8cfr27StvhrugjIwMli9fzvTp03n88cf55ptv+M9//gPQoI91/bVx5ZVXUlxczMmTJxu8H6rv6fn777/j4eEB1I3m69mzJ5999hlXX311W31Joh356quvWL16NXFxcXz00UdAw+tKra4r9UydOrXBBOnDhg0jLS3NNBlZTU0NINeXaOiFF17gv//9L3feeSezZ8/miy++4JdffjF9Xq6vzk+Kxa3s448/xtzcHC8vL6666iqefvppmdzlLK+++irW1ta89tprrFixAmtra2bNmqV0rHYhOTmZTz75hOPHj+Pn54ednR12dnYsWLBA6WjthkqlYunSpQQEBODo6Mi9997LE088wezZs5WO1i5YW1vj6elp+uPo6Ii5uTmenp7yphX46KOP8PPzw9HRkfvvv59XX32VW265RelY7cozzzzDiBEjiIiIICQkBFdXV9577z2lY7UbS5cuZeLEiaYXv6Khn376ia1bt+Lp6Ym/vz8ZGRksW7ZM6ViiCzMYDKYC8dkjiOsLLDU1Nbz33nsUFhby2GOPkZ+fz913342ZmRnFxcUEBgZSVVWFm5sbarWaw4cPU1NTw5tvvsmhQ4eIjo5m7NixnD59mv79+wNw22230aNHD2W+YNFmzh7RWf/vXbt2kZqayi233MKkSZN46KGHTEW9+muvnl6vx9bWlrCwMI4fP465ubnpcxqNhvj4ePr06UNISAgAISEhzJgxg9GjR7f2lybagcaur4kTJ/Ltt9/y888/m9qo1Rfw4O+bEMOHD6empobt27ebPufv78+RI0cAsLCwkOuri2vsyZcFCxawZs0aJk+ezFVXXYW1tTW9e/cG6q4tub46P5VRnokSQgghhBBCdFIGg6FBEQXqHrF97rnniImJYcqUKTzyyCNkZ2fTq1cvUlNTsbKyAsDLy4vNmzfz008/kZmZydy5c/H39+fBBx9k165dvPTSS0yaNImysjJSU1OlMNyFGI1GDAbDOYXfert27eLpp59m48aNaDQaAHx8fFi+fDljxoyhtra2QVEYYM2aNbzyyit4enpiY2PDt99+azpWYzf6G7u2RedwsevrbFZWVhw8eJAePXqYrpX6m2Pm5uY899xznDhxghdffJGCggI+/vhj3nzzTYKCgkzHkuura2nK9WU0GlmwYAGfffYZrq6uvP322wwePBhbW1t0Oh1Go1Gur05M/meEEEIIIYQQnVb9m9FDhw7x8MMP8/jjj7Np0ya8vb158803eeWVV9i8eTNGo5FRo0YRExNj2vaKK65gzZo1PPjgg1hYWDBjxgxGjBhBdnY2zz33HAMHDgTqJraWQnHn98/2EfWFlnXr1vH111+bHrmGugKel5dXg0e0p0yZwv/+9z+ABoXi2tpavvvuOx544AEqKyvp06cPzz//fINjwbkjAKXQ0rlcyvUFmNqVXHXVVSxevBj4u22JWq02XWOPP/44kydP5p577uGpp55ixIgRBAYGNjgWyPXV2V3K9WUwGFCpVERFRbF582bee+89vvnmG9MThhqNRq6vTk6jdAAhhBBCCCGEuBz1b2wbG720b98+PvnkE8rLyxk5ciSbNm1izZo1rF27lm7dunH77bezcuVKevbsSUhICEuXLmXIkCFUV1djbm5OZGQkzs7OLFy4kJ9//hl/f39TmwnRNdSPgPtnceOhhx6ioqICMzMzbrjhBtNkuSqVCi8vLwICAli/fj2jRo0CoGfPnqabEZWVlTzxxBO8/fbb2NjYEB4ezrZt20yj8RojbcQ6p0u5vs5W//G9997Lww8/zDvvvGMq4J19fbm4uHDXXXcxceJEtFrteXPI9dU5Nef6qv/3xIkTAQgNDSUhIYHvv/8egIqKCp588km5vjoxKRYLIYQQQgghOqT6wtyFRiip1WoOHjzIlClTmD17NuHh4Xz11Vfk5OSYisX33nsv1tbWzJgxg1tuuYV7772Xo0ePEhQUxMiRI037kYlQO7/60W9Go9F0XanVasrLy/nhhx+wtLRk9OjReHl5mVpFHD16FG9v7wb78fDwYOLEidx5553MmTMHDw8Ptm7dapoU1dramuHDh5uOFRUVZfq3Xq/HzMxMiiudUEtdX/B37+vrr7+em266iY8//pjExEQeeeQR/P39GTZsWIP1tVrtJbW3EB1PS15f//TXX3+Zfn7Z2NiYfn7Vk+urc5GexUIIIYQQQogOQa/Xo1arUalUDXpzrlq1iv379zNp0iQGDx4M/D2aqri4mLfeeouqqireeecdCgoKePTRR7nyyiuZPn06KpWKgIAA3nvvPaZOnUpubi6bNm0iKiqK8PBwhb9i0VbqC7RnKywspLa2lqysLKZPn0737t3RarXs2rWL/fv3k5SURFhYGDU1NedsX399Pvvssxw7doz9+/czdOhQ3n33XXx9fdv6yxMKa+nrq15MTAwffPABX3/9NcOGDePWW29lxowZWFhYyM2GLqQ1rq+CggK2bNnCt99+S0JCAr179+b111/Hx8enLb80oRApFgshhBBCCCHapfpJwM5XKImPj2fu3Lm4uroycOBAdu3axZgxY7jrrrsarPftt9/y888/85///Ac3Nzeef/55ysrKmDNnDgEBAbzxxhv069ePcePGtdWXJtqp0tJSNm3aRHJyMsuXL+eRRx4hNjYWJycnHn/8cf6/vTsPq7LO/z/+PKwGIm5BiooKuYAbi6KSiuaCZiii6dcltRoVbcpSS+2aarIxKxvHbMxJzMzEVCxNE6sJ9wUXxC0kE8QFDRVFxFjP/fuDH3ei1mwBCa/HdfHHOec+9/35XL3snPO+PwtAWFgY/fr1Y8KECTRo0IDFixfTt2/fUhs23bqp06lTp6hTpw41a9a843q/tPmTVE6/db4SExM5evQojz76qPIlv1m+APLy8li9ejX5+fkMHjwYV1fXO66nfFVeWlFaRERERER+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\n"
     },
     "metadata": {}
    }
   ],
   "source": "RES4 = pd.DataFrame([dict(Data=SETS[k]['label'], Source=src, **v) for (k, src), v in REF.items()])\nRES4['Best classical'] = [SETS[k]['cls_name'] for (k, src) in REF]\nRES4 = RES4.rename(columns={'auc_q': 'Projected kernel AUC', 'auc_c': 'Best classical AUC', 'diff': 'Difference', 'lo': 'CI low', 'hi': 'CI high'})\ndisplay(RES4.round(3))\nN_OR = HWS['qae_shots'] * int(np.sum(2 * KS + 1)); MC_ERR = float(np.sqrt(2 / np.pi) * np.sqrt(P4EX * (1 - P4EX) / N_OR))\nROWS4 = []\nfor src, G in AMP.items():\n    for rep in range(G.shape[0]):\n        hits = G[rep] * HWS['qae_shots']\n        m0, m1 = H.mlae(KS, hits, [HWS['qae_shots']] * len(KS)), H.mlae(KS, hits, [HWS['qae_shots']] * len(KS), noise_aware=True)\n        ROWS4.append({'Source': src, 'repeat': rep, 'MLAE error': abs(m0['p'] - P4EX), 'Noise-aware MLAE error': abs(m1['p'] - P4EX), 'Fitted fidelity per call': m1['F'],\n                      'Coherent depth k': int(max([k for k, g_, i_ in zip(KS, G[rep], IDEAL) if abs(g_ - i_) < 0.1] or [0]))})\nAE4 = pd.DataFrame(ROWS4).groupby('Source', sort=False).mean(numeric_only=True).drop(columns='repeat')\nAE4['Monte Carlo error, same oracle calls'] = MC_ERR\ndisplay(AE4.round(5))\nfig, ax = plt.subplots(1, 2, figsize=(13, 3.9))\nB_rows = RES4[RES4['Data'] == SETS['B']['label']]\ncols = [B.NAVY if 'Noiseless' in s else (B.TEAL if 'Rehearsal' in s else B.RED) for s in B_rows['Source']]  # red = measured (hardware or dry run)\nax[0].barh(B_rows['Source'], B_rows['Projected kernel AUC'], color=cols, xerr=None)\nax[0].axvline(B_rows['Best classical AUC'].iloc[0], color=B.AMBER, ls='--', lw=2, label=f\"best classical ({SETS['B']['cls_name']})\")\nax[0].set_xlim(0.4, 1.0); ax[0].invert_yaxis(); ax[0].set_xlabel('Test AUC'); ax[0].set_title(f\"A · quantum-structured data, {len(SETS['B']['ytr'])} train / {len(SETS['B']['yte'])} test\"); ax[0].legend(frameon=False, fontsize=8, loc='lower right')\nax[1].semilogx(SWEEP['e2'], SWEEP['auc_q'], 'o-', color=B.BLUE, lw=2, label='projected kernel, rehearsal')\nax[1].axhline(REF[('B', 'Noiseless projected kernel')]['auc_q'], color=B.NAVY, ls=':', label='noiseless')\nax[1].axhline(REF[('B', 'Noiseless projected kernel')]['auc_c'], color=B.AMBER, ls='--', label='best classical')\nfz = float(np.median(FEZ_CAL['p2'])); ax[1].axvline(fz, color=B.TEAL, lw=1.2); ax[1].text(fz, 0.43, ' IBM Fez', color=B.TEAL, fontsize=8)\nif WK_CAL and WK_CAL.get('median_2q_error'):\n    ax[1].axvline(WK_CAL['median_2q_error'], color=B.RED, lw=1.2); ax[1].text(WK_CAL['median_2q_error'], 0.47, ' Wukong', color=B.RED, fontsize=8)\nfor (k, src), v in REF.items():\n    if k == 'B' and src.startswith(HW_PREFIX):\n        e_ = fz if 'fez' in src.lower() else (WK_CAL or {}).get('median_2q_error', np.nan)\n        ax[1].plot([e_], [v['auc_q']], marker='*', ms=15, ls='none', color=B.RED, label=src)\nax[1].set_ylim(0.4, 1.0); ax[1].set_xlabel('Two-qubit gate error rate (log)'); ax[1].set_ylabel('Test AUC'); ax[1].set_title('How much noise can the advantage take?'); ax[1].legend(frameon=False, fontsize=8)\nplt.tight_layout(); FIG4a = B.savefig('t4_hw_pqk'); plt.show()\nfig, ax = plt.subplots(1, 2, figsize=(13, 3.8))\nkk = np.linspace(0, KS.max(), 300); ax[0].plot(kk, np.sin((2 * kk + 1) * TH4) ** 2, color=B.GRAY, lw=1, label='ideal')\npalette = [B.TEAL, B.BLUE2, B.AMBER, B.RED, B.NAVY, B.BLUE, B.RED]\nfor (src, G), col in zip(AMP.items(), palette):\n    hw = src.startswith(HW_PREFIX)\n    ax[0].plot(KS, G.mean(0), 's-' if hw else 'o-', color=B.RED if hw else col, lw=2.4 if hw else 1.3, label=src)\nax[0].set_xlabel('Grover power k'); ax[0].set_ylabel('P(at least one default), measured'); ax[0].set_title('B · amplitude amplification: ideal vs noisy processors'); ax[0].legend(frameon=False, fontsize=7)\nax[1].bar(range(len(AE4)), AE4['Noise-aware MLAE error'], color=[B.RED if s.startswith(HW_PREFIX) else B.TEAL for s in AE4.index])\nax[1].axhline(MC_ERR, color=B.AMBER, ls='--', lw=2, label=f'Monte Carlo, same {N_OR:,} oracle calls'); ax[1].set_yscale('log')\nax[1].set_xticks(range(len(AE4))); ax[1].set_xticklabels([s.replace('Rehearsal · ', '').replace('Hardware · ', 'HW: ').replace('Dry run · ', 'dry run: ') for s in AE4.index], rotation=18, ha='right', fontsize=7)\nax[1].set_ylabel('Absolute error of the loss probability'); ax[1].set_title('Noise-aware MLAE vs Monte Carlo'); ax[1].legend(frameon=False, fontsize=8)\nplt.tight_layout(); FIG4b = B.savefig('t4_hw_qae'); plt.show()"
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "e38d35bd",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:52:08.034572Z",
     "iopub.status.busy": "2026-10-03T21:52:08.034312Z",
     "iopub.status.idle": "2026-10-03T21:52:08.146237Z",
     "shell.execute_reply": "2026-10-03T21:52:08.144678Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/"
    },
    "id": "e38d35bd",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087283336,
     "user_tz": -180,
     "elapsed": 2097,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "d12783e0-e8c5-4979-bef2-ffc097d5564b"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Rehearsed with device noise; awaiting hardware run\n",
      "• Experiment A (preset 'pilot'): 150 training and 150 test applicants from the quantum-structured data, plus 100 + 100 realistic applicants as a control; three circuits per applicant.\n",
      "• Noiseless projected kernel on these applicants: AUC 0.879 vs 0.638 for the best classical model (Gradient boosting, chosen by cross-validation).\n",
      "• Rehearsal with IBM Fez error rates (live calibration, median two-qubit error 0.0021 on the selected qubits): AUC 0.880, difference +0.241 (95% CI +0.102 to +0.383) — advantage reproduced.\n",
      "• Error-rate sweep: the advantage stays statistically clear at every tested two-qubit error rate up to 4% (the highest tested). The depolarising noise model is likely optimistic — the projected kernel retrains on uniformly shrunk features — while coherent errors, crosstalk and drift are not modelled.\n",
      "• Experiment B (two exposures, exact P = 0.2415): in the IBM Fez noise rehearsal amplification follows the ideal curve up to Grover power k = 4; noise-aware MLAE errs by 0.0005 vs 0.0010 for Monte Carlo with the same 110,000 oracle calls.\n",
      "• Not yet run on hardware: the rehearsals are the prediction. Next: preset 'smoke' (≈0.6 IBM QPU minutes), then 'pilot' (≈6.8).\n"
     ]
    }
   ],
   "source": "_pc = H.pqk_circuit(Q2, 'X'); _pc = _pc.assign_parameters(pqk_values(SETS['B']['Ztr'][:1], BW2, _pc.parameters)[0])\nHW_PQK_REP = B._hw('Track 4 · projected-kernel circuit, one basis (10 qubits)', _pc)\nHW_QAE_REP = B._hw(f\"Track 4 · amplitude-estimation oracle A·Q^{max(HWS['ks'])} (3 qubits)\", QAE_CIRCS[-1])\nnb = REF[('B', 'Noiseless projected kernel')]; rf = REF[('B', 'Rehearsal · IBM Fez error rates')]\nhw_rows = {src: v for (k, src), v in REF.items() if k == 'B' and src.startswith(HW_PREFIX)}\ndef verdict_of(v):\n    return 'advantage reproduced' if v['lo'] > 0 else ('classical ahead' if v['hi'] < 0 else 'inconclusive at this sample size')\nfzA = AE4.loc['Rehearsal · IBM Fez noise model']\nSENT4 = [f\"Experiment A (preset '{PRESET}'): {len(SETS['B']['ytr'])} training and {len(SETS['B']['yte'])} test applicants from the quantum-structured data\"\n         + (f\", plus {len(SETS['A']['ytr'])} + {len(SETS['A']['yte'])} realistic applicants as a control\" if 'A' in SETS else '') + \"; three circuits per applicant.\",\n         f\"Noiseless projected kernel on these applicants: AUC {nb['auc_q']:.3f} vs {nb['auc_c']:.3f} for the best classical model ({SETS['B']['cls_name']}, chosen by cross-validation).\",\n         f\"Rehearsal with IBM Fez error rates ({'live calibration' if IBM_LIVE else 'FakeFez snapshot'}, median two-qubit error {np.median(FEZ_CAL['p2']):.4f} on the selected qubits): AUC {rf['auc_q']:.3f}, \"\n         f\"difference {rf['diff']:+.3f} (95% CI {rf['lo']:+.3f} to {rf['hi']:+.3f}) — {verdict_of(rf)}.\",\n         ((f\"Error-rate sweep: the advantage stays statistically clear at every tested two-qubit error rate up to {CROSS:.0%} (the highest tested). The depolarising noise model is \"\n           f\"likely optimistic — the projected kernel retrains on uniformly shrunk features — while coherent errors, crosstalk and drift are not modelled.\" if CROSS == SWEEP['e2'].max() else\n           f\"Error-rate sweep: the advantage stays statistically clear up to a two-qubit error rate of {CROSS:.1%} at this sample size.\") if CROSS else\n          'Error-rate sweep: the advantage is not statistically clear at any tested error rate at this sample size.'),\n         f\"Experiment B (two exposures, exact P = {P4EX:.4f}): in the IBM Fez noise rehearsal amplification follows the ideal curve up to Grover power k = {fzA['Coherent depth k']:.0f}; \"\n         f\"noise-aware MLAE errs by {fzA['Noise-aware MLAE error']:.4f} vs {MC_ERR:.4f} for Monte Carlo with the same {N_OR:,} oracle calls.\"]\nfor src, v in hw_rows.items():\n    SENT4.append(f\"{src}: projected kernel AUC {v['auc_q']:.3f} vs {v['auc_c']:.3f} classical, difference {v['diff']:+.3f} (95% CI {v['lo']:+.3f} to {v['hi']:+.3f}) — {verdict_of(v)}.\")\nfor (k, src), v in REF.items():\n    if k == 'A' and src.startswith(HW_PREFIX):\n        SENT4.append(f\"Realistic control, {src}: projected kernel {v['auc_q']:.3f} vs classical {v['auc_c']:.3f} — {verdict_of(v)}.\")\nfor src, r in AE4.iterrows():\n    if src.startswith(HW_PREFIX):\n        SENT4.append(f\"{src}, amplitude estimation: coherent up to k = {r['Coherent depth k']:.0f}; noise-aware MLAE error {r['Noise-aware MLAE error']:.4f} vs Monte Carlo {MC_ERR:.4f} at equal oracle calls.\")\nfor (be_, kind), sec in HW_USAGE.items():\n    if sec == sec and sec > 0:\n        SENT4.append(f\"QPU usage on {be_} ({kind}): {sec:.0f} s.\")\nif hw_rows and RUN_MODE == 'dryrun':\n    VERD4 = 'Pipeline dry run on local simulators — not a hardware result'\nelif hw_rows:\n    VERD4 = '; '.join(f\"{src.split('· ')[-1]}: {verdict_of(v)}\" for src, v in hw_rows.items())\nelse:\n    SENT4.append(f\"Not yet run on hardware: the rehearsals are the prediction. Next: preset 'smoke' (≈{BUDGETS['smoke'] / 60:.1f} IBM QPU minutes), then 'pilot' (≈{BUDGETS['pilot'] / 60:.1f}).\")\n    VERD4 = 'Rehearsed with device noise; awaiting hardware run'\nCAV4 = ('Rehearsals model gate and readout errors from calibration data but not idle decoherence, crosstalk or drift; only the hardware run is the test. '\n        'The quantum-structured labels are engineered (Track 2); the realistic control shows what to expect on real credit data.')\nS4 = B.summarise_generic('hw', 'Real hardware: IBM Fez and Origin Wukong', VERD4, SENT4, CAV4,\n                         numbers={'preset': PRESET, 'b_train': len(SETS['B']['ytr']), 'b_test': len(SETS['B']['yte']), 'nl_auc_q': nb['auc_q'], 'nl_auc_c': nb['auc_c'],\n                                  'cls_name': SETS['B']['cls_name'], 'reh_fez_auc': rf['auc_q'], 'reh_fez_diff': rf['diff'], 'reh_fez_lo': rf['lo'], 'reh_fez_hi': rf['hi'],\n                                  'fez_e2': float(np.median(FEZ_CAL['p2'])), 'fez_live': IBM_LIVE, 'crossing': CROSS, 'qpu_min_est': QPU_EST / 60,\n                                  'budget_min': {p: v / 60 for p, v in BUDGETS.items()}, 'hardware_pqk': hw_rows, 'sweep': SWEEP.round(4).to_dict('list'),\n                                  'circuits': int(BUD['Circuits'].sum()), 'shots_total': int(BUD['Total shots'].sum()), 'pqk_2q': PQK_2q,\n                                  'p4': P4EX, 'n_or4': N_OR, 'mc_err4': MC_ERR, 'fez_depth': float(fzA['Coherent depth k']), 'fez_mlae_err': float(fzA['Noise-aware MLAE error']),\n                                  'q2q_fez': Q2Q, 'ks': HWS['ks'], 'amp_curves': {s: G.mean(0).round(4).tolist() for s, G in AMP.items()}, 'ideal': IDEAL.round(4).tolist(),\n                                  'ae': AE4.round(5).reset_index().to_dict('list'), 'usage': {f'{a} {b}': v for (a, b), v in HW_USAGE.items()},\n                                  'calibration': CAL.astype(object).where(CAL.notna(), None).to_dict('records')},\n                         headline=({'value': f\"{list(hw_rows.values())[0]['diff']:+.3f}\", 'label': f\"AUC vs classical on {list(hw_rows)[0].split('· ')[-1]}\"} if hw_rows else\n                                   {'value': f\"{rf['diff']:+.3f}\", 'label': 'AUC vs classical in the IBM Fez noise rehearsal (hardware run pending)'}),\n                         table=RES4.round(4), figures=[FIG4a, FIG4b], context='From simulation to real quantum processors, with the classical model on the same applicants.')\nprint(S4['verdict']); [print('•', t) for t in S4['sentences']];"
  },
  {
   "cell_type": "markdown",
   "id": "42ed396a",
   "metadata": {
    "id": "42ed396a"
   },
   "source": "---\n## Track 5 — The advantage screen KKB can run on its own data\n\nTracks 1 and 2 used the same applicants; only the *rule* behind the label differed, and that alone decided whether quantum helped. The practical question for KKB is\ntherefore not \"is quantum better?\" but \"does **our** risk signal have quantum structure?\". The function below answers it on any table of attributes and outcomes,\ninside KKB's sandbox (no data leaves KKB):\n\n* 10 attributes scaled to [0, 1], up to 2,000 applicants, 5-fold cross-validation;\n* in every fold the projected quantum kernel (bandwidth, γ and C tuned on the training folds) is compared with the **strongest** of logistic regression, RBF-SVM and gradient boosting on that fold (deliberately conservative);\n* verdict \"quantum structure detected\" only if the 95% confidence interval of the AUC difference is above zero.\n\nIt is demonstrated below on the realistic data of Track 1 and the engineered data of Track 2.\n\nThe screen uses the same projected quantum kernel as the hardware runs, so a positive screen can be taken straight to a QPU with Track 4."
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "630b2af6",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:52:08.149699Z",
     "iopub.status.busy": "2026-10-03T21:52:08.149433Z",
     "iopub.status.idle": "2026-10-03T21:53:05.033189Z",
     "shell.execute_reply": "2026-10-03T21:53:05.030923Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 510
    },
    "id": "630b2af6",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087340689,
     "user_tz": -180,
     "elapsed": 56298,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "0b988428-c92d-4810-a06c-b8ac4f32420c"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Screen runtime: 34 s per dataset on this CPU\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                                Data  mean_diff  ci_low  ci_high                     verdict     n\n",
       "0  Track 1 — realistic bureau risk (10 principal ...    -0.0701 -0.0974  -0.0428             Classical ahead  1000\n",
       "1  Track 2 — engineered quantum-structured risk (...     0.2784  0.1933   0.3635  Quantum structure detected  1000"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-069e57a1-e36f-4ad6-b388-0aa6dc52ccb6\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Data</th>\n",
       "      <th>mean_diff</th>\n",
       "      <th>ci_low</th>\n",
       "      <th>ci_high</th>\n",
       "      <th>verdict</th>\n",
       "      <th>n</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Track 1 — realistic bureau risk (10 principal ...</td>\n",
       "      <td>-0.0701</td>\n",
       "      <td>-0.0974</td>\n",
       "      <td>-0.0428</td>\n",
       "      <td>Classical ahead</td>\n",
       "      <td>1000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Track 2 — engineered quantum-structured risk (...</td>\n",
       "      <td>0.2784</td>\n",
       "      <td>0.1933</td>\n",
       "      <td>0.3635</td>\n",
       "      <td>Quantum structure detected</td>\n",
       "      <td>1000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-069e57a1-e36f-4ad6-b388-0aa6dc52ccb6')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-069e57a1-e36f-4ad6-b388-0aa6dc52ccb6 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-069e57a1-e36f-4ad6-b388-0aa6dc52ccb6');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"print(S5['verdict']); [print('\\u2022', t) for t in S5['sentences']];\",\n  \"rows\": 2,\n  \"fields\": [\n    {\n      \"column\": \"Data\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Track 2 \\u2014 engineered quantum-structured risk (10 attributes)\",\n          \"Track 1 \\u2014 realistic bureau risk (10 principal components)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"mean_diff\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.24642671324351179,\n        \"min\": -0.0701,\n        \"max\": 0.2784,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.2784,\n          -0.0701\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"ci_low\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.20555594129092936,\n        \"min\": -0.0974,\n        \"max\": 0.1933,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.1933,\n          -0.0974\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"ci_high\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.28729748519609427,\n        \"min\": -0.0428,\n        \"max\": 0.3635,\n        \"num_unique_values\": 2,\n        \"samples\": [\n          0.3635,\n          -0.0428\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"verdict\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 2,\n        \"samples\": [\n          \"Quantum structure detected\",\n          \"Classical ahead\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"n\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0,\n        \"min\": 1000,\n        \"max\": 1000,\n        \"num_unique_values\": 1,\n        \"samples\": [\n          1000\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<Figure size 836x286 with 1 Axes>"
      ],
      "image/png": "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hrFDoZfUw9gY7G9cDfsbV8PD2Bhjh0NERKR6THCIiIiIiEg1mOAQEREREZFq8HdwiIgMqISpGazKV1SGiYiIyLCY4BARGZDWzR11f/zV2GEQERG9MthEjYiIiIiIVIMJDhERERERqQabqBERGdDjhHhcXbMCAFC65zsws3cwckRERETqxgSHiMiAHicl4sqKJQCAku07M8EhIiIyMDZRIyIiIiIi1WCCQ0REREREqsEEh4iIiIiIVIMJDhERERERqQYTHCIiIiIiUg0mOEREREREpBrsJpqIyIA0Gg1KaHXKMBERERkWExwiIgPSlS6DZmHHjB0GERHRK4NN1IiIiIiISDWY4BARERERkWqwiRoRkQGlP0jGnX2/AwCcW7aFqZW1kSMiIiJSNyY4REQGlHbvLv6Z/n8AANsatZjgEBERGRibqBERERERkWowwSEiIiIiItVggkNERERERKrBBIeIiIiIiFSDCQ4REREREakGExwiIiIiIlINJjhERERERKQa/B0cIiID0rl5oOGmPQAAcwcnI0dDRESkfkxwiIgMSGNqCguXksYOg4iI6JXBJmpERERERKQavINDRGRAGY9SkfxPBADAumIVmFhojRwRERGRujHBISIyoEe3buLUB+8AAOr9vBWWnl5GjoiIiEjd2ESNiIiIiIhUgwkOERERERGpBhMcIiIiIiJSDSY4RERERESkGkxwiIiIiIhINZjgEBERERGRajDBISIiIiIi1eDv4BARGZCFiytqfrNUGSYiIiLDYoJDRGRAJlod7GvXN3YYRERErww2USMiIqJXWq+g9egVtN7YYRC9VF7k84Z3cIiIDEjS0/E4KREAYGZjC40pP3aJiIgMiXdwiIgMKCXuGv5s3xx/tm+OlLhrxg6HiIhI9ZjgEBERERGRarCtBBERERG9UB6mPMbmPRfw2+8XcDchBU72OnRsWwEd2lSApc7M2OHRC+6FvIPTsmVLhISEGDsMUpnz589Do9EYOwwiIiLKx6XYeLwxYBUmzt+Pv8/G4XJsAv4+G4eJ8/fjjQGrcCk23tgh0guuSAmOtbW18jIxMYFWq1Xez5gxw1Ax5mv06NGoUKECbGxs4Ovri/nz5xsljv+qf//++Oyzz4wdhkKj0eD8+fMGW35wcDB69uxpsOUTERHRy+dhymMMGP0bbt15CAAQgd7fW3ceYsDo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AbJ27Vq9cdu3bxdvb29xdnaWGTNm5BuLyJP90qZNG7G1tRVLS0upVq2aBAcHK+fss3QTPWnSpBw/I3Dr1i0xNTUVBweHHL0WZmZmKg/hm5mZiaurq7Rv316OHDkiIoXr0EPkSWcdDRo00PtMmDlzZoFdeed2PhT1cywxMVF69eolOp1O3Nzc5Ouvv9brbGPDhg1Sv359sbGxEWtra2natKleb5lxcXFibm5e5N4GKSeNyFON04mIntHo0aOxePFihIWFKT9IR/S87Ny5E2+88QZu3rxZpKYm9HITEdSrVw9jx45V7ry8yPr37w8ABrv7Q+o1fvx43L59G4sXLzZ2KC89NlEjoudm9uzZqFChAv7880/Url1br0cdoqL69ddfYW9vj3LlyuGff/7B0KFD8eabbzK5ecVoNBosWbIE58+fN3YoBRIR7N+/HwcOHDB2KPQScnJywrBhw4wdhirwDg4REb2Qli1bhunTp+Pq1atwcXHBG2+8gdmzZys9cxEREeWGCQ4REREREakGu4kmIiIiIiLVYIJDRERERESqwQSHiIiIiIhUgwkOERERERGpBhMcIiIiIiJSDSY4RERERESkGkxwiIiIiIhINZjgEBERERGRajDBISIiIiIi1fh/PlS2xJFKlzYAAAAASUVORK5CYII=\n"
     },
     "metadata": {}
    },
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Ready to run in the KKB sandbox\n",
      "• The screen compares a tuned projected quantum kernel with the strongest classical model on every cross-validation fold (1,000 applicants, 5 folds).\n",
      "• Realistic bureau risk (Track 1 data): mean AUC difference -0.070 (95% CI -0.097 to -0.043) — classical ahead.\n",
      "• Engineered quantum-structured risk (Track 2 data): +0.278 (95% CI +0.193 to +0.364) — quantum structure detected.\n",
      "• The screen separates the two cases correctly and takes about 34 seconds per dataset (1,000 applicants) on an ordinary CPU; run on KKB data in KKB's sandbox it gives an evidence-based yes/no without data leaving KKB.\n"
     ]
    }
   ],
   "source": "def advantage_screen(Z, y, n=1000, folds=5, seed=7, bws=(0.3, 0.5, 1.0), gammas=(0.5, 1, 2, 4, 8), Cs=(1, 10, 100)):\n    rr = np.random.default_rng(seed); idx = rr.choice(len(y), min(n, len(y)), replace=False); Z, y = np.asarray(Z)[idx], np.asarray(y)[idx]\n    Fb = {bw: H.bloch_features(Z, bw) for bw in bws}\n    rows = []\n    for f, (a, b) in enumerate(StratifiedKFold(folds, shuffle=True, random_state=seed).split(Z, y)):\n        best = (-1, None, None)\n        for bw in bws:\n            cv = H.pqk_cv(Fb[bw][a], y[a], gammas=gammas, Cs=Cs, folds=3, seed=seed)\n            best = max(best, (cv['cv_auc'], bw, cv))\n        _, bw, cv = best\n        q = roc_auc_score(y[b], H.pqk_scores(Fb[bw][a], y[a], Fb[bw][b], cv['gamma'], cv['C']))\n        cl = {'Logistic regression': GridSearchCV(LogisticRegression(max_iter=3000, class_weight='balanced'), {'C': [0.01, 0.1, 1, 10]}, scoring='roc_auc', cv=3).fit(Z[a], y[a]).decision_function(Z[b]),\n              'RBF-SVM': GridSearchCV(SVC(class_weight='balanced'), {'C': [1, 10, 100], 'gamma': [0.3, 1, 3, 10]}, scoring='roc_auc', cv=3).fit(Z[a], y[a]).decision_function(Z[b]),\n              'Gradient boosting': GridSearchCV(HistGradientBoostingClassifier(random_state=7), {'learning_rate': [0.05, 0.1], 'max_depth': [3, None]}, scoring='roc_auc', cv=3).fit(Z[a], y[a]).predict_proba(Z[b])[:, 1]}\n        ca = {k: roc_auc_score(y[b], v) for k, v in cl.items()}; bk = max(ca, key=ca.get)\n        rows.append({'fold': f + 1, 'quantum AUC': q, 'strongest classical AUC': ca[bk], 'strongest classical': bk, 'difference': q - ca[bk], 'bandwidth': bw})\n    R = pd.DataFrame(rows); d = R['difference']; half = 2.776 * d.std(ddof=1) / np.sqrt(len(d))\n    verdict = 'Quantum structure detected' if d.mean() - half > 0 else ('Classical ahead' if d.mean() + half < 0 else 'No evidence of quantum structure')\n    return R, {'mean_diff': float(d.mean()), 'ci_low': float(d.mean() - half), 'ci_high': float(d.mean() + half), 'verdict': verdict, 'n': len(y)}\nt0 = time.perf_counter()\nZA, _, _ = B.angle_features(XI[POOL1], XI[POOL1], 10)\nSCR_A, RES_A = advantage_screen(ZA, YALL[POOL1])\nSCR_B, RES_B = advantage_screen(Z2[POOL2], ypool2); T_SCREEN = (time.perf_counter() - t0) / 2\nprint(f\"Screen runtime: {T_SCREEN:.0f} s per dataset on this CPU\")\nSCREEN = pd.DataFrame([dict(Data='Track 1 — realistic bureau risk (10 principal components)', **{k: v for k, v in RES_A.items()}),\n                       dict(Data='Track 2 — engineered quantum-structured risk (10 attributes)', **{k: v for k, v in RES_B.items()})])\ndisplay(SCREEN.round(4))\nfig, ax = plt.subplots(figsize=(7.6, 2.6))\nfor i, (R_, lab) in enumerate([(RES_A, 'Track 1 · realistic'), (RES_B, 'Track 2 · quantum-structured')]):\n    ax.errorbar(R_['mean_diff'], i, xerr=[[R_['mean_diff'] - R_['ci_low']], [R_['ci_high'] - R_['mean_diff']]], fmt='o', color=[B.GRAY, B.BLUE][i], capsize=6, lw=2)\nax.axvline(0, color=B.RED, ls='--'); ax.set_yticks([0, 1]); ax.set_yticklabels(['Track 1 · realistic', 'Track 2 · quantum-structured']); ax.set_ylim(-0.6, 1.6)\nax.set_xlabel('Quantum AUC − strongest classical AUC (mean, 95% CI over 5 folds)'); ax.set_title('Advantage screen'); plt.tight_layout(); FIG5 = B.savefig('t4_screen'); plt.show()\nS5 = B.summarise_generic('screen', 'Advantage screen for KKB data', 'Ready to run in the KKB sandbox',\n                         [f\"The screen compares a tuned projected quantum kernel with the strongest classical model on every cross-validation fold ({RES_A['n']:,} applicants, 5 folds).\",\n                          f\"Realistic bureau risk (Track 1 data): mean AUC difference {RES_A['mean_diff']:+.3f} (95% CI {RES_A['ci_low']:+.3f} to {RES_A['ci_high']:+.3f}) — {RES_A['verdict'].lower()}.\",\n                          f\"Engineered quantum-structured risk (Track 2 data): {RES_B['mean_diff']:+.3f} (95% CI {RES_B['ci_low']:+.3f} to {RES_B['ci_high']:+.3f}) — {RES_B['verdict'].lower()}.\",\n                          f\"The screen separates the two cases correctly and takes about {T_SCREEN:.0f} seconds per dataset (1,000 applicants) on an ordinary CPU; run on KKB data in KKB's sandbox it gives an evidence-based yes/no without data leaving KKB.\"],\n                         'The screen tests one feature-map family (ZZ, 10 qubits, projected kernel); a negative result rules out this family, not every quantum model. Any positive result must be repeated on a blind out-of-time vintage and then on hardware (Track 4).',\n                         numbers={'a_diff': RES_A['mean_diff'], 'a_lo': RES_A['ci_low'], 'a_hi': RES_A['ci_high'], 'a_verdict': RES_A['verdict'],\n                                  'b_diff': RES_B['mean_diff'], 'b_lo': RES_B['ci_low'], 'b_hi': RES_B['ci_high'], 'b_verdict': RES_B['verdict'], 'n': RES_A['n'], 'screen_s': T_SCREEN},\n                         headline={'value': 'Yes / No', 'label': 'evidence-based answer on KKB data, inside the KKB sandbox'},\n                         table=SCREEN.round(4), figures=[FIG5], context='Turning the stress-test into a decision tool.')\nprint(S5['verdict']); [print('•', t) for t in S5['sentences']];"
  },
  {
   "cell_type": "markdown",
   "id": "ee7e332b",
   "metadata": {
    "id": "ee7e332b"
   },
   "source": "---\n## Hardware readiness — what a run on today's IBM hardware would face"
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "85f6797f",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:53:05.036757Z",
     "iopub.status.busy": "2026-10-03T21:53:05.036473Z",
     "iopub.status.idle": "2026-10-03T21:53:05.062408Z",
     "shell.execute_reply": "2026-10-03T21:53:05.060529Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 236
    },
    "id": "85f6797f",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087347640,
     "user_tz": -180,
     "elapsed": 8004,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "e1890e1f-0533-4179-a6bc-bd512b8a631d"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                             Circuit  Qubits  Two-qubit gates (IBM Heron)  Est. success probability\n",
       "0  Realistic bureau data: scorecard and gradient ...      10                           36              8.232866e-01\n",
       "1           Track 3 credit-risk oracle A (21 qubits)      21                         1206              7.074599e-03\n",
       "2           Track 3 one Grover iterate Q (21 qubits)      21                         9949              2.257283e-18\n",
       "3   Track 3 deepest IQAE circuit A·Q^173 (21 qubits)      21                      1722383              0.000000e+00\n",
       "4  Track 4 · projected-kernel circuit, one basis ...      10                           36              8.213805e-01\n",
       "5  Track 4 · amplitude-estimation oracle A·Q^8 (3...       3                          158              6.282528e-01"
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-fc315ed3-37f7-4a3a-8674-0ddd96f3dba3\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Circuit</th>\n",
       "      <th>Qubits</th>\n",
       "      <th>Two-qubit gates (IBM Heron)</th>\n",
       "      <th>Est. success probability</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Realistic bureau data: scorecard and gradient ...</td>\n",
       "      <td>10</td>\n",
       "      <td>36</td>\n",
       "      <td>8.232866e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Track 3 credit-risk oracle A (21 qubits)</td>\n",
       "      <td>21</td>\n",
       "      <td>1206</td>\n",
       "      <td>7.074599e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Track 3 one Grover iterate Q (21 qubits)</td>\n",
       "      <td>21</td>\n",
       "      <td>9949</td>\n",
       "      <td>2.257283e-18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Track 3 deepest IQAE circuit A·Q^173 (21 qubits)</td>\n",
       "      <td>21</td>\n",
       "      <td>1722383</td>\n",
       "      <td>0.000000e+00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Track 4 · projected-kernel circuit, one basis ...</td>\n",
       "      <td>10</td>\n",
       "      <td>36</td>\n",
       "      <td>8.213805e-01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>Track 4 · amplitude-estimation oracle A·Q^8 (3...</td>\n",
       "      <td>3</td>\n",
       "      <td>158</td>\n",
       "      <td>6.282528e-01</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-fc315ed3-37f7-4a3a-8674-0ddd96f3dba3')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-fc315ed3-37f7-4a3a-8674-0ddd96f3dba3 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-fc315ed3-37f7-4a3a-8674-0ddd96f3dba3');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "  <div id=\"id_8c727c3b-b24d-4f16-b690-60ab51d8a9d5\">\n",
       "    <style>\n",
       "      .colab-df-generate {\n",
       "        background-color: #E8F0FE;\n",
       "        border: none;\n",
       "        border-radius: 50%;\n",
       "        cursor: pointer;\n",
       "        display: none;\n",
       "        fill: #1967D2;\n",
       "        height: 32px;\n",
       "        padding: 0 0 0 0;\n",
       "        width: 32px;\n",
       "      }\n",
       "\n",
       "      .colab-df-generate:hover {\n",
       "        background-color: #E2EBFA;\n",
       "        box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "        fill: #174EA6;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate {\n",
       "        background-color: #3B4455;\n",
       "        fill: #D2E3FC;\n",
       "      }\n",
       "\n",
       "      [theme=dark] .colab-df-generate:hover {\n",
       "        background-color: #434B5C;\n",
       "        box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "        filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "        fill: #FFFFFF;\n",
       "      }\n",
       "    </style>\n",
       "    <button class=\"colab-df-generate\" onclick=\"generateWithVariable('HW')\"\n",
       "            title=\"Generate code using this dataframe.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
       "       width=\"24px\">\n",
       "    <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "    <script>\n",
       "      (() => {\n",
       "      const buttonEl =\n",
       "        document.querySelector('#id_8c727c3b-b24d-4f16-b690-60ab51d8a9d5 button.colab-df-generate');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      buttonEl.onclick = () => {\n",
       "        google.colab.notebook.generateWithVariable('HW');\n",
       "      }\n",
       "      })();\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "variable_name": "HW",
       "summary": "{\n  \"name\": \"HW\",\n  \"rows\": 6,\n  \"fields\": [\n    {\n      \"column\": \"Circuit\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 6,\n        \"samples\": [\n          \"Realistic bureau data: scorecard and gradient boosting vs a quantum kernel\",\n          \"Track 3 credit-risk oracle A (21 qubits)\",\n          \"Track 4 \\u00b7 amplitude-estimation oracle A\\u00b7Q^8 (3 qubits)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Qubits\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 7,\n        \"min\": 3,\n        \"max\": 21,\n        \"num_unique_values\": 3,\n        \"samples\": [\n          10,\n          21,\n          3\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Two-qubit gates (IBM Heron)\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 702240,\n        \"min\": 36,\n        \"max\": 1722383,\n        \"num_unique_values\": 5,\n        \"samples\": [\n          1206,\n          158,\n          9949\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Est. success probability\",\n      \"properties\": {\n        \"dtype\": \"number\",\n        \"std\": 0.4197195472338882,\n        \"min\": 0.0,\n        \"max\": 0.8232865746579181,\n        \"num_unique_values\": 6,\n        \"samples\": [\n          0.8232865746579181,\n          0.007074598728473811,\n          0.6282527785063178\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    }
   ],
   "source": "HW = pd.DataFrame(B.HARDWARE)[['circuit', 'qubits', 'two_qubit_gates', 'esp']].rename(columns={'circuit': 'Circuit', 'qubits': 'Qubits', 'two_qubit_gates': 'Two-qubit gates (IBM Heron)', 'esp': 'Est. success probability'})\ndisplay(HW)"
  },
  {
   "cell_type": "markdown",
   "id": "15087aca",
   "metadata": {
    "id": "15087aca"
   },
   "source": "---\n## Narrator Engine — executive Word report and machine-readable results\nCollects every track summary above and writes the executive report (`.docx`) and `results.json`. Change any parameter, re-run, and both update."
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "4ab54c91",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:53:05.068683Z",
     "iopub.status.busy": "2026-10-03T21:53:05.068434Z",
     "iopub.status.idle": "2026-10-03T21:53:05.475577Z",
     "shell.execute_reply": "2026-10-03T21:53:05.474539Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 34
    },
    "id": "4ab54c91",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087367092,
     "user_tz": -180,
     "elapsed": 15460,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "f0f5751b-6b47-46af-afa2-d88a5f254018"
   },
   "outputs": [
    {
     "output_type": "stream",
     "name": "stdout",
     "text": [
      "Report written: KKB_Quantum_Advantage_HW_Report.docx\n"
     ]
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ],
      "application/javascript": [
       "\n",
       "    async function download(id, filename, size) {\n",
       "      if (!google.colab.kernel.accessAllowed) {\n",
       "        return;\n",
       "      }\n",
       "      const div = document.createElement('div');\n",
       "      const label = document.createElement('label');\n",
       "      label.textContent = `Downloading \"${filename}\": `;\n",
       "      div.appendChild(label);\n",
       "      const progress = document.createElement('progress');\n",
       "      progress.max = size;\n",
       "      div.appendChild(progress);\n",
       "      document.body.appendChild(div);\n",
       "\n",
       "      const buffers = [];\n",
       "      let downloaded = 0;\n",
       "\n",
       "      const channel = await google.colab.kernel.comms.open(id);\n",
       "      // Send a message to notify the kernel that we're ready.\n",
       "      channel.send({})\n",
       "\n",
       "      for await (const message of channel.messages) {\n",
       "        // Send a message to notify the kernel that we're ready.\n",
       "        channel.send({})\n",
       "        if (message.buffers) {\n",
       "          for (const buffer of message.buffers) {\n",
       "            buffers.push(buffer);\n",
       "            downloaded += buffer.byteLength;\n",
       "            progress.value = downloaded;\n",
       "          }\n",
       "        }\n",
       "      }\n",
       "      const blob = new Blob(buffers, {type: 'application/binary'});\n",
       "      const a = document.createElement('a');\n",
       "      a.href = window.URL.createObjectURL(blob);\n",
       "      a.download = filename;\n",
       "      div.appendChild(a);\n",
       "      a.click();\n",
       "      div.remove();\n",
       "    }\n",
       "  "
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ],
      "application/javascript": [
       "download(\"download_bc0cf393-37d2-4dcd-9d6a-95ec42f2f731\", \"KKB_Quantum_Advantage_HW_Report.docx\", 943370)"
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ],
      "application/javascript": [
       "\n",
       "    async function download(id, filename, size) {\n",
       "      if (!google.colab.kernel.accessAllowed) {\n",
       "        return;\n",
       "      }\n",
       "      const div = document.createElement('div');\n",
       "      const label = document.createElement('label');\n",
       "      label.textContent = `Downloading \"${filename}\": `;\n",
       "      div.appendChild(label);\n",
       "      const progress = document.createElement('progress');\n",
       "      progress.max = size;\n",
       "      div.appendChild(progress);\n",
       "      document.body.appendChild(div);\n",
       "\n",
       "      const buffers = [];\n",
       "      let downloaded = 0;\n",
       "\n",
       "      const channel = await google.colab.kernel.comms.open(id);\n",
       "      // Send a message to notify the kernel that we're ready.\n",
       "      channel.send({})\n",
       "\n",
       "      for await (const message of channel.messages) {\n",
       "        // Send a message to notify the kernel that we're ready.\n",
       "        channel.send({})\n",
       "        if (message.buffers) {\n",
       "          for (const buffer of message.buffers) {\n",
       "            buffers.push(buffer);\n",
       "            downloaded += buffer.byteLength;\n",
       "            progress.value = downloaded;\n",
       "          }\n",
       "        }\n",
       "      }\n",
       "      const blob = new Blob(buffers, {type: 'application/binary'});\n",
       "      const a = document.createElement('a');\n",
       "      a.href = window.URL.createObjectURL(blob);\n",
       "      a.download = filename;\n",
       "      div.appendChild(a);\n",
       "      a.click();\n",
       "      div.remove();\n",
       "    }\n",
       "  "
      ]
     },
     "metadata": {}
    },
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "<IPython.core.display.Javascript object>"
      ],
      "application/javascript": [
       "download(\"download_e30ab26d-b603-4307-85ca-f090e0585989\", \"results.json\", 26168)"
      ]
     },
     "metadata": {}
    }
   ],
   "source": "META = {'id': 'kkb_hw', 'short': 'KKB', 'client': 'Kredi Kayıt Bürosu (KKB)', 'sector': 'credit bureau', 'intro': \"The KKB stress-test showed in simulation where a quantum method beats the classical one and where it does not. This edition takes the experiments to two real quantum computers: IBM Fez (IBM Heron r2, 156 qubits) and Origin Wukong (Origin Quantum superconducting processor). Every hardware experiment is first rehearsed with the device's own error rates, then submitted within a stated QPU budget, and the results flow into the same tables, figures and report. The quantum model is switched to the projected quantum kernel, which needs three circuits per applicant instead of one per pair of applicants — the difference between a few minutes and several days of QPU time. All data are synthetic; no KKB or member-bank record is used.\", 'report_title': 'KKB — Quantum Advantage Stress-Test on Real Hardware: Executive Report', 'report_subtitle': 'Simulation, device-noise rehearsal and runs on IBM Fez and Origin Wukong: where a quantum method wins, where it does not, and what the hardware does to it'}\nMETA['logo'] = 'bvk_logo.png'\nREPORT = 'KKB_Quantum_Advantage_HW_Report.docx'\nRES = B.write_outputs(META, REPORT, 'results.json', next_steps=['Run the smoke preset on IBM Fez and Origin Wukong (under one minute of QPU time each) to validate access, queues and readout mitigation.', 'Run the pilot preset (≈7 QPU minutes on IBM Fez): the first hardware test of whether the simulated advantage on quantum-structured data survives real noise.', 'In parallel, run the Track 5 advantage screen on KKB data inside the KKB sandbox; only a positive screen justifies taking KKB data to a QPU.', 'Keep the gradient-boosting / scorecard stack as champion for scoring; there is no evidence of quantum structure in realistic bureau risk.', 'Use the 3-qubit amplitude-estimation runs to track hardware progress: the Grover depth that still carries signal is the honest progress metric for portfolio risk.'], method_notes=['All data are synthetic (seeded generator in the notebook): 100,000 applicants, 2024 development and 2025 out-of-time vintages, 39 bureau-style attributes, non-linear default process with interactions, a 2025 sector shock, structural and informative missingness and data-entry outliers. No real person, KKB or bank record is represented.', 'Track 2 labels are engineered: a \"quantum-structured\" risk signal defined by the projected quantum kernel of a 10-qubit ZZ feature map and six archetype applicants. It is a stress-test of the mechanism, not a claim about how credit risk behaves.', \"Projected quantum kernel (Huang et al. 2021): each applicant's circuit is measured in the X, Y and Z bases; the 30 single-qubit expectation values feed a Gaussian kernel. Readout errors are corrected per qubit from all-0 / all-1 calibration circuits (IBM) or by the vendor correction (Origin).\", 'Rehearsal: Monte-Carlo Pauli-trajectory simulation with two-qubit and one-qubit depolarising errors set from the device calibration (IBM Fez: live if credentials are given, otherwise the FakeFez snapshot), readout errors, finite shots and the same mitigation as on hardware; cross-checked against Qiskit Aer density-matrix simulation. Idle decoherence and crosstalk are not modelled.', 'Track 3: loss model of Egger et al. (2021) — one systematic factor on 3 qubits, six obligors, weighted adder and comparator; IQAE (Grinko et al. 2021) vs Monte Carlo at equal oracle calls. The 49,720-loan book uses model PDs from Track 1, balances as exposure, 45% LGD (30% for mortgage holders) and a seven-sector factor model.', 'Hardware amplitude estimation: two obligors and a two-point systematic factor (3 qubits); Grover powers k measured on the QPU; maximum-likelihood amplitude estimation (Suzuki et al. 2020) with and without a fitted decay (Tanaka et al. 2021).'])\nprint('Report written:', REPORT)\ntry:\n    from google.colab import files  # offer the downloads in Colab\n    files.download(REPORT); files.download('results.json')\nexcept Exception:\n    pass"
  },
  {
   "cell_type": "markdown",
   "id": "c43c1f37",
   "metadata": {
    "id": "c43c1f37"
   },
   "source": "## Summary"
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "3613a5af",
   "metadata": {
    "execution": {
     "iopub.execute_input": "2026-10-03T21:53:05.478226Z",
     "iopub.status.busy": "2026-10-03T21:53:05.477959Z",
     "iopub.status.idle": "2026-10-03T21:53:05.491621Z",
     "shell.execute_reply": "2026-10-03T21:53:05.490214Z"
    },
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 205
    },
    "id": "3613a5af",
    "executionInfo": {
     "status": "ok",
     "timestamp": 1791087367620,
     "user_tz": -180,
     "elapsed": 256,
     "user": {
      "displayName": "Joseph Volkan ÖZCAN",
      "userId": "11389530967736397480"
     }
    },
    "outputId": "350f09db-934d-465b-dc78-5a89aa917504"
   },
   "outputs": [
    {
     "output_type": "display_data",
     "data": {
      "text/plain": [
       "                                               Track                                            Verdict                                           Headline\n",
       "0  Realistic bureau data: scorecard and gradient ...                                             Parity    -0.003 — AUC vs best classical (0.846 vs 0.849)\n",
       "1  Quantum-structured risk signal: projected quan...  Quantum ahead — on engineered quantum-structur...  +0.269 — AUC vs best classical on quantum-stru...\n",
       "2  Portfolio tail risk: amplitude estimation vs M...  Quadratic speed-up in oracle calls (noiseless)...  13× — lower error than Monte Carlo at equal or...\n",
       "3           Real hardware: IBM Fez and Origin Wukong  Rehearsed with device noise; awaiting hardware...  +0.241 — AUC vs classical in the IBM Fez noise...\n",
       "4                      Advantage screen for KKB data                    Ready to run in the KKB sandbox  Yes / No — evidence-based answer on KKB data, ..."
      ],
      "text/html": [
       "\n",
       "  <div id=\"df-5998dbdc-f9bd-41c5-8b6b-d44906539cf7\" class=\"colab-df-container\">\n",
       "    <div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Track</th>\n",
       "      <th>Verdict</th>\n",
       "      <th>Headline</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Realistic bureau data: scorecard and gradient ...</td>\n",
       "      <td>Parity</td>\n",
       "      <td>-0.003 — AUC vs best classical (0.846 vs 0.849)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Quantum-structured risk signal: projected quan...</td>\n",
       "      <td>Quantum ahead — on engineered quantum-structur...</td>\n",
       "      <td>+0.269 — AUC vs best classical on quantum-stru...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Portfolio tail risk: amplitude estimation vs M...</td>\n",
       "      <td>Quadratic speed-up in oracle calls (noiseless)...</td>\n",
       "      <td>13× — lower error than Monte Carlo at equal or...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Real hardware: IBM Fez and Origin Wukong</td>\n",
       "      <td>Rehearsed with device noise; awaiting hardware...</td>\n",
       "      <td>+0.241 — AUC vs classical in the IBM Fez noise...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Advantage screen for KKB data</td>\n",
       "      <td>Ready to run in the KKB sandbox</td>\n",
       "      <td>Yes / No — evidence-based answer on KKB data, ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>\n",
       "    <div class=\"colab-df-buttons\">\n",
       "\n",
       "  <div class=\"colab-df-container\">\n",
       "    <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-5998dbdc-f9bd-41c5-8b6b-d44906539cf7')\"\n",
       "            title=\"Convert this dataframe to an interactive table.\"\n",
       "            style=\"display:none;\">\n",
       "\n",
       "  <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
       "    <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
       "  </svg>\n",
       "    </button>\n",
       "\n",
       "  <style>\n",
       "    .colab-df-container {\n",
       "      display:flex;\n",
       "      gap: 12px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert {\n",
       "      background-color: #E8F0FE;\n",
       "      border: none;\n",
       "      border-radius: 50%;\n",
       "      cursor: pointer;\n",
       "      display: none;\n",
       "      fill: #1967D2;\n",
       "      height: 32px;\n",
       "      padding: 0 0 0 0;\n",
       "      width: 32px;\n",
       "    }\n",
       "\n",
       "    .colab-df-convert:hover {\n",
       "      background-color: #E2EBFA;\n",
       "      box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
       "      fill: #174EA6;\n",
       "    }\n",
       "\n",
       "    .colab-df-buttons div {\n",
       "      margin-bottom: 4px;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert {\n",
       "      background-color: #3B4455;\n",
       "      fill: #D2E3FC;\n",
       "    }\n",
       "\n",
       "    [theme=dark] .colab-df-convert:hover {\n",
       "      background-color: #434B5C;\n",
       "      box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
       "      filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
       "      fill: #FFFFFF;\n",
       "    }\n",
       "  </style>\n",
       "\n",
       "    <script>\n",
       "      const buttonEl =\n",
       "        document.querySelector('#df-5998dbdc-f9bd-41c5-8b6b-d44906539cf7 button.colab-df-convert');\n",
       "      buttonEl.style.display =\n",
       "        google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
       "\n",
       "      async function convertToInteractive(key) {\n",
       "        const element = document.querySelector('#df-5998dbdc-f9bd-41c5-8b6b-d44906539cf7');\n",
       "        const dataTable =\n",
       "          await google.colab.kernel.invokeFunction('convertToInteractive',\n",
       "                                                    [key], {});\n",
       "        if (!dataTable) return;\n",
       "\n",
       "        const docLinkHtml = 'Like what you see? Visit the ' +\n",
       "          '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
       "          + ' to learn more about interactive tables.';\n",
       "        element.innerHTML = '';\n",
       "        dataTable['output_type'] = 'display_data';\n",
       "        await google.colab.output.renderOutput(dataTable, element);\n",
       "        const docLink = document.createElement('div');\n",
       "        docLink.innerHTML = docLinkHtml;\n",
       "        element.appendChild(docLink);\n",
       "      }\n",
       "    </script>\n",
       "  </div>\n",
       "\n",
       "\n",
       "    </div>\n",
       "  </div>\n"
      ],
      "application/vnd.google.colaboratory.intrinsic+json": {
       "type": "dataframe",
       "summary": "{\n  \"name\": \"display(pd\",\n  \"rows\": 5,\n  \"fields\": [\n    {\n      \"column\": \"Track\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Quantum-structured risk signal: projected quantum kernel vs classical learners\",\n          \"Advantage screen for KKB data\",\n          \"Portfolio tail risk: amplitude estimation vs Monte Carlo\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Verdict\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"Quantum ahead \\u2014 on engineered quantum-structured data only\",\n          \"Ready to run in the KKB sandbox\",\n          \"Quadratic speed-up in oracle calls (noiseless); needs fault-tolerant hardware\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    },\n    {\n      \"column\": \"Headline\",\n      \"properties\": {\n        \"dtype\": \"string\",\n        \"num_unique_values\": 5,\n        \"samples\": [\n          \"+0.269 \\u2014 AUC vs best classical on quantum-structured data (0.933 vs 0.664, n=2,000)\",\n          \"Yes / No \\u2014 evidence-based answer on KKB data, inside the KKB sandbox\",\n          \"13\\u00d7 \\u2014 lower error than Monte Carlo at equal oracle calls (noiseless, 21-qubit credit-risk circuit)\"\n        ],\n        \"semantic_type\": \"\",\n        \"description\": \"\"\n      }\n    }\n  ]\n}"
      }
     },
     "metadata": {}
    }
   ],
   "source": "display(pd.DataFrame([{'Track': t['title'], 'Verdict': t['verdict'], 'Headline': f\"{t['headline']['value']} — {t['headline']['label']}\"} for t in B.TRACKS]))"
  }
 ],
 "metadata": {
  "colab": {
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "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.11.15"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}