Upstream moved to PackingSolver 9ae71316
Five upstream commits since d10db9d7, two of them fixes for crashes reported from this package:
- Bin weight checks use one absolute tolerance. fontanf/packingsolver#586 (fixes #582) replaces the multiplicative
PSTOLslack the branching schemes relaxed against with a tolerance precomputed from the highest bin weight of the instance, applied identically in the search and inSolution::build. The ROADEF 2022 instanceX/MA4/MA4_2520aborted in all four optimisation modes with solution doesn't satisfy bin weight capacity ond10db9d7; it now places its 122 items in 0.8–1.6 s in every mode. Applied toonedimensional,box,rectangleandboxstacks. - Sequential value correction no longer aborts on a multi-bin knapsack. #588 (fixes #587) stops dividing by the packed copies of an item type the previous pass left out entirely; such a type keeps its profit instead of poisoning the next pass with Items must have strictly positive profits. Of 36 synthetic multi-bin
boxstacksknapsack loads (2–3 containers, 3–12 item types, 1.2–2.0 times the volume), 19 aborted ond10db9d7and none do now; one improves (118 → 127 items), none worsens. Upstream's regression instance is replayed by this package's upstream-case tests. boxstacksexposes its remainingOptimizeParameterson the command line and drops the unuseduse_tree_searchfield (the bridge never set it); theshapeandmathoptsolverscmakedependencies are bumped (the stricterconvex_hullonly affectsirregular, which this package does not build).
Algorithm paths and their pacing are unchanged: the three multi-bin bin-packing loads of the SSK path end with the same items, bins and times to the millisecond, so the recommend_time_budget constants measured on d10db9d7 are kept. Data and scripts of the comparison: gist.
Compatibility
- No API change; calls behave as in 0.0.4, apart from the upstream fixes above.
__UPSTREAM_COMMIT__is9ae71316e8856c0a312f06b61b536e44f37d0d5d.
Wheels: CPython 3.7 to 3.14 on Linux x86_64 / aarch64, Windows AMD64 / ARM64, macOS arm64 / x86_64, built with PACKINGSOLVER_USE_HIGHS=ON, as before.