Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Bugfix: In
tight_bound
,getobjectivebound
was empirically observed not to return the correct objective bound when the objective is an affine expression with a constant term (the constant term was ignored). This could lead to correctness issues with the solver where problems that are SAT are incorrectly determined to be UNSAT because (for example) the lower or upper bounds to some ReLU input are too tight.We believe that this is what is causing the following error message, since expect even LP solves to provide a better answer than interval arithmetic. We will increase the warning message to an error that stops optimization in the future.
A full ticket was filed here. As a short-term fix, we fall back to bounds determined by interval arithmetic if this is the case.
Perf: In
maximum_ge
, we created additional continuous and binary variables even when the array we were maximizing over consisted of only a single entry. We fix this, allowing us to save on extraneous variables.