[Ipopt] Assertion in OsiSimpleInteger::createBranch()
David Wilkinson
xyz-coin at effisols.com
Tue Jun 20 09:16:33 EDT 2017
This is a Bonmin question, but I haven't seen any activity in the Bonmin
group for a while, so I am sending to the Ipopt group also.
I am using Bonmin 1.8.4 with "B-BB" algorithm to solve a problem with
two integer variables, both with lower bound 0 and upper bound 3, with
an initial guess of (1,1). I am seeing an assertion error in
OsiSimpleInteger::createBranch() around line 626 of
OsiBranchingObject.cpp. The purpose of the assertion is to check that
the upper bound for the variable under consideration is greater than the
lower bound. When I hit the assertion, the value of columnNumber_ is 0,
and both info->lower_[0] and info->upper_[0] are 0.0, so the assertion
is correctly triggered.
Since assertions are not supposed to happen, I initially suspected user
(me) error in setting up the problem, but I do not think so, because our
driver program repeatedly requests optimizations of a similar type (with
different objective and constraint functions, but the same bounds), and
several such optimizations have been done correctly before this one. It
may be that these optimizations do not fully satisfy the Bonmin
convexity requirements, but surely this should not cause an assertion in
the code? Our program will tolerate cases where Bonmin fails and emits
an exception, and indeed if I throw an exception in
OsiSimpleInteger::createBranch() instead of the assertion, our program
continues with other successful Bonmin optimizations.
Any ideas?
Thanks,
David Wilkinson
More information about the Ipopt
mailing list