[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