{
  "schema_version": 2,
  "generated_at": "2026-10-11T13:51:27Z",
  "tier": "a",
  "budgets": {
    "constructive": {
      "seconds": 30,
      "agreed": false
    },
    "exact": {
      "seconds": 60,
      "agreed": false
    },
    "local": {
      "seconds": 300,
      "agreed": false
    },
    "meta": {
      "seconds": 300,
      "agreed": true
    },
    "utility": {
      "seconds": 60,
      "agreed": false
    }
  },
  "budgets_note": "Wall-clock budget in seconds per solver family, published with the benchmark data so a gap figure is never shown without the allowance it was measured under (decisions/benchmarking-design sections 3.2 and 4). These MUST match the [budgets] table of the tier the numbers came from \u2014 currently bench/matrix/tier-a.toml \u2014 or a page would state a budget the data was not measured under. tests/e2e/bench-matrix.bats fails if the two drift. 'agreed' records whether a figure is fixed by a decision or is still a provisional working value: only meta is settled (decision 10, 300s); exact, local, constructive and utility come from the Tier A plan and are not yet ratified by a decision.",
  "solvers": [
    {
      "id": "2opt",
      "configs": [
        "budget"
      ],
      "name": "2-opt",
      "family": "local"
    },
    {
      "id": "3opt",
      "configs": [
        "budget"
      ],
      "name": "3-opt",
      "family": "local"
    },
    {
      "id": "aco",
      "configs": [
        "budget"
      ],
      "name": "Ant Colony",
      "family": "meta"
    },
    {
      "id": "bhk",
      "configs": [
        "budget"
      ],
      "name": "Bellman\u2013Held\u2013Karp",
      "family": "exact"
    },
    {
      "id": "branch_bound",
      "configs": [
        "budget",
        "exact"
      ],
      "name": "Branch and Bound",
      "family": "exact"
    },
    {
      "id": "christofides",
      "configs": [
        "budget"
      ],
      "name": "Christofides",
      "family": "constructive"
    },
    {
      "id": "cs",
      "configs": [
        "budget"
      ],
      "name": "Cuckoo Search",
      "family": "meta"
    },
    {
      "id": "fourier",
      "configs": [
        "budget"
      ],
      "name": "Fourier",
      "family": "constructive"
    },
    {
      "id": "fpa",
      "configs": [
        "budget"
      ],
      "name": "Flower Pollination",
      "family": "meta"
    },
    {
      "id": "ga",
      "configs": [
        "budget"
      ],
      "name": "Genetic Algorithm",
      "family": "meta"
    },
    {
      "id": "greedy_edge",
      "configs": [
        "budget"
      ],
      "name": "Greedy Edge",
      "family": "constructive"
    },
    {
      "id": "gsa",
      "configs": [
        "budget"
      ],
      "name": "Gravitational Search",
      "family": "meta"
    },
    {
      "id": "lk",
      "configs": [
        "budget"
      ],
      "name": "Lin-Kernighan",
      "family": "local"
    },
    {
      "id": "nn",
      "configs": [
        "budget"
      ],
      "name": "Nearest Neighbour",
      "family": "constructive"
    },
    {
      "id": "or_opt",
      "configs": [
        "budget"
      ],
      "name": "Or-opt",
      "family": "local"
    },
    {
      "id": "pso",
      "configs": [
        "budget"
      ],
      "name": "Particle Swarm",
      "family": "meta"
    },
    {
      "id": "sa",
      "configs": [
        "budget"
      ],
      "name": "Simulated Annealing",
      "family": "meta"
    },
    {
      "id": "savings",
      "configs": [
        "budget"
      ],
      "name": "Savings",
      "family": "constructive"
    },
    {
      "id": "shuffle",
      "configs": [
        "budget"
      ],
      "name": "Random Shuffle",
      "family": "utility"
    },
    {
      "id": "som",
      "configs": [
        "budget"
      ],
      "name": "Kohonen SOM",
      "family": "constructive"
    },
    {
      "id": "stochastic_hill",
      "configs": [
        "budget"
      ],
      "name": "Stochastic Hill Climbing",
      "family": "local"
    },
    {
      "id": "tabu",
      "configs": [
        "budget"
      ],
      "name": "Tabu Search",
      "family": "meta"
    }
  ],
  "problems": [
    {
      "id": "a280",
      "cities": 280,
      "optimal_cost": 2579.0
    },
    {
      "id": "att48",
      "cities": 48,
      "optimal_cost": 10628.0
    },
    {
      "id": "berlin52",
      "cities": 52,
      "optimal_cost": 7542.0
    },
    {
      "id": "burma14",
      "cities": 14,
      "optimal_cost": 3323.0
    },
    {
      "id": "ch150",
      "cities": 150,
      "optimal_cost": 6528.0
    },
    {
      "id": "dsj1000",
      "cities": 1000,
      "optimal_cost": 18660188.0
    },
    {
      "id": "eil76",
      "cities": 76,
      "optimal_cost": 538.0
    },
    {
      "id": "gr120",
      "cities": 120,
      "optimal_cost": 6942.0
    },
    {
      "id": "gr17",
      "cities": 17,
      "optimal_cost": 2085.0
    },
    {
      "id": "kroA100",
      "cities": 100,
      "optimal_cost": 21282.0
    },
    {
      "id": "ulysses16",
      "cities": 16,
      "optimal_cost": 6859.0
    },
    {
      "id": "ulysses22",
      "cities": 22,
      "optimal_cost": 7013.0
    }
  ]
}
