Knitro 11.0 was the last major Knitro release to provide a version for the Windows 32-bit platform. Impacted users are advised to migrate to 64-bit Windows.
The MATLAB interface to Knitro 12.0 (i.e. knitromatlab) supports
MATLAB 2018 and newer. To use Knitro with older versions of MATLAB (i.e. pre-2018) on Linux-based
systems, it may be necessary to first set the
variable to point to the
libiomp5.so shared library provided in
lib directory, before starting MATLAB from the command
line. For example:
What’s new in Knitro 12.0 ?
- Knitro 12.0 offers a new interface to the Julia language based on the latest Knitro API and the new Julia MathOptInterface (MOI). It can also be used through the JuliaOpt JuMP modeling language, which provides automatic derivatives for nonlinear functions. See Knitro / Julia reference.
- Knitro 12.0 introduces a new single call Python interface, as an alternative
to the existing Knitro Python interface that mimics the Knitro callable
library API. This new interface allows the user to directly pass an optimization
problem structure to Knitro and solve it in a single call fashion. See Getting started with Python
for a quick introduction to Knitro Python and
exampleSingleCall.pyin the Python directory of the Knitro distribution for examples.
- Knitro 12.0 adds many improvements to the Knitro mixed-integer (MIP/MINLP)
branch-and-cut solver. Several new cuts controlled by Knitro user options have
been introduced including mixed-integer rounding cuts (
mip_mir), zero-half cuts (
mip_zerohalf) and clique cuts (
mip_clique). In addition, improvements were made to the knapsack cuts implementation. Lastly the Knitro-Tuner, which previously could only be applied to continuous models, has been extended to handle mixed-integer models.
- Knitro 12.0 offers several enhancements to the Knitro presolver. The presolver
has been extended to allow multiple passes through the presolve operations
controlled via the new
presolve_passesuser option. In addition, the level of presolve operations applied is controlled through the new
presolve_leveluser option. Note that the existing
presolveuser option is only used to enable or disable the Knitro presolver and the
presolveoption names have changed from “none” (0) and “basic” (1) to “no” (0) and “yes” (1).
- Knitro 12.0 offers the capability to read and solve optimization models written in MPS (Mathematical Programming System) format. See The Knitro MPS file reader for more information on this topic.
- Knitro 12.0 offers performance improvements on medium to large-scale SOCP models.
- Knitro 12.0 offers efficiency and storage/memory improvements in the callable library C API.
Bug Fixes in Knitro 12.0.0
- Fixed bugs in the mip_knapsack option that could occasionally cause Knitro to
- Fixed a bug detecting convexity of some QCQP models with linear objective functions.
- Fixed a bug detecting certain quadratic constraints as cone constraints, when the quadratic constraint has repeated elements.