Skip to content

feat: Adding lower-bounding search to the solver #132

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 20 commits into from
Feb 10, 2025

Conversation

ImkoMarijnissen
Copy link
Contributor

Currently, we only support upper-bounding search (LSU) in the solver; however, it makes sense to also support lower-bounding search (LUS) in the solver.

This PR aims to implement lower-bounding search using assumptions.

@ImkoMarijnissen ImkoMarijnissen added the enhancement New feature or request label Jan 20, 2025
@ImkoMarijnissen
Copy link
Contributor Author

By @maartenflippo

This should be refactored into separate structures and removed from the "Solver" api; this would lead to more separable logical structures with the added benefit of improved extendability

Copy link
Contributor

@maartenflippo maartenflippo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See Imko's comments from our in-person discussion

@maartenflippo maartenflippo merged commit 947896d into develop Feb 10, 2025
4 checks passed
@maartenflippo maartenflippo deleted the feat/lower-bounding-search branch February 10, 2025 13:59
maartenflippo added a commit that referenced this pull request Apr 11, 2025
Currently, we only support upper-bounding search (LSU) in the solver;
however, it makes sense to also support lower-bounding search (LUS) in
the solver.

This PR aims to implement lower-bounding search using assumptions.

---------

Co-authored-by: Maarten Flippo <[email protected]>
maartenflippo added a commit that referenced this pull request Apr 11, 2025
Currently, we only support upper-bounding search (LSU) in the solver;
however, it makes sense to also support lower-bounding search (LUS) in
the solver.

This PR aims to implement lower-bounding search using assumptions.

---------

Co-authored-by: Maarten Flippo <[email protected]>
ImkoMarijnissen added a commit that referenced this pull request Apr 11, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.2.0](pumpkin-solver-v0.1.4...pumpkin-solver-v0.2.0)
(2025-04-11)


### Features

* Add logging for branchers
([#135](#135))
([d8814f1](d8814f1))
* Add method for retrieving relevant brancher events
([#138](#138))
([8253580](8253580))
* Adding lower-bounding search to the solver
([#132](#132))
([57bde78](57bde78))
* Adding random variable selector + sparse_set fixes
([#139](#139))
([1c4b85f](1c4b85f))
* Debug clone does not synchronise at level 0 + random splitter edge
cases ([#146](#146))
([bba1abb](bba1abb))
* Enable proof logging in appropriate test cases
([#154](#154))
([914f1bc](914f1bc))
* Expose the optimisation API in the python wrapper
([#148](#148))
([ab9a463](ab9a463))
* Flatzinc parse boolean & negative int arrays as well
([#142](#142))
([68aef75](68aef75))
* Improve element propagator
([#140](#140))
([b9bcfd3](b9bcfd3))
* Lazy explanation context
([#123](#123))
([0781357](0781357))
* No additional variables during constraint construction
([#131](#131))
([19dd45b](19dd45b))
* Nemove explicit literals
([#115](#115))
([ab74e20](ab74e20))
* Stateful integer
([#125](#125))
([eb01ed3](eb01ed3))


### Bug Fixes

* Addressing clippy warnings
([#143](#143))
([20c76bb](20c76bb))
* Allow reification of lazy reasons
([#152](#152))
([c7418ec](c7418ec))
* Also log the inference that led to an empty domain
([#165](#165))
([7799119](7799119))
* Alternating brancher did not call the methods correctly
([#128](#128))
([6019d86](6019d86))
* Disjunctive scheduling example had incorrect negation constraint
([#114](#114))
([fd007a0](fd007a0))
* Don't debug propagate deleted nogoods
([#147](#147))
([e3a6527](e3a6527))
* Explain root-level assignments in the proof log during conflict
analysis ([#163](#163))
([c877b06](c877b06))
* Fixing erronous conflict check when using incrementality
([#137](#137))
([07c253f](07c253f))
* Give reason to root-level propagation in nogood propagator
([#124](#124))
([14868d5](14868d5))
* Identify more places where root-level facts need to be logged to the
proof ([#153](#153))
([3ac5019](3ac5019))
* Issue with integer multiplication + correct path in msc file
([#117](#117))
([ce25710](ce25710))
* Post process new domain
([#129](#129))
([26a3b46](26a3b46))
* Print statistics at the end of solving process + make pumpkin-solver
default bin ([#162](#162))
([7d30ac8](7d30ac8))
* Remove paste dependency
([#159](#159))
([ea53fed](ea53fed))
* Root level assignments are properly explained in the proof when
logging inferences
([#158](#158))
([857f84c](857f84c)),
closes [#118](#118)
[#119](#119)
[#156](#156)

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: ImkoMarijnissen <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants