Self-play / Elo¶
One ladder: Blue score = mean SLA, Red = 1 − SLA. benchmarks/self_play.py.
python -m benchmarks.self_play --seeds 5 --max-ticks 150
from benchmarks.self_play import population_tournament
result = population_tournament(
scenarios=['ransomware', 'apt_espionage', 'cloud_hybrid'],
seeds=list(range(5)),
max_ticks=150,
)
Default pools: random, heuristic, killchain-red. Pass red_pool / blue_pool
(name → factory) to add trained agents.
1. heuristic-blue 1041.7
2. random-blue 1022.1
3. killchain-red 980.4