Skip to content

Selective channeling for Exact#1000

Open
OrestisLomis wants to merge 19 commits into
masterfrom
selective-channeling
Open

Selective channeling for Exact#1000
OrestisLomis wants to merge 19 commits into
masterfrom
selective-channeling

Conversation

@OrestisLomis

Copy link
Copy Markdown
Contributor

When an integer variable is encoded (for now only directly, but with #994 this can also be orderly) a solver without an ivarmap (so any non-SAT solver) will post both defining sum(bvs) == 1 as well as channeling wsum(ws, bvs) == iv to the solver. However, the channeling constraints are not necessary when the iv is not actually used in any constraint or the objective. This PR adds an ivarmap to Exact and allows for selective posting of channeling constraints, i.e. only when actually necessary.

@OrestisLomis OrestisLomis requested a review from IgnaceBleukx May 28, 2026 15:19
@OrestisLomis OrestisLomis mentioned this pull request May 28, 2026
32 tasks
@tias

tias commented May 29, 2026

Copy link
Copy Markdown
Collaborator

why is it so special?

pindakaas (pb interface) uses ivarmap and all is fine, if we didn't do that in exact yet, can't you just... do it exactly the same way?

@OrestisLomis

OrestisLomis commented May 29, 2026

Copy link
Copy Markdown
Contributor Author

I agree the helper functions were kind of unnecessary and I removed them, but otherwise there is not much special going on.

@OrestisLomis OrestisLomis changed the base branch from master to xcsp3_26 June 1, 2026 13:52
@OrestisLomis OrestisLomis changed the base branch from xcsp3_26 to master June 1, 2026 13:52
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.

2 participants