coin-or / Bonmin

Basic Open-source Nonlinear Mixed INteger programming
https://coin-or.github.io/Bonmin
Eclipse Public License 1.0
118 stars 22 forks source link

Solver (asl) returned non-zero return code (-6) #30

Closed kevinfrancisriley closed 1 year ago

kevinfrancisriley commented 2 years ago

This is my very first request for help, so please let me know if I screw things up.

I'm able to solve a basic convex NLP with Bonmin (1.8.8) no problem (using python 3.9.9). So I know I installed it successfully and believe there are no path issues. Once I add constraints to my problem, I get the following error:

Assertion failed: (isNlpFeasible(minlp, primalTolerance)), function solution, file BonHeuristicDiveMIP.cpp, line 133. NLP0012I Num Status Obj It time Location NLP0014I 1 OPT 0.46776881 10 0.00825 ERROR: Solver (asl) returned non-zero return code (-6) ERROR: See the solver log above for diagnostic information. Traceback (most recent call last): File "/Users/kevinriley/NPS/03 - COURSES/22-Q2/4. OA4201/Applications/App 1/search_atmost.py", line 42, in <module> results_obj = opt.solve(model,tee=True) File "/usr/local/Caskroom/miniconda/base/lib/python3.9/site-packages/pyomo/opt/base/solvers.py", line 595, in solve raise ApplicationError( pyomo.common.errors.ApplicationError: Solver (asl) did not exit normally

I get the same error when I include the executable path directly in the SolverFactory() line.

I have spent more than 30 hours trying to figure this out and am stumped. Any and all advice will be greatly appreciated.

Basic code (that works): Search.docx

Code w/ additional constraints (results in error): Search At Most.docx

svigerske commented 2 years ago

I remember adding a fix/workaround for this on master (#24). But this was for changes in the default parameter settings of Ipopt 3.14. However, Bonmin 1.8.8 is meant to be build against Ipopt 3.12.12: https://github.com/coin-or/Bonmin/blob/releases/1.8.8/Dependencies, so I don't really see how one would get this assert failing with this version of Bonmin.

Building Bonmin without debugging enabled should be a possible workaround, though.