FA-95176 / Warehouse slotting and bin packing / Open access
Rack audit: floor pallets load the rack · case 01
Floor-stored pallets under the first beam trigger beam and upright overload alarms.
ROOT CAUSE
Level 0 loads are summed into beam and bay totals.
THE FAILURE
Level 0 loads are summed into beam and bay totals.
Unsuccessful approach: Excluding the floor from beams but still counting it on the uprights keeps false bay alarms.
Case contract
loads [[bay, level, kg]]; level 0 is floor storage and loads neither beams nor uprights. Sum kg per (bay, level) and per bay. Beam capacity is beam_cap, derated to floor(90%) for levels 5 and up. Report ["BEAM", bay, level, total] when a level exceeds capacity and ["BAY", bay, 0, total] when a bay exceeds bay_cap, sorted.
Why this case matters
Rack load audits prevent beam and upright overloads in pallet racking.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(loads, beam_cap, bay_cap):
beam = {}
bay = {}
for b, lvl, kg in loads:
beam[(b, lvl)] = beam.get((b, lvl), 0) + kg
bay[b] = bay.get(b, 0) + kg
out = []
for (b, lvl), t in beam.items():
cap = beam_cap * 9 // 10 if lvl >= 5 else beam_cap
if t > cap:
out.append(['BEAM', b, lvl, t])
for b, t in bay.items():
if t > bay_cap:
out.append(['BAY', b, 0, t])
out.sort()
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 8', [[[1, 1, 300], [3, 5, 300], [3, 5, 300], [2, 4, 900], [2, 4, 1000], [1, 6, 1000]], 1000, 2000], [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 52', [[[1, 5, 900], [2, 0, 1000], [1, 6, 1000], [3, 5, 300], [1, 0, 450], [1, 0, 900], [2, 4, 500], [2, 0, 500]], 1000, 3000], [['BEAM', 1, 6, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['generated mix 17', [[[2, 6, 500], [2, 0, 1000], [1, 0, 300], [1, 1, 300]], 1000, 3000], []], ['generated mix 25', [[[2, 4, 300], [1, 2, 1000], [2, 2, 1000], [2, 0, 900], [2, 0, 500], [1, 6, 450], [3, 6, 300]], 1000, 4000], []]], [['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['generated mix 23', [[[2, 0, 450], [1, 6, 900], [1, 0, 300], [1, 2, 1000], [2, 0, 1000], [1, 5, 450], [2, 5, 450], [2, 5, 450]], 1500, 2000], [['BAY', 1, 0, 2350]]], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 52', [[[1, 5, 900], [2, 0, 1000], [1, 6, 1000], [3, 5, 300], [1, 0, 450], [1, 0, 900], [2, 4, 500], [2, 0, 500]], 1000, 3000], [['BEAM', 1, 6, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]], ['generated mix 40', [[[2, 1, 1000], [1, 4, 500], [1, 2, 450]], 1500, 3000], []], ['generated mix 48', [[[3, 0, 1000], [2, 4, 1000], [1, 4, 300]], 1500, 2000], []]], [['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 45', [[[3, 6, 300], [2, 6, 300], [1, 4, 500], [3, 1, 900], [1, 0, 300], [1, 1, 450]], 1000, 3000], []], ['generated mix 53', [[[3, 4, 300], [3, 5, 900]], 1500, 4000], []]]]
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 |
|---|---|---|---|
| floor ignored | [['BAY', 2, 0, 3900], ['BEAM', 2, 0, 3000]] | [] | Failed |
| generated mix 9 | [['BAY', 2, 0, 3450], ['BEAM', 2, 2, 2450]] | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | Failed |
| beam over | [['BEAM', 1, 1, 1100]] | [['BEAM', 1, 1, 1100]] | Passed |
| derated level 5 | [['BEAM', 1, 5, 950]] | [['BEAM', 1, 5, 950]] | Passed |
| bay over | [['BAY', 3, 0, 2700]] | [['BAY', 3, 0, 2700]] | Passed |
| beam equal ok | [] | [] | Passed |
| level 4 full rating | [] | [] | Passed |
| generated mix 8 | [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]] | [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]] | Passed |
SHA-256 / 059e2fa295409d7ae0c6fe66fa8a865373c07eb8dde69e48d22c502c6f8af00a
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
N = 1
observations = []
def solve(loads, beam_cap, bay_cap):
beam = {}
bay = {}
for b, lvl, kg in loads:
bay[b] = bay.get(b, 0) + (kg if lvl == 0 else 0)
if lvl == 0:
continue
beam[(b, lvl)] = beam.get((b, lvl), 0) + kg
bay[b] = bay.get(b, 0) + kg
out = []
for (b, lvl), t in beam.items():
cap = beam_cap * 9 // 10 if lvl >= 5 else beam_cap
if t > cap:
out.append(['BEAM', b, lvl, t])
for b, t in bay.items():
if t > bay_cap:
out.append(['BAY', b, 0, t])
out.sort()
return out
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 8', [[[1, 1, 300], [3, 5, 300], [3, 5, 300], [2, 4, 900], [2, 4, 1000], [1, 6, 1000]], 1000, 2000], [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 52', [[[1, 5, 900], [2, 0, 1000], [1, 6, 1000], [3, 5, 300], [1, 0, 450], [1, 0, 900], [2, 4, 500], [2, 0, 500]], 1000, 3000], [['BEAM', 1, 6, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['generated mix 17', [[[2, 6, 500], [2, 0, 1000], [1, 0, 300], [1, 1, 300]], 1000, 3000], []], ['generated mix 25', [[[2, 4, 300], [1, 2, 1000], [2, 2, 1000], [2, 0, 900], [2, 0, 500], [1, 6, 450], [3, 6, 300]], 1000, 4000], []]], [['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['beam over', [[[1, 1, 600], [1, 1, 500]], 1000, 5000], [['BEAM', 1, 1, 1100]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['generated mix 23', [[[2, 0, 450], [1, 6, 900], [1, 0, 300], [1, 2, 1000], [2, 0, 1000], [1, 5, 450], [2, 5, 450], [2, 5, 450]], 1500, 2000], [['BAY', 1, 0, 2350]]], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]]], [['generated mix 37', [[[1, 6, 300], [1, 4, 1000], [3, 0, 1000], [1, 4, 900], [1, 4, 900], [1, 5, 1000], [3, 0, 900], [3, 0, 1000]], 1000, 3000], [['BAY', 1, 0, 4100], ['BEAM', 1, 4, 2800], ['BEAM', 1, 5, 1000]]], ['generated mix 52', [[[1, 5, 900], [2, 0, 1000], [1, 6, 1000], [3, 5, 300], [1, 0, 450], [1, 0, 900], [2, 4, 500], [2, 0, 500]], 1000, 3000], [['BEAM', 1, 6, 1000]]], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['generated mix 31', [[[3, 6, 1000], [3, 6, 300]], 1000, 3000], [['BEAM', 3, 6, 1300]]], ['generated mix 40', [[[2, 1, 1000], [1, 4, 500], [1, 2, 450]], 1500, 3000], []], ['generated mix 48', [[[3, 0, 1000], [2, 4, 1000], [1, 4, 300]], 1500, 2000], []]], [['floor ignored', [[[2, 0, 3000], [2, 1, 900]], 1000, 2000], []], ['generated mix 9', [[[1, 6, 300], [1, 4, 300], [2, 2, 450], [2, 2, 1000], [2, 2, 1000], [2, 0, 1000]], 1500, 2000], [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]]], ['derated level 5', [[[1, 5, 950]], 1000, 5000], [['BEAM', 1, 5, 950]]], ['bay over', [[[3, 1, 900], [3, 2, 900], [3, 3, 900]], 1000, 2500], [['BAY', 3, 0, 2700]]], ['beam equal ok', [[[1, 1, 500], [1, 1, 500]], 1000, 5000], []], ['level 4 full rating', [[[1, 4, 950]], 1000, 5000], []], ['generated mix 45', [[[3, 6, 300], [2, 6, 300], [1, 4, 500], [3, 1, 900], [1, 0, 300], [1, 1, 450]], 1000, 3000], []], ['generated mix 53', [[[3, 4, 300], [3, 5, 900]], 1500, 4000], []]]]
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 |
|---|---|---|---|
| floor ignored | [['BAY', 2, 0, 3900]] | [] | Failed |
| generated mix 9 | [['BAY', 2, 0, 3450], ['BEAM', 2, 2, 2450]] | [['BAY', 2, 0, 2450], ['BEAM', 2, 2, 2450]] | Failed |
| beam over | [['BEAM', 1, 1, 1100]] | [['BEAM', 1, 1, 1100]] | Passed |
| derated level 5 | [['BEAM', 1, 5, 950]] | [['BEAM', 1, 5, 950]] | Passed |
| bay over | [['BAY', 3, 0, 2700]] | [['BAY', 3, 0, 2700]] | Passed |
| beam equal ok | [] | [] | Passed |
| level 4 full rating | [] | [] | Passed |
| generated mix 8 | [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]] | [['BEAM', 1, 6, 1000], ['BEAM', 2, 4, 1900]] | Passed |
SHA-256 / e0571070d07a9fdcc474b255474fafed7df86458d6b8ef335fca72ada420fa33
HELD IN THE MEMBER ARCHIVE
The verified repair and its recorded checks are member-only.
This mechanism has 8 recorded checks per implementation. The open-access tier publishes the failure and the unsuccessful fix; the repaired source that passes every check, and the observations that prove it, are available to members.
Every case sharing this mechanism uses the same contract and the same repair, so this one record is held back for all of them.
Member access is invitation-based. Sign in with your invited account to inspect the repair.
Sign in to the archive ↗Verification & scope
Stipulated capacities and derate; not an engineering rack load calculation. 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:52:11.255402+00:00.
Case digest / a3e2ece4a63816ddf95f3caaf7fbcc273d983a3d17f3555fd616be6543d002f6