While trying to find a better solution for the problem described in this post, I noticed a few rough spots when using OQNLP.
The GAMS/QONLP link writes messages to the listing file with =2 attached:
Reading parameter(s) from "C:\projects\test\oqnlp.opt"=2
>> nlpsolver conopt=2
>> iteration_limit 10000=2
>> max_solver_calls_noimprovement 2000=2
Finished reading from "C:\projects\test\oqnlp.opt"=2
OQMS Default Iteration Limit of 1000 OverRidden by Option File Value of 10000=2
This is largely cosmetics (including the overuse of capitals). The documentation contains some funny characters and incomprehensible sentences:
within a percentage gap of 1default parameters and options
It solved two of those three to within 1library to within 1seven remaining ones
Unfortunately quality assurance is really more than checking the return codes on test scripts. These silly errors are only caught by actually solving a model and eyeballing the results and reading the generated documentation.
Btw: no better solution was found. Using OQNLP provides a convenient and quick way to investigate if a local solution is not easily dominated by other better solutions. The model was reformulated in this post making a single solve fast enough that using OQNLP’s multi-start approach a feasible approach. The nonlinear functions were too complex for Baron: it had problems even getting started (this was to be expected).