-
Notifications
You must be signed in to change notification settings - Fork 24
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
lazy cuts callbacks: can solutions violate cuts previously added? #22
Comments
I'll have to make a guess here: See also the relevant SCIP documentation. The lazy cut callback is called in all three of the mentioned methods, but if the user adds a cut within a call of |
An important detail in this respect is the @fserra : Is it right to follow that LP-feasibility is not checked prior to calling our |
Thank you! I will look at the documentation. This is causing issues for us On Sep 23, 2016 11:45 AM, "Robert Schwarz" notifications@github.com wrote:
|
We were required to set the priority to a positive value in order to fully support the Also, I don't think it will solve the issue with Maybe (but this not a simple fix), we could store the lazy cuts added from |
@leethargo yes, I guess it is correct to assume that the solution has not been checked for LP feasibility in our
Would that be ok?? I also think that we can just add the constraints generated in @chriscoey is it easy to reproduce this behaviour?? |
@fserra, that sounds good to me. I thought that adding constraints from |
well, the stage will not forbid adding a constraint, so I wouldn't know who Of course, I am not a 100% sure ;) On Sat, Sep 24, 2016 at 10:16 AM, Robert Schwarz notifications@github.com
|
We made the change in CSIP. @chriscoey: Can you check whether the callback is still called twice on the same solution, by using the CSIP master? CC: @mlubin |
Thanks for the help here. Miles and I have been talking about what is going on in the lazy cuts in Pajarito and I think we understand what the MIP solvers do and don't do a bit better now. The change you made should help reduce the number of redundant solutions we get from the solver. We are going to start running computational tests soon and that will give us a better idea. But ultimately there aren't currently any options we can give any MIP solver to make it to do what we want for Pajarito. We only care about getting different integer subvectors of the full mixed-integer vector (we reformulate to only have continuous variables in nonlinear cones). It's pretty specific. |
Sounds good, the updated code will be merged with #23. Given that several MIP solvers are "misbehaving" in this respect, it might help to keep a pool of already handled (partial) solution candidates on the Pajarito side, right? |
@leethargo Yeah over the past few days I have implemented a few new ideas and now Pajarito is cacheing dual cuts and has an option for fast primal cuts, so it is doing as much as it can to avoid wasting time on repeated integer solutions. Ultimately I guess the goal is for MIP solvers to re-implement the ideas behind Pajarito internally, and they will be able to do it better because they have a level of control that we don't. |
Is it expected in principle for solutions to violate cuts you've already added through the callbacks earlier? If so, is there an option to force SCIP to only give solutions in callbacks that satisfy ALL of the cuts already added?
The text was updated successfully, but these errors were encountered: