Release notes

What’s new in Knitro 14.0 ?

  • Knitro 14.0 offers significant performance improvements on mixed-integer problems. New probing and flow cover cuts were added, which are controlled by the new user options mip_cut_probing and mip_cut_flowcover. In addition, new local search heuristics were added (controlled by the new mip_heuristic_localsearch option).

  • Knitro 14.0 offers several improvements related to the Knitro presolver including new presolve operations related to substitution of variables (presolveop_substitution, presolveop_substitution_tol), and improvements/extensions to the presolve operations for detecting duplicate or dependent constraints (presolveop_redundant).

  • Knitro 14.0 offers several improvements related to the Knitro multi-start procedure including a new “rule-based” termination procedure for the ms_terminate option, which will automatically terminate the multi-start procedure when the probability of finding new local solutions is low. A new option ms_initpt_cluster was also added. This option controls the choice of the initial multi-start points. In particular, it tries to avoid starting local solves from initial points that are likely to converge to local solutions that have already been discovered.

  • Knitro 14.0 offers significant improvements when using quasi-Newton Hessian approximations (e.g. BFGS, SR1, L-BFGS), particularly when there are linear variables in the model.

  • Knitro 14.0 offers significant performance improvements on QP/QCQP models.

  • Knitro 14.0 offers a new custom feasibility option for the barrier algorithms that allows the user to specify individual inequality constraints that should be satisfied throughout the optimization. This feature can be enabled through the new KN_set_con_honorbnds() API function.

  • Knitro 14.0 offers a new KN_update() API function that allows for updating the model, without solving, after making changes.

  • Knitro 14.0 adds a new option scale_vars to enable an automatic scaling strategy for the variables.

  • Knitro 14.0 adds more controls over the linear solver settings via the new user options linsolver_nodeamalg, linsolver_ordering, and linsolver_scaling.

  • Knitro 14.0 adds a new option bar_maxmu to impose an upper bound on the barrier parameter used in the interior-point algorithms.

  • Knitro 14.0 adds a new option bar_globalize to select different globalization strategies for the interior-point algorithms.

  • Knitro 14.0 adds a new default auto setting for the blasoption user parameter.

  • Knitro 14.0 has been updated to use Intel MKL and OpenMP version 2022.2.0.

Bug Fixes in Knitro 14.0.0

  • Fixed bug when deleting or changing linear structures before re-solving on problems utilizing evaluation callbacks.

  • Fixed bug that could cause multi-start to return a bad solution sometimes when it terminated from reaching the time limit.

  • Fixed bug in presolve operation that automatically detects complementarity constraints.

  • Fixed bug when using the MPEC heuristic inside the branch-and-bound method.

  • Fixed bug when using special initial points via the ncvx_qcqp_init option.

  • Fixed bug setting default bounds for integer variables in the MPS reader.