Releases: ConSol-Lab/Pumpkin
Releases · ConSol-Lab/Pumpkin
pumpkin-solver: v0.2.2
pumpkin-core: v0.2.2
0.2.2 (2025-11-10)
Features
- Adding logging of brancher statistics on completion (#257) (9d26842)
- Post equality as single predicate instead of splitting in two (#305) (8f43208)
- Adding edge-finding for the disjunctive constraint (#275) (606a7d8)
- Lazy explanation for linear less than or equals (#290) (3515c7a)
- Write proofs with gzip encoding (#264) (83f76da)
- Remove unnecessary variables introduced by bool2int (#232) (cf0b2fe)
- Use lazy explanations for BinaryEq (#231) (4a89a5e)
- Support warm_start and ignore constraint_name search annotations (#235) (d7e8bb0)
Bug Fixes
- Add pumpkin-crates to default-members (#286) (bf7ff80)
- Correctly reporting unknown solution in optimisation and solution enumeration (#247) (8c0f27c)
- Create correct reason for preprocessing permanent nogood + Removing unassigned status for PredicateId (#250) (98ba136)
- Provide
SelectionContextinstead ofAssignmentstoBrancher::synchronise(#312) (9548114) - Remove debug printing (#254) (0ca93a2)
- Remove the terms with zero coefficients from linear constraints (#269) (576887e)
- Take root-propagation into account in the LUS optimiser (#253) (d30ed06)
- Reduce cost of predicate notification (#259) (d38e990)
Refactors
pumpkin-solver: v0.2.1
0.2.1 (2025-07-10)
Features
- Branch on objective variable first if not everything is assigned after the FlatZinc search strategy (#230) (d676430)
- Arena allocation for the Nogood propagator (#212) (6f647e8)
- Enforce constraint ID and inference label are provided in propagators (#179) (74126a1)
- Expose a timeout flag in the Python API (#195) (7d4a74f)
- Implement *_imp FlatZinc constraints for linear arithmetic (#219) (c00050f)
- Implement the table and negative table constraints (#194) (49344d6)
- Improving notification system for nogood propagator (#190) (b04ac58)
- Merge equivalence classes of variables in int_eq as a preprocessing step (#221) (9b5c1cc)
- Propagator for binary arithmetic constraints
int_neandint_eq(#223) (00a16e0) - Remove unused variables from the FlatZinc AST (#222) (223a26a)
- Rewrite
int_lin_eqandint_lin_neover two variables into their binary equivalents (#240) (a370866)
Bug Fixes
- Create sparse domains properly for a sparse FlatZinc domain (#243) (6225ff5)
- Disable recursive minimisation when logging the full proof (#215) (7a0a08e)
- Don't log same domain inference multiple times per deduction (#227) (30a7b53)
- Fix lazy explanations for the element propagator (#191) (60e2bea)
- Log the correct proofs when optimising (#216) (ca6e452)
- Log the initial bounds in the full proof as inferences (#211) (7624035)
- Properly explain root-level explanations that are not considered during conflict analysis (#176) (d237293)
- Update outdated documentation from before the v0.2 release (#177) (8e4009f)
pumpkin-core: v0.2.1
chore: release pumpkin-core 0.2.1 (#245) :robot: I have created a release *beep* *boop* --- See `pumpkin-solver` changelog. --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please).
drcp-format: v0.3.0
pumpkin-solver: v0.2.0
0.2.0 (2025-04-11)
Features
- Add logging for branchers (#135) (d8814f1)
- Add method for retrieving relevant brancher events (#138) (8253580)
- Adding lower-bounding search to the solver (#132) (57bde78)
- Adding random variable selector + sparse_set fixes (#139) (1c4b85f)
- Debug clone does not synchronise at level 0 + random splitter edge cases (#146) (bba1abb)
- Enable proof logging in appropriate test cases (#154) (914f1bc)
- Expose the optimisation API in the python wrapper (#148) (ab9a463)
- Flatzinc parse boolean & negative int arrays as well (#142) (68aef75)
- Improve element propagator (#140) (b9bcfd3)
- Lazy explanation context (#123) (0781357)
- No additional variables during constraint construction (#131) (19dd45b)
- Nemove explicit literals (#115) (ab74e20)
- Stateful integer (#125) (eb01ed3)
Bug Fixes
- Addressing clippy warnings (#143) (20c76bb)
- Allow reification of lazy reasons (#152) (c7418ec)
- Also log the inference that led to an empty domain (#165) (7799119)
- Alternating brancher did not call the methods correctly (#128) (6019d86)
- Disjunctive scheduling example had incorrect negation constraint (#114) (fd007a0)
- Don't debug propagate deleted nogoods (#147) (e3a6527)
- Explain root-level assignments in the proof log during conflict analysis (#163) (c877b06)
- Fixing erronous conflict check when using incrementality (#137) (07c253f)
- Give reason to root-level propagation in nogood propagator (#124) (14868d5)
- Identify more places where root-level facts need to be logged to the proof (#153) (3ac5019)
- Issue with integer multiplication + correct path in msc file (#117) (ce25710)
- Post process new domain (#129) (26a3b46)
- Print statistics at the end of solving process + make pumpkin-solver default bin (#162) (7d30ac8)
- Remove paste dependency (#159) (ea53fed)
- Root level assignments are properly explained in the proof when logging inferences (#158) (857f84c), closes #118 #119 #156
drcp-format: v0.2.1
pumpkin-solver: v0.1.4
0.1.4 (2024-11-07)
Features
- allow logging of statistics to arbitrary writers (#73) (136e03a)
- introduce inference-nogoods in drcp-format (#98) (e5ae6c2)
- update to drcp-format v0.2.0 (#101) (2f6df0c)
Bug Fixes
- cumulative holes in domain incorrectly used cached profile (#109) (4c86a8b)
- cumulative sequence generation found less profiles than it should + fixing issues with debug propagation (#110) (f17222d)
- use propagate for "<=" constraint + using solution reference from solution rather than solver (#108) (668bd0d)
- wrong profile found for over-interval conflict explanation (#111) (4ba1d50)