Solved at Scale
Solved with CP-SAT
An external CP-SAT solver solves the pinned eleven-item instance under deterministic parameters and reports a provable optimum. The lesson quotes only the deterministic fields of the run, and the packing shown is decoded from the run's own solution values.
Invocation
The invocation is cpsat_stream_solve solve bin_packing.jsonl --params num_search_workers:1,random_seed:1, with the solution values written to a temporary --sol file. Why: a single search worker and a fixed seed make the run deterministic, so the solution quoted below is reproducible rather than anecdotal.
Solver result
The solver reports status OPTIMAL with objective value 4 and best objective bound 4. Why: OPTIMAL means the solver proved a matching bound, not merely found a good packing. The output also carries timing, conflict, and branch counts; those fields are omitted here because they vary from run to run, and only the status, the objective value, the bound, and the solution values are deterministic.
The packing
B1 packs D 36, B 30 and K 30 with fill 96/100. B2 packs A 48, F 27 and J 24 with fill 99/100. B3 packs H 42, E 36 and C 19 with fill 97/100. B4 packs G 42 and I 36 with fill 78/100. Why: each bin's fill stays within capacity and every item appears exactly once. The rows are the solver's own decoded packing: its four used bins are relabeled B1 through B4 in ascending bin order, and those labels and the item blocks are the diagram's own labels.
Diagram note
Each row is one used bin from the solver's decoded solution, headed B1 through B4, with item blocks labeled by item id and exact integer weight, a fill label as an exact ratio of capacity, a left annotation for the leftover space in the bin, and a summary footer with the capacity, total size, lower bound, and bins used. Pixel positions are rounded for layout; every item size, fill, total size, and bound is exact.