{
  "credit": "Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved: replica, Gaussian filter, fee rule, qm tables and exact-arithmetic arb/retail tell.",
  "weights": [
    0.006299129642830209,
    -0.0359308666878147,
    0.0,
    0.0,
    -0.03233688079828644,
    0.0,
    0.0,
    0.0,
    0.0,
    -0.013514411928562866,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    -0.053560211479498035,
    -0.08780560671278094,
    0.0015633324185838876,
    -0.03160853213470943,
    -0.13354627586136317,
    0.0,
    -0.010914973890187429,
    0.023261713669838355,
    0.0,
    0.0,
    -0.08229547815190752,
    0.0,
    0.0,
    0.0,
    0.0,
    -0.017591123052043446,
    0.0,
    0.0,
    0.0,
    0.0,
    0.0,
    -0.1448301765029139,
    0.03913601873240455,
    -0.02181681355246058,
    -0.08537291780550378,
    -0.10455366504780146,
    0.0
  ],
  "generations": 100,
  "training_seconds": 2325.236961185932,
  "training_wall_seconds": 2379.2333555221558,
  "curve": [
    {
      "gen": 5,
      "block": "64000..64511",
      "best": -0.06838662134412499,
      "mean": -0.35164577647509504
    },
    {
      "gen": 10,
      "block": "64512..65023",
      "best": -0.0338068561608148,
      "mean": -0.11611883576035041
    },
    {
      "gen": 15,
      "block": "64000..64511",
      "best": -0.026665053654568394,
      "mean": -0.08036131243974622
    },
    {
      "gen": 20,
      "block": "64512..65023",
      "best": 0.006953732084377773,
      "mean": -0.07461630296512098
    },
    {
      "gen": 25,
      "block": "64000..64511",
      "best": -0.022251099099239502,
      "mean": -0.06380226236713711
    },
    {
      "gen": 30,
      "block": "64512..65023",
      "best": -0.011702584795465931,
      "mean": -0.057508044167479476
    },
    {
      "gen": 35,
      "block": "64000..64511",
      "best": -0.012168640302708145,
      "mean": -0.03347267248159861
    },
    {
      "gen": 40,
      "block": "64512..65023",
      "best": -0.006709586833892778,
      "mean": -0.027193084817824193
    },
    {
      "gen": 45,
      "block": "64000..64511",
      "best": -0.001977441608126851,
      "mean": -0.015654073973844922
    },
    {
      "gen": 50,
      "block": "64512..65023",
      "best": 0.001651572055604178,
      "mean": -0.0069913828957274176
    },
    {
      "gen": 55,
      "block": "64000..64511",
      "best": 0.01225778180582715,
      "mean": -0.0068707424899363085
    },
    {
      "gen": 60,
      "block": "64512..65023",
      "best": 0.006662493395322544,
      "mean": -0.005670207166025019
    },
    {
      "gen": 65,
      "block": "64000..64511",
      "best": 0.00908312747604878,
      "mean": 0.0025907775870118257
    },
    {
      "gen": 70,
      "block": "64512..65023",
      "best": 0.011364270320733283,
      "mean": 0.007979164362019045
    },
    {
      "gen": 75,
      "block": "64000..64511",
      "best": 0.012589959110313798,
      "mean": 0.004451385679916366
    },
    {
      "gen": 80,
      "block": "64512..65023",
      "best": 0.012644632067949302,
      "mean": 0.008617834268398008
    },
    {
      "gen": 85,
      "block": "64000..64511",
      "best": 0.018478266734598736,
      "mean": 0.00358773204541409
    },
    {
      "gen": 90,
      "block": "64512..65023",
      "best": 0.018099416414143255,
      "mean": 0.008204569012716054
    },
    {
      "gen": 95,
      "block": "64000..64511",
      "best": 0.011874815904213576,
      "mean": 0.002506917220928051
    },
    {
      "gen": 100,
      "block": "64512..65023",
      "best": 0.01895276850957006,
      "mean": 0.011369862358395868
    }
  ],
  "features_used": [
    {
      "index": 0,
      "name": "g_m_minus_lnsprev_bps"
    },
    {
      "index": 3,
      "name": "g_lns_minus_m_bps"
    },
    {
      "index": 8,
      "name": "log1p_router_age"
    },
    {
      "index": 14,
      "name": "is_arb"
    },
    {
      "index": 15,
      "name": "tell_hit"
    },
    {
      "index": 16,
      "name": "lean_own_bps"
    },
    {
      "index": 17,
      "name": "lean_other_bps"
    },
    {
      "index": 18,
      "name": "synced"
    }
  ],
  "choose": {
    "mean_diff": 0.012199748644191544,
    "se": 0.006117729627246261,
    "n": 1024
  },
  "holdout": {
    "mean_diff": 0.005754853601766086,
    "se": 0.004622840842922439,
    "n": 2048
  },
  "shape": {
    "type": "linear",
    "layout_weights": 42,
    "trainable_weights": 18,
    "features": 20,
    "selected_features": 8,
    "bias_indices": [
      0,
      21
    ],
    "pi_last_zero_indices": [
      3,
      24
    ],
    "standardization": "x=clip((feat-MU)/SD,-3,3), fixed fastlean MU and SD",
    "output": "own += 8e-4*tanh(z_own); other += 8e-4*tanh(z_other)"
  },
  "normalization": {
    "MU": [
      -38.5,
      4.33,
      0.578,
      19.7,
      -4.19,
      0.838,
      2.5,
      0.15,
      0.445,
      0.543,
      1.92,
      0.0,
      36.4,
      36.1,
      0.349,
      0.349,
      47.6,
      24.9,
      0.651,
      0.54
    ],
    "SD": [
      82.4,
      5.34,
      0.494,
      88.3,
      45.0,
      0.714,
      0.958,
      0.372,
      0.609,
      0.462,
      0.865,
      1.0,
      49.6,
      48.8,
      0.477,
      0.477,
      56.5,
      37.3,
      0.477,
      0.437
    ],
    "clip": [
      -3,
      3
    ]
  },
  "replica_sha256": "d9c758bb280fe24e09c039496f84ab0804173ff70cec24c332f8683f28efa582",
  "advance": false,
  "solidity_notes": {
    "ln_features": [
      {
        "index": 0,
        "note": "Uses ln(s_prev) already needed by LEAN filter."
      },
      {
        "index": 3,
        "note": "Uses ln(s) already needed by LEAN filter."
      },
      {
        "index": 8,
        "note": "Needs log1p(timestamp-router_t), a new logarithm; not replaced by raw counter during training."
      }
    ],
    "exp_features": [],
    "other_features": "14 is_arb, 15 tell_hit, 18 synced are existing flags; 16 lean_own_bps and 17 lean_other_bps are existing unrounded fees. Feature normalization and clipping required. tanh outputs require exp or a separately validated tanh approximation; no Solidity implementation or gas measurement made."
  },
  "reference_zb64": "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",
  "seeds_used": {
    "single_feature_screen": {
      "start": 64000,
      "end": 64127,
      "n": 128
    },
    "train_blocks": [
      {
        "start": 64000,
        "end": 64511,
        "n": 512
      },
      {
        "start": 64512,
        "end": 65023,
        "n": 512
      }
    ],
    "choose": {
      "start": 64000,
      "end": 65023,
      "n": 1024
    },
    "holdout": {
      "start": 10000,
      "end": 12047,
      "n": 2048,
      "evaluations": 1
    },
    "warmup": [
      64000
    ],
    "optimizer_random_seed": 20261110,
    "random_schedule": "CMA initial seed for generations 1..15; np.random.seed(20261110+gen) before ask for each later generation"
  },
  "method": {
    "optimizer": "CMA-ES, cma 4.5.0",
    "sigma0": 0.04,
    "initial_mean": "all zeros",
    "population": 12,
    "objective": "maximize mean of paired per-seed edge(head)-edge(all-zero head) on alternating 512-seed blocks; odd generations use first block",
    "final_weights": "final CMA distribution mean; no best-candidate, zero-baseline fallback or holdout selection",
    "se": "sample standard deviation of paired differences (ddof=1) / sqrt(n)",
    "screen": {
      "credit": "Taylor (gtmcknight), github.com/gtmcknight/amm-sim@4812a6382311624e1506aca131ca35c378f930d9 research/solved: replica, Gaussian filter, fee rule, qm tables and exact-arithmetic arb/retail tell.",
      "seeds": [
        64000,
        64127
      ],
      "method": "single-feature grid: coefficients +/-0.04,+/-0.12 on own, other, same-sign both, opposite-sign both; biases zero; rank best paired mean minus 0.005 for log1p features 6,7,8,9,10,19",
      "ranked": [
        {
          "index": 16,
          "name": "lean_own_bps",
          "mean_diff": 0.006782331807637654,
          "own": 0.04,
          "other": -0.04
        },
        {
          "index": 15,
          "name": "tell_hit",
          "mean_diff": 0.001721634370417835,
          "own": -0.0,
          "other": -0.04
        },
        {
          "index": 17,
          "name": "lean_other_bps",
          "mean_diff": 0.00016999009204266002,
          "own": -0.04,
          "other": -0.0
        },
        {
          "index": 14,
          "name": "is_arb",
          "mean_diff": 0.00016399171718761707,
          "own": -0.0,
          "other": -0.04
        },
        {
          "index": 18,
          "name": "synced",
          "mean_diff": 0.00016399171718761707,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 3,
          "name": "g_lns_minus_m_bps",
          "mean_diff": -0.0010770491748197664,
          "own": -0.0,
          "other": -0.04
        },
        {
          "index": 0,
          "name": "g_m_minus_lnsprev_bps",
          "mean_diff": -0.00207712237049007,
          "own": -0.04,
          "other": -0.0
        },
        {
          "index": 8,
          "name": "log1p_router_age",
          "mean_diff": 0.0023386969217087383,
          "own": -0.0,
          "other": -0.04
        },
        {
          "index": 4,
          "name": "g_lns2h_minus_m_bps",
          "mean_diff": -0.009309306581906984,
          "own": -0.0,
          "other": -0.04
        },
        {
          "index": 5,
          "name": "phase",
          "mean_diff": -0.010503863182529383,
          "own": -0.04,
          "other": -0.0
        },
        {
          "index": 19,
          "name": "log1p_cnt",
          "mean_diff": -0.012523993874955064,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 1,
          "name": "sd_bps",
          "mean_diff": -0.017827770032762036,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 10,
          "name": "log1p_size_bps",
          "mean_diff": -0.01921103289032322,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 6,
          "name": "log1p_abs_move_bps",
          "mean_diff": -0.020600142067932925,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 12,
          "name": "lean_bid_bps",
          "mean_diff": -0.028053448950933202,
          "own": 0.04,
          "other": 0.0
        },
        {
          "index": 7,
          "name": "log1p_silent_steps",
          "mean_diff": -0.02347627400839425,
          "own": 0.04,
          "other": 0.0
        },
        {
          "index": 9,
          "name": "log1p_dt",
          "mean_diff": -0.0315341699948708,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 11,
          "name": "side",
          "mean_diff": -0.0386339288655515,
          "own": 0.0,
          "other": 0.04
        },
        {
          "index": 13,
          "name": "lean_ask_bps",
          "mean_diff": -0.041234332092559445,
          "own": -0.04,
          "other": -0.0
        }
      ],
      "features": [
        0,
        3,
        8,
        14,
        15,
        16,
        17,
        18
      ]
    },
    "training_time_definition": "sum of generation evaluation + es.tell elapsed wall seconds; setup, screen and cached zero-head baseline runs excluded",
    "runtime": {
      "python": "3.12.3",
      "numpy": "2.2.6",
      "numba": "0.61.2",
      "llvmlite": "0.44.0"
    },
    "checkpoint": "every generation under test/scratch; resumed between commands, each capped at 460 seconds"
  },
  "not_done": [
    "No Solidity port, fee/tell parity gates, source-character/deployed-size/gas checks, fresh-engine evaluation, or submission: this bounded item trains and reports a replica head only.",
    "No independent rerun of the supplied fastlean parity tests against the CPython oracle; reliance on supplied fastlean implementation is explicit."
  ],
  "reference_sha256": {
    "train.py": "2507fd6f1899dec77c9cb8f0f8e1379e1b8b156b9dbe6a651c6600a8cf03b2d0",
    "weights.json": "2abeb7b94d6670aa8da5f8a0530cbb53da77d13b2a14859fc6d992c8166819f7"
  }
}
