Solved at Scale
Cross-Checking the Optimum
A solver answer becomes a certificate when independent computations agree. At this size an exhaustive search over the capacity-feasible partitions still runs, and it lands on the same minimum as this repo's exact lower bound and the solver's own best bound: the optimum is proven three ways, not trusted.
Exhaustive search
Eleven items have 678570 set partitions into unlabeled groups; unlike the five-by-four assignment's 120 candidates there is no tidy permutation count, but at this size a computer still enumerates the capacity-feasible partitions exactly. The search inspects 115700 feasible partitions (infeasible branches are pruned, not inspected) and finds a minimum of 4 bins, reached by 315 of them. Why: an independent check must not reuse the solver's code path, and this enumeration is included here as a third independent check.
Own lower bound
The previous chapter's technique applies unchanged: total size 370 divided by capacity 100, rounded up, gives a lower bound of 4 bins. Why: every bin holds at most capacity, so no packing, found by any method, can use fewer bins than the total size demands; and unlike the enumeration, this bound keeps certifying when exhaustive search eventually stops being fast.
Three-way agreement
The solver reported objective 4 with best objective bound 4, the own lower bound is 4, and the exhaustive search minimum is 4: exact three-way agreement. Why: three independent computations landing on the same integer is a certificate, so this packing is provably optimal three ways, not trusted because a solver said so.
Diagram note
The bars are the solver's decoded packing, relabeled B1 through B4 in ascending bin order, read together with the summary line: capacity, total size, lower bound, and bins used are all recomputed on every build. Pixel positions are rounded for layout; every item size, fill, total size, and bound is exact.