FA-67481 / Elevator dispatch scheduling / Open access
Idle car parking by zone: up-peak lobby pair · case 01
During up-peak only one car waits at the lobby.
ROOT CAUSE
The extra lobby target is not added.
VERIFIED REPAIR
Put the second lobby target first so it is served first.
Unsuccessful approach: Appending the lobby target last loses it when cars run out.
Case contract
The building is split into zones of ceil(floors/zones) floors; each zone base floor is a parking target. Up-peak adds an extra lobby target first (lobby gets two cars); down-peak orders the bases from the top down; otherwise bases ascend. Each target in order takes the nearest free car (ties to the lowest car id); leftover targets stay empty.
Why this case matters
Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
n = x['floors']
k = x['zones']
size = -(-n // k)
bases = [z * size for z in range(k) if z * size < n]
if x['period'] == 'up-peak':
targets = bases
elif x['period'] == 'down-peak':
targets = sorted(bases, reverse=True)
else:
targets = bases
free = dict(x['cars'])
plan = {}
for t in targets:
if not free:
break
cid = min(free, key=lambda c: (abs(free[c] - t), c))
plan[cid] = t
del free[cid]
return plan
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 19', {'floors': 19, 'zones': 1, 'period': 'up-peak', 'cars': [['C4', 1], ['C3', 13], ['C1', 7], ['C5', 12]]}, {'C4': 0, 'C1': 0}), ('sampled regression 6', {'floors': 30, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 9], ['C2', 3], ['C4', 5], ['C3', 18]]}, {'C2': 0, 'C4': 0, 'C5': 8, 'C3': 16}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 1', {'floors': 8, 'zones': 3, 'period': 'off-peak', 'cars': [['C2', 3], ['C1', 7], ['C5', 4]]}, {'C2': 0, 'C5': 3, 'C1': 6}), ('control 4', {'floors': 27, 'zones': 2, 'period': 'down-peak', 'cars': [['C3', 14], ['C5', 10]]}, {'C3': 14, 'C5': 0}), ('control 7', {'floors': 14, 'zones': 3, 'period': 'down-peak', 'cars': [['C5', 13], ['C4', 0], ['C2', 11], ['C3', 5], ['C1', 11]]}, {'C1': 10, 'C3': 5, 'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 56', {'floors': 22, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 1]]}, {'C4': 0, 'C5': 0}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('control 12', {'floors': 14, 'zones': 2, 'period': 'off-peak', 'cars': [['C3', 9], ['C5', 5]]}, {'C5': 0, 'C3': 7}), ('control 15', {'floors': 22, 'zones': 1, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0}), ('control 18', {'floors': 10, 'zones': 2, 'period': 'down-peak', 'cars': [['C4', 7], ['C2', 2], ['C1', 0], ['C5', 0], ['C3', 5]]}, {'C3': 5, 'C1': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 24', {'floors': 8, 'zones': 3, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 6], ['C1', 0], ['C2', 1], ['C3', 2]]}, {'C1': 0, 'C2': 0, 'C3': 3, 'C4': 6}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 23', {'floors': 8, 'zones': 4, 'period': 'down-peak', 'cars': [['C3', 5], ['C4', 7]]}, {'C3': 6, 'C4': 4}), ('control 26', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C2', 1], ['C4', 8], ['C1', 0], ['C5', 8], ['C3', 6]]}, {'C3': 5, 'C1': 0}), ('control 29', {'floors': 30, 'zones': 3, 'period': 'down-peak', 'cars': [['C3', 28], ['C5', 0], ['C2', 17], ['C4', 12], ['C1', 29]]}, {'C2': 20, 'C4': 10, 'C5': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 34', {'floors': 17, 'zones': 2, 'period': 'off-peak', 'cars': [['C5', 2], ['C2', 7], ['C1', 0]]}, {'C1': 0, 'C2': 9}), ('control 37', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C1', 3], ['C5', 8], ['C4', 7]]}, {'C1': 5, 'C4': 0}), ('control 40', {'floors': 24, 'zones': 1, 'period': 'off-peak', 'cars': [['C4', 6]]}, {'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 45', {'floors': 9, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 6], ['C4', 1], ['C5', 0], ['C2', 1], ['C1', 7]]}, {'C5': 0}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('control 51', {'floors': 18, 'zones': 4, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0})]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: up-peak lobby pair | {'C1': 0, 'C2': 6} | {'C1': 0, 'C2': 0, 'C3': 6} | Failed |
| sampled regression 19 | {'C4': 0} | {'C1': 0, 'C4': 0} | Failed |
| sampled regression 6 | {'C2': 0, 'C3': 16, 'C4': 24, 'C5': 8} | {'C2': 0, 'C3': 16, 'C4': 0, 'C5': 8} | Failed |
| boundary: ten floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| boundary: twelve floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| control 1 | {'C1': 6, 'C2': 0, 'C5': 3} | {'C1': 6, 'C2': 0, 'C5': 3} | Passed |
| control 4 | {'C3': 14, 'C5': 0} | {'C3': 14, 'C5': 0} | Passed |
| control 7 | {'C1': 10, 'C3': 5, 'C4': 0} | {'C1': 10, 'C3': 5, 'C4': 0} | Passed |
SHA-256 / 4a988aa1244f8b6261d16b4760cfcf3bfd332fce7e91055741aff91edc540420
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
n = x['floors']
k = x['zones']
size = -(-n // k)
bases = [z * size for z in range(k) if z * size < n]
if x['period'] == 'up-peak':
targets = bases + [0]
elif x['period'] == 'down-peak':
targets = sorted(bases, reverse=True)
else:
targets = bases
free = dict(x['cars'])
plan = {}
for t in targets:
if not free:
break
cid = min(free, key=lambda c: (abs(free[c] - t), c))
plan[cid] = t
del free[cid]
return plan
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 19', {'floors': 19, 'zones': 1, 'period': 'up-peak', 'cars': [['C4', 1], ['C3', 13], ['C1', 7], ['C5', 12]]}, {'C4': 0, 'C1': 0}), ('sampled regression 6', {'floors': 30, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 9], ['C2', 3], ['C4', 5], ['C3', 18]]}, {'C2': 0, 'C4': 0, 'C5': 8, 'C3': 16}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 1', {'floors': 8, 'zones': 3, 'period': 'off-peak', 'cars': [['C2', 3], ['C1', 7], ['C5', 4]]}, {'C2': 0, 'C5': 3, 'C1': 6}), ('control 4', {'floors': 27, 'zones': 2, 'period': 'down-peak', 'cars': [['C3', 14], ['C5', 10]]}, {'C3': 14, 'C5': 0}), ('control 7', {'floors': 14, 'zones': 3, 'period': 'down-peak', 'cars': [['C5', 13], ['C4', 0], ['C2', 11], ['C3', 5], ['C1', 11]]}, {'C1': 10, 'C3': 5, 'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 56', {'floors': 22, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 1]]}, {'C4': 0, 'C5': 0}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('control 12', {'floors': 14, 'zones': 2, 'period': 'off-peak', 'cars': [['C3', 9], ['C5', 5]]}, {'C5': 0, 'C3': 7}), ('control 15', {'floors': 22, 'zones': 1, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0}), ('control 18', {'floors': 10, 'zones': 2, 'period': 'down-peak', 'cars': [['C4', 7], ['C2', 2], ['C1', 0], ['C5', 0], ['C3', 5]]}, {'C3': 5, 'C1': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 24', {'floors': 8, 'zones': 3, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 6], ['C1', 0], ['C2', 1], ['C3', 2]]}, {'C1': 0, 'C2': 0, 'C3': 3, 'C4': 6}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 23', {'floors': 8, 'zones': 4, 'period': 'down-peak', 'cars': [['C3', 5], ['C4', 7]]}, {'C3': 6, 'C4': 4}), ('control 26', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C2', 1], ['C4', 8], ['C1', 0], ['C5', 8], ['C3', 6]]}, {'C3': 5, 'C1': 0}), ('control 29', {'floors': 30, 'zones': 3, 'period': 'down-peak', 'cars': [['C3', 28], ['C5', 0], ['C2', 17], ['C4', 12], ['C1', 29]]}, {'C2': 20, 'C4': 10, 'C5': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 34', {'floors': 17, 'zones': 2, 'period': 'off-peak', 'cars': [['C5', 2], ['C2', 7], ['C1', 0]]}, {'C1': 0, 'C2': 9}), ('control 37', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C1', 3], ['C5', 8], ['C4', 7]]}, {'C1': 5, 'C4': 0}), ('control 40', {'floors': 24, 'zones': 1, 'period': 'off-peak', 'cars': [['C4', 6]]}, {'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 45', {'floors': 9, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 6], ['C4', 1], ['C5', 0], ['C2', 1], ['C1', 7]]}, {'C5': 0}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('control 51', {'floors': 18, 'zones': 4, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0})]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: up-peak lobby pair | {'C1': 0, 'C2': 6, 'C3': 0} | {'C1': 0, 'C2': 0, 'C3': 6} | Failed |
| sampled regression 19 | {'C1': 0, 'C4': 0} | {'C1': 0, 'C4': 0} | Passed |
| sampled regression 6 | {'C2': 0, 'C3': 16, 'C4': 24, 'C5': 8} | {'C2': 0, 'C3': 16, 'C4': 0, 'C5': 8} | Failed |
| boundary: ten floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| boundary: twelve floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| control 1 | {'C1': 6, 'C2': 0, 'C5': 3} | {'C1': 6, 'C2': 0, 'C5': 3} | Passed |
| control 4 | {'C3': 14, 'C5': 0} | {'C3': 14, 'C5': 0} | Passed |
| control 7 | {'C1': 10, 'C3': 5, 'C4': 0} | {'C1': 10, 'C3': 5, 'C4': 0} | Passed |
SHA-256 / 3bc31eb6de26997db177592a0be5373f617834c1585216798a5a87fc0a00cf18
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(x):
n = x['floors']
k = x['zones']
size = -(-n // k)
bases = [z * size for z in range(k) if z * size < n]
if x['period'] == 'up-peak':
targets = [0] + bases
elif x['period'] == 'down-peak':
targets = sorted(bases, reverse=True)
else:
targets = bases
free = dict(x['cars'])
plan = {}
for t in targets:
if not free:
break
cid = min(free, key=lambda c: (abs(free[c] - t), c))
plan[cid] = t
del free[cid]
return plan
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 19', {'floors': 19, 'zones': 1, 'period': 'up-peak', 'cars': [['C4', 1], ['C3', 13], ['C1', 7], ['C5', 12]]}, {'C4': 0, 'C1': 0}), ('sampled regression 6', {'floors': 30, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 9], ['C2', 3], ['C4', 5], ['C3', 18]]}, {'C2': 0, 'C4': 0, 'C5': 8, 'C3': 16}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 1', {'floors': 8, 'zones': 3, 'period': 'off-peak', 'cars': [['C2', 3], ['C1', 7], ['C5', 4]]}, {'C2': 0, 'C5': 3, 'C1': 6}), ('control 4', {'floors': 27, 'zones': 2, 'period': 'down-peak', 'cars': [['C3', 14], ['C5', 10]]}, {'C3': 14, 'C5': 0}), ('control 7', {'floors': 14, 'zones': 3, 'period': 'down-peak', 'cars': [['C5', 13], ['C4', 0], ['C2', 11], ['C3', 5], ['C1', 11]]}, {'C1': 10, 'C3': 5, 'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 56', {'floors': 22, 'zones': 4, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 1]]}, {'C4': 0, 'C5': 0}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('control 12', {'floors': 14, 'zones': 2, 'period': 'off-peak', 'cars': [['C3', 9], ['C5', 5]]}, {'C5': 0, 'C3': 7}), ('control 15', {'floors': 22, 'zones': 1, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0}), ('control 18', {'floors': 10, 'zones': 2, 'period': 'down-peak', 'cars': [['C4', 7], ['C2', 2], ['C1', 0], ['C5', 0], ['C3', 5]]}, {'C3': 5, 'C1': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 24', {'floors': 8, 'zones': 3, 'period': 'up-peak', 'cars': [['C5', 4], ['C4', 6], ['C1', 0], ['C2', 1], ['C3', 2]]}, {'C1': 0, 'C2': 0, 'C3': 3, 'C4': 6}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 23', {'floors': 8, 'zones': 4, 'period': 'down-peak', 'cars': [['C3', 5], ['C4', 7]]}, {'C3': 6, 'C4': 4}), ('control 26', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C2', 1], ['C4', 8], ['C1', 0], ['C5', 8], ['C3', 6]]}, {'C3': 5, 'C1': 0}), ('control 29', {'floors': 30, 'zones': 3, 'period': 'down-peak', 'cars': [['C3', 28], ['C5', 0], ['C2', 17], ['C4', 12], ['C1', 29]]}, {'C2': 20, 'C4': 10, 'C5': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 65', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C3', 10], ['C1', 0]]}, {'C1': 0, 'C3': 0}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: ten floors in three zones', {'floors': 10, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 9], ['C2', 5], ['C3', 1]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('boundary: twelve floors in three zones', {'floors': 12, 'zones': 3, 'period': 'off-peak', 'cars': [['C1', 11], ['C2', 6], ['C3', 2]]}, {'C3': 0, 'C2': 4, 'C1': 8}), ('control 34', {'floors': 17, 'zones': 2, 'period': 'off-peak', 'cars': [['C5', 2], ['C2', 7], ['C1', 0]]}, {'C1': 0, 'C2': 9}), ('control 37', {'floors': 9, 'zones': 2, 'period': 'down-peak', 'cars': [['C1', 3], ['C5', 8], ['C4', 7]]}, {'C1': 5, 'C4': 0}), ('control 40', {'floors': 24, 'zones': 1, 'period': 'off-peak', 'cars': [['C4', 6]]}, {'C4': 0})], [('regression: up-peak lobby pair', {'floors': 12, 'zones': 2, 'period': 'up-peak', 'cars': [['C1', 3], ['C2', 8], ['C3', 11]]}, {'C1': 0, 'C2': 0, 'C3': 6}), ('sampled regression 25', {'floors': 17, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 8], ['C2', 15], ['C3', 12], ['C5', 10]]}, {'C4': 0, 'C5': 0, 'C3': 6, 'C2': 12}), ('boundary: down-peak top first', {'floors': 20, 'zones': 4, 'period': 'down-peak', 'cars': [['C1', 16], ['C2', 13], ['C3', 2]]}, {'C1': 15, 'C2': 10, 'C3': 5}), ('boundary: equidistant cars listed out of order', {'floors': 10, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 2], ['C1', 2]]}, {'C1': 0}), ('boundary: fewer cars than targets', {'floors': 20, 'zones': 4, 'period': 'up-peak', 'cars': [['C2', 7]]}, {'C2': 0}), ('control 45', {'floors': 9, 'zones': 1, 'period': 'off-peak', 'cars': [['C3', 6], ['C4', 1], ['C5', 0], ['C2', 1], ['C1', 7]]}, {'C5': 0}), ('sampled regression 48', {'floors': 16, 'zones': 3, 'period': 'up-peak', 'cars': [['C4', 9], ['C3', 7], ['C2', 14], ['C1', 7]]}, {'C1': 0, 'C3': 0, 'C4': 6, 'C2': 12}), ('control 51', {'floors': 18, 'zones': 4, 'period': 'off-peak', 'cars': [['C5', 11]]}, {'C5': 0})]]
for label, args, expected in fixtures[N-1]:
check(label, solve(args), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
| Boundary fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression: up-peak lobby pair | {'C1': 0, 'C2': 0, 'C3': 6} | {'C1': 0, 'C2': 0, 'C3': 6} | Passed |
| sampled regression 19 | {'C1': 0, 'C4': 0} | {'C1': 0, 'C4': 0} | Passed |
| sampled regression 6 | {'C2': 0, 'C3': 16, 'C4': 0, 'C5': 8} | {'C2': 0, 'C3': 16, 'C4': 0, 'C5': 8} | Passed |
| boundary: ten floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| boundary: twelve floors in three zones | {'C1': 8, 'C2': 4, 'C3': 0} | {'C1': 8, 'C2': 4, 'C3': 0} | Passed |
| control 1 | {'C1': 6, 'C2': 0, 'C5': 3} | {'C1': 6, 'C2': 0, 'C5': 3} | Passed |
| control 4 | {'C3': 14, 'C5': 0} | {'C3': 14, 'C5': 0} | Passed |
| control 7 | {'C1': 10, 'C3': 5, 'C4': 0} | {'C1': 10, 'C3': 5, 'C4': 0} | Passed |
SHA-256 / d9e327eb0b037f67e932b07fbbc35de3308c4c2ab292d374699a93e1831e5565
Verification & scope
Stipulated toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.
Observations recorded using Python 3.12.14 at 2026-09-29T14:47:53.281212+00:00.
Case digest / 51c616108967d2837f0eec72352117fbe5d113a9b0c5d81bdbd4a0be9fa54e99