{
  "rules": "hex-a-hop-basic-v1",
  "observation": "hex-basic-start-centered-safe-green-player-v1",
  "scope": "generated NORMAL/COLLAPSABLE boards, 4-8 green tiles; not the full original campaign",
  "config": {
    "seed": 47,
    "split_seed": 20261015,
    "train_boards": 256,
    "validation_boards": 64,
    "test_boards": 64,
    "max_steps": 48,
    "bc_epochs": 100,
    "ppo_steps": 65536,
    "cpu_threads": 1,
    "wall_seconds": 300
  },
  "bc_positions": 1825,
  "ppo_actual_steps": 65536,
  "bc_ppo_actual_steps": 65536,
  "wall_seconds": 17.79851895896718,
  "versions": {
    "python": "3.12.13",
    "torch": "2.14.1"
  },
  "hashes": {
    "teacher.json": "d50211429c9c052071251adb8b0f73a74e073b89b24992d98146419490e227ef",
    "bc.zip": "25eb6c37807c6b76d345ea50effcd8d7bc65ae63f905397761c6d7e71781c231",
    "splits.json": "9e389be15b60712dd858b075be281c70d3d5f5d1786e4d21c44c68bd1ca4ff9f",
    "config.json": "34c77a018976991cda87b0885f3ad225955f1fe57707a3e4c31947541e1e8972",
    "ppo.zip": "c149a54d2c924834a510d399e3e32a0a2f764dcc9a765551d0149fc7f301cd20",
    "bc-ppo.zip": "c866468a4c0e7ca1cc623b4ed5ca1b812e8e49c310b8c5bb9518fe193536bb50"
  },
  "independent_training_seeds": 1,
  "qualification": false,
  "results": {
    "train": {
      "random-six": {
        "wins": 40,
        "episodes": 256,
        "win_rate": 0.15625,
        "mean_moves": 44.8359375,
        "invalid_fraction": 0.8885694371841785
      },
      "random-legal": {
        "wins": 52,
        "episodes": 256,
        "win_rate": 0.203125,
        "mean_moves": 39.62890625,
        "invalid_fraction": 0.8534253326761951
      },
      "bc": {
        "wins": 185,
        "episodes": 256,
        "win_rate": 0.72265625,
        "mean_moves": 18.34765625,
        "invalid_fraction": 0.6536086863955717
      },
      "ppo": {
        "wins": 0,
        "episodes": 256,
        "win_rate": 0.0,
        "mean_moves": 48.0,
        "invalid_fraction": 0.9671223958333334
      },
      "bc-ppo": {
        "wins": 118,
        "episodes": 256,
        "win_rate": 0.4609375,
        "mean_moves": 29.06640625,
        "invalid_fraction": 0.8215293643327509
      },
      "search": {
        "wins": 256,
        "episodes": 256,
        "max_nodes": 50000,
        "mean_expanded": 68.9609375,
        "statuses": [
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved"
        ]
      }
    },
    "validation": {
      "random-six": {
        "wins": 8,
        "episodes": 64,
        "win_rate": 0.125,
        "mean_moves": 45.890625,
        "invalid_fraction": 0.8985359210078311
      },
      "random-legal": {
        "wins": 8,
        "episodes": 64,
        "win_rate": 0.125,
        "mean_moves": 42.9375,
        "invalid_fraction": 0.8704512372634643
      },
      "bc": {
        "wins": 2,
        "episodes": 64,
        "win_rate": 0.03125,
        "mean_moves": 46.65625,
        "invalid_fraction": 0.9457468184862693
      },
      "ppo": {
        "wins": 0,
        "episodes": 64,
        "win_rate": 0.0,
        "mean_moves": 48.0,
        "invalid_fraction": 0.9674479166666666
      },
      "bc-ppo": {
        "wins": 3,
        "episodes": 64,
        "win_rate": 0.046875,
        "mean_moves": 46.015625,
        "invalid_fraction": 0.9477079796264856
      },
      "search": {
        "wins": 64,
        "episodes": 64,
        "max_nodes": 50000,
        "mean_expanded": 46.25,
        "statuses": [
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved"
        ]
      }
    },
    "test": {
      "random-six": {
        "wins": 10,
        "episodes": 64,
        "win_rate": 0.15625,
        "mean_moves": 45.140625,
        "invalid_fraction": 0.8843890619591555
      },
      "random-legal": {
        "wins": 11,
        "episodes": 64,
        "win_rate": 0.171875,
        "mean_moves": 41.140625,
        "invalid_fraction": 0.8458032662362325
      },
      "bc": {
        "wins": 2,
        "episodes": 64,
        "win_rate": 0.03125,
        "mean_moves": 46.703125,
        "invalid_fraction": 0.9424556707929074
      },
      "ppo": {
        "wins": 0,
        "episodes": 64,
        "win_rate": 0.0,
        "mean_moves": 48.0,
        "invalid_fraction": 0.9690755208333334
      },
      "bc-ppo": {
        "wins": 1,
        "episodes": 64,
        "win_rate": 0.015625,
        "mean_moves": 47.34375,
        "invalid_fraction": 0.9491749174917492
      },
      "search": {
        "wins": 64,
        "episodes": 64,
        "max_nodes": 50000,
        "mean_expanded": 72.515625,
        "statuses": [
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved",
          "solved"
        ]
      }
    }
  },
  "original_basic_search": [
    {
      "name": "Levels\\0_green\\asymmetrix.lev",
      "green": 47,
      "status": "budget",
      "expanded": 50000,
      "solution_moves": null
    },
    {
      "name": "Levels\\0_green\\hive.lev",
      "green": 24,
      "status": "solved",
      "expanded": 5802,
      "solution_moves": 24
    },
    {
      "name": "Levels\\0_green\\there and back.lev",
      "green": 21,
      "status": "solved",
      "expanded": 14289,
      "solution_moves": 32
    },
    {
      "name": "Levels\\0_green\\triangular.lev",
      "green": 32,
      "status": "solved",
      "expanded": 4217,
      "solution_moves": 33
    }
  ],
  "source_verification": {
    "passed": true,
    "boards": 104,
    "trajectories": 207,
    "transitions": 14719,
    "upstream_sha256": "7c53916830db8f15fff87b4873acb83693d63b66e74cb36bcd39507bce1d56c0",
    "scope": "Compare Python transitions with a source-extracted C++ basic-rule oracle.\n\nThis is NOT full native/browser-engine parity. The oracle compiles the pinned\nupstream position operator, water/collision gate, green departure branch and\nCheckFinished method; rendering/sound and unsupported tile mechanics are omitted.\nExtracted upstream code is GPL-2.0-or-later, Tom Beaumont, 2005-2007.\n",
    "oracle_cpp_sha256": "e5ea50602ebc17baa2719c2b454c835c3ed47db068de81f18ed0f0c05defda31"
  },
  "checkpoint_reload_replay": {
    "passed": true,
    "episodes": 1152,
    "comparison": "every action and outcome across train, validation and test for all three checkpoints"
  },
  "results_sha256": "df934a15914541f09e3c3872f11dae87e973e7b4ab924618e86488aa9c43270b",
  "code_sha256": {
    "verify_source.py": "eae551c208bee3a391e5e369a6cd558820e7fac989e7602d026fac5c63f78306",
    "run.py": "2bbc1e0fb6314d28432835c99ea0c60ddc611b206691262f015ba1d40fc36817",
    "env.py": "8cbba180fbb920bf0e63045ccafbcab830f107a4d8d51dcddd95f7aac12dd30c",
    "engine.py": "83ac1d389dbe6044dbf14123a294f177b1224b9c2b53bd56b7a92e1e7564ae85",
    "boards.py": "19856af199b1c840674249e9030a1f7be58d3a31319e32a1d61d779492b1df6c"
  }
}
