Skip to content

v0.0.5

Latest

Choose a tag to compare

@HansBug HansBug released this 21 Sep 08:43

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 PSTOL slack the branching schemes relaxed against with a tolerance precomputed from the highest bin weight of the instance, applied identically in the search and in Solution::build. The ROADEF 2022 instance X/MA4/MA4_2520 aborted in all four optimisation modes with solution doesn't satisfy bin weight capacity on d10db9d7; it now places its 122 items in 0.8–1.6 s in every mode. Applied to onedimensional, box, rectangle and boxstacks.
  • 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 boxstacks knapsack loads (2–3 containers, 3–12 item types, 1.2–2.0 times the volume), 19 aborted on d10db9d7 and none do now; one improves (118 → 127 items), none worsens. Upstream's regression instance is replayed by this package's upstream-case tests.
  • boxstacks exposes its remaining OptimizeParameters on the command line and drops the unused use_tree_search field (the bridge never set it); the shape and mathoptsolverscmake dependencies are bumped (the stricter convex_hull only affects irregular, 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__ is 9ae71316e8856c0a312f06b61b536e44f37d0d5d.

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.