huub-solver / huub

A Lazy Clause Generation solver with a focus on modularity and maintainability in addition to speed
https://huub.solutions
Mozilla Public License 2.0
3 stars 2 forks source link

Maximum propagators exceeded #130

Open AllenZzw opened 2 weeks ago

AllenZzw commented 2 weeks ago

When solving the p_7_SGSG_GSG_yumi_grid_setup_5_5_zones.dzn instance with the model, the solver will output the following message:

thread 'main' panicked at crates/huub/src/solver/engine/activation_list.rs:68:9: Unable to add more than u16::MAX propagators to the activation list of a single variable. note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

Dekker1 commented 2 weeks ago

It does seem like the instance is legitimately creating and attaching more than 65,536 propagators to the same variable. It seems likely that implementing the diffn or circuit global will resolve this issue, but I'm not 100% sure.

We could increase the maximum number of attached propagators, but I'm just not sure how our solver would do anything with the number of variables/propagators used in this instance currently.

%%%mzn-stat: flatBoolVars=378893
%%%mzn-stat: flatIntVars=639692
%%%mzn-stat: flatBoolConstraints=133400
%%%mzn-stat: flatIntConstraints=897424

I think we should probably wait to further investigate this issue until we have some more global constraint propagators.

P.S. You do indeed need the version from the 2024 challenge to compile using the current version of MiniZinc.