-
Notifications
You must be signed in to change notification settings - Fork 12
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
Is it possible to include SCIP disjunctive constraints? Thanks #161
Comments
Hi Bruce, |
Hi Mr. Ghannam, thank you for your reply and hints. I will try to solve it myself and hopefully contribute to this repo. |
Hi again :) First of all, please not so formal. Just Mo works 😄 Thinking about this again I realized it's not as simple as I first thought. One would need first to create methods that create a constraint but not add it to the model. Then use these constraints to add them to a disjunction constraint. |
Hi Mo, you are right. Actually, I found a way to bypass using disjunctive constraints by introducing additional decision variables and then using Big-M method. Best regards, Bruce |
You could also achieve the same I think with binary variables and indicator constraints (to skip figuring out what the right M is 😄). Take a look at add_cons_indicator |
Hi @brucelit, as an alternative approach if finding a tight big-M value is hard for your problem, indicators have received more attention and smart tricks than disjunctions, even though they are more or less equivalent: |
Dear Mo and Mathieu, thank you very much for the indicator idea. I am not an expert in linear programming, so your suggestion on this helped me greatly! |
Hi Mr. Ghannam,
Thank you for this wonderful crate. I wonder whether you plan to support the disjunctive constraints of SCIP (https://scipopt.org/doc/html/cons__disjunction_8h.php) soon?
My LP problem requires satisfying at least one of the constraints, and I hope to implement a solution in Rust. For now, SCIP seems to be the only available choice.
A disjunction constraint 𝐶 is a constraint of the form
𝐶=𝐶1∨⋯∨𝐶𝑛
where all the 𝐶𝑖 are individual constraints themselves.
Best regards,
Bruce
The text was updated successfully, but these errors were encountered: