Release notes

What’s new in Knitro 14.1 ?

  • Knitro 14.1 offers significant performance improvements and improved robustness on numerically difficult nonlinear optimization problems, as well as improvements on QP/QCQP models. Improvements have also been made to the branch-and-bound MIP solver, the SQP algorithm, and the presolver.

  • Knitro 14.1 offers significant improvements for nonlinear, non-convex mixed-integer problems (MINLPs). The nonlinear branch-and-bound algorithm has been updated to handle non-convex problems specifically, leading to better primal solutions. Knitro 14.1 automatically detects if the non-convexity of the problem requires special care. Therefore, this feature can be used even if the problem is convex or just slightly non-convex. This feature is available when setting the option mip_multistart=1 and may become the default behavior of the branch-and-bound algorithm in future versions.

  • Knitro 14.1 offers an improved multi-start procedure. The new multi-start, by default, automatically terminates when the probability of finding new local solutions is small, while always producing deterministic results. A new option, ms_terminaterule_tol, can be used to control how quickly termination is triggered.

  • Knitro 14.1 introduces a new initpt_strategy option to control how much effort is devoted to improving the initial point before launching one of the Knitro algorithms for continuous optimization.

  • Knitro 14.1 introduces a new eval_cost option that allows the user to specify how expensive function evaluations are, allowing Knitro to better tune its behavior based on this information.

  • Knitro 14.1 adds a new “dynamic” option value for the linsolver_scaling user option. This new option value will decide whether or not to apply scaling to the linear system solves using a dynamic scheme.

  • Knitro 14.1 adds a new API function KN_get_param_value_doc_from_index() to retrieve a description of the i-th possible value of a particular Knitro user option.

  • Knitro 14.1 updates the Knitro-AMPL interface to allow for better handling of partially specified initial points. This interface has also been updated to use Ampl Solver Library (ASL) version 20240603. This fixes some issues when solving models with complementarity constraint through the Knitro-AMPL interface.

  • Knitro 14.1 updates the Knitro-MATLAB interface to allow re-using expensive evalutions common to both the objective function and constraint functions so they are not unnecessarily re-computed.

  • Knitro 14.1 updates the Knitro Julia interface examples to work with the newer versions of Julia 1.10.2+.

  • Knitro 14.1 offers some speedups when using the L-BFGS Hessian approximation.

Bug Fixes in Knitro 14.1.0

  • Fixed bug that caused multi-start to run with nested parallelism by default.

  • Fixed bug that caused the Knitro branch-and-bound solver to stall on mixed-integer problems with no constraints (other than bounded variables).

  • Fixed bug that caused a crash when mip_restart=0.

  • Fixed issue that occurred when using the presolve substitution operation on mixed-integer models.

  • Fixed bug in the diving heuristic for branch-and-bound.

  • Fixed bug in the Jacobian returned by the Knitro-MATLAB function “knitro_nlnlsq”.

  • Fixed bug that caused Knitro-MATLAB to incorrectly identify nonlinear optimization problems as least-squares problems in some instances, resulting in incorrect solutions, when using the MATLAB problem-based API.

  • Fixed bug in the Knitro MPS reader/writer.