Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix tight_bound and maximum_ge (#56)
**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. ``` Tightening via interval_arithmetic gives a better result than lp; using best bound found. ``` 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.
- Loading branch information