Skip to content
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

[WIP] enable generalized explanations for linear propagator #118

Draft
wants to merge 3 commits into
base: develop
Choose a base branch
from

Conversation

AllenZzw
Copy link
Collaborator

  • update transform_lit to return the strongest possible LitMeaning that is equivalent to the input.
  • add relaxed_lit to return the weakest LitMeaning that is equivalent to the input.
  • add tests for transform_lit, relaxed_lit and rev_transform_lit functions
  • enable generalized explanation for the IntLinearLessEqBoundsImpl propagator

Copy link

codecov bot commented Sep 10, 2024

Codecov Report

Attention: Patch coverage is 97.81659% with 5 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
crates/huub/src/helpers/linear_transform.rs 98.96% 2 Missing ⚠️
crates/huub/src/propagator/int_lin_le.rs 92.59% 2 Missing ⚠️
crates/huub/src/model/int.rs 50.00% 1 Missing ⚠️
Files with missing lines Coverage Δ
crates/huub/src/solver/engine.rs 83.36% <100.00%> (+2.10%) ⬆️
crates/huub/src/model/int.rs 53.13% <50.00%> (-1.69%) ⬇️
crates/huub/src/helpers/linear_transform.rs 97.25% <98.96%> (+10.76%) ⬆️
crates/huub/src/propagator/int_lin_le.rs 95.09% <92.59%> (-0.56%) ⬇️

... and 6 files with indirect coverage changes

@AllenZzw AllenZzw force-pushed the feat/generalized_int_lin_le_explanations branch from 5ab194c to 04d6586 Compare September 10, 2024 10:08
Copy link

codspeed-hq bot commented Sep 10, 2024

CodSpeed Performance Report

Merging #118 will improve performances by ×18

Comparing AllenZzw:feat/generalized_int_lin_le_explanations (9f53984) with develop (97bfd35)

Summary

⚡ 2 improvements
✅ 11 untouched benchmarks

Benchmarks breakdown

Benchmark develop AllenZzw:feat/generalized_int_lin_le_explanations Change
optimization[svrp_s4_v2_c3] 595.5 ms 88 ms ×6.8
satisfaction[sudoku_p48] 179.3 ms 10.2 ms ×18

@AllenZzw AllenZzw force-pushed the feat/generalized_int_lin_le_explanations branch from 04d6586 to c27c4ff Compare September 10, 2024 13:33
@AllenZzw AllenZzw force-pushed the feat/generalized_int_lin_le_explanations branch from c27c4ff to 24146cf Compare September 10, 2024 15:06
@AllenZzw AllenZzw changed the title enable generalized explanations for linear propagator [WIP] enable generalized explanations for linear propagator Sep 10, 2024
@AllenZzw
Copy link
Collaborator Author

There are two functions which we may need to clarify:

  • There are multiple literals that are valid returns for the transform_lit function.
  • The get_int_lit_relaxed function may return constant true literal in two cases: (1) when the input refers to a newly created lazy literal which has not been assigned true yet, and (2) when the input bounds are out of the original integer domains. The first case may relate to a more general problem on whether the get_* interfaces have consistent returns about the state.

@Dekker1 Dekker1 marked this pull request as draft September 11, 2024 00:46
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.

1 participant