Skip to content

Enhance MiniSat and LCG with improved reason management and optimizations#1185

Merged
cprudhom merged 12 commits intodevelopfrom
feat-lcg-imp
Mar 31, 2026
Merged

Enhance MiniSat and LCG with improved reason management and optimizations#1185
cprudhom merged 12 commits intodevelopfrom
feat-lcg-imp

Conversation

@cprudhom
Copy link
Copy Markdown
Member

This appears to be a big PR because all explained propagators have been modified but the main modifications are in the sat package.
The way reasons are managed has been deeply modified to reduce GC by default (n-ary reasons are recycled) even if it is still manageable to use the previous version.
In addition, Literal Block Distance has been implemented and is used when the clause store needs to be reduced to better select the ones to keep.
Also, the way tasks involved in the profile of the cumulative constraint are stored has changed too are (when LCG is activated).

  • some other corrections.

cprudhom added 11 commits March 26, 2026 16:21
… variable for end-variables of cumulative when undeclared in FZN.
…ing and limits/reduces GC.

MiniSat: missing import related to introduction of MinimaList
+ MiniSat: DB reduction now relies on LBD
… int-array during resolution and reduce GC. From dev pov, any propagator can now declare a reason with `this.r(...)`

+ correction/improvement in Profile and PropCumulative when LCG is activated
@cprudhom cprudhom added this to the 5.0.1 milestone Mar 27, 2026
@cprudhom cprudhom self-assigned this Mar 27, 2026
hasFiltered |= updateMinDuration(end.getLB() - start.getUB(), this);
hasFiltered |= updateMaxDuration(end.getUB() - start.getLB(), this);
}
// TODO : add filtering for enumerated domains
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

TODO still relevant?

Copy link
Copy Markdown
Member Author

@cprudhom cprudhom Mar 30, 2026

Choose a reason for hiding this comment

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

I didn't add the TODO in the first place, but I think that achieving AC on Task when domains are enumerated can really be costly. If that's a need, I suggest the user to explicitly add a constraint. @ArthurGodet what do you think ?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I agree on removing this TODO, as filtering algorithms on Tasks (the ones for Cumulative and Disjunctive constraints) always filter on bounds (and never on values inside the domain), and Tasks are designed to be used for these two constraints.

@cprudhom cprudhom merged commit b653b59 into develop Mar 31, 2026
22 checks passed
@cprudhom cprudhom deleted the feat-lcg-imp branch March 31, 2026 10:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants