I am working on a MINLP problem and am searching for a solver that works. I have tried ANTIGONE and receive the following "Termination Status: Infeasible Problem." I also tried DICOPT which also says the problem is infeasible. I also tried BARON and though the solver never terminates on its own, the solution obtained in the local search is often never updated even after 2000+ iterations. When I inspect this solution, it appears the way I would expect an optimal solution to appear. So if I set the solver limit to run for 180 s and use the best solution up until that point, what does this solution represent? What are the risks associated with using this output?

Assuming I am able to use the solution discussed above, I have another question. The purpose of this program is to inform decisions and to update based on current conditions. So even if I have a solution for a particular set of conditions, how can I feel confident it will work well under any number of conditions?

And last, I am not convinced that my formulation can not be improved. I would very much appreciate any tips on improving the formulation to reduce complexity or infeasibility.

  • $\begingroup$ Without the problem description and your current formulation, it's hard to say if it can be improved. MINLPs is a broad class of problems and making a solver work for a specific problem might require to tweak a bit the solver's options. It might be worth contacting the solver support for advice on how to configure it for your problem $\endgroup$
    – fontanf
    Commented Jan 28, 2021 at 20:16
  • $\begingroup$ For large problems, I would spend a lot of effort trying to linearize or approximate the problem. $\endgroup$ Commented Jan 29, 2021 at 12:49
  • $\begingroup$ What does "When I inspect this solution, it appears the way I would expect an optimal solution to appear." mean? How do you expect an optimal solution to appear? $\endgroup$ Commented Jan 30, 2021 at 14:29

1 Answer 1


If a deterministic global optimisation solver (such as Baron) reports a local solution, that solution is reliable. If the solver is terminated prematurely, the global solver will return the best solution it has found so far.

For NLP, it is quite common that global solvers find the global solution very early on, and then spend the majority of time proving it is global.

For MINLP, I often see new solutions discovered after quite a long time into the solving process, so it really depends.

Whether a non-global solution is usable for your problem or not is impossible to tell without the actual problem, but non-linear models tend to be more precise than linear ones (assuming the underlying phenomenon is non-linear), hence non-global solutions can be perfectly viable. You will have to confirm that yourself though.

Regarding change in conditions, you can't. It is likely that small changes in the model will not affect the solver's ability to solve it, but it's NP-Hard so you never know. All you can do is simulate scenarios and test the solver's robustness.

Finally, since you've tried Baron and ANTIGONE already, you could also try Couenne or our own Octeract Engine. The latter is the only deterministic global optimisation solver that has parallel branch and bound, so it's possible to globally converge within the time you need by investing more computing power.

In general though, global optimisation is the most computationally expensive type of optimisation. For hard MINLPs 180s can be nowhere near the necessary solving time, try a few hours instead. If time is critical for you, I would suggest either (i) improving the formulation, or (ii) using Octeract Engine with as many cores as you can access.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.