KNITRO

KNITRO is a commercial software package for solving large scale mathematical optimization problems. KNITRO is specialized for nonlinear optimization, but also solves linear programming problems, quadratic programming problems, and systems of nonlinear equations. The unknowns in these problems must be continuous variables in continuous functions; however, functions can be convex or nonconvex. KNITRO computes a numerical solution to the problem -- it does not find a symbolic mathematical solution.

KNITRO can also solve mixed integer linear, quadratic or nonlinear programming problems, i.e. problems with variables that take integer values.

Optimization problems must be presented to KNITRO in mathematical form, and should provide a way of computing function derivatives using sparse matrices. Problems may be written in C, C++, Fortran, or Java, in which case KNITRO is called as a software routine to solve the problem. An often easier approach is to develop the optimization problem in an algebraic modeling language (AML) like AIMMS, AMPL, GAMS, Mathematica, etc. The modeling environment computes function derivatives, and KNITRO is called as a "solver" from within the environment.

KNITRO offers three different optimization algorithms for solving optimization problems. Two algorithms are of the interior point type, and one is of the active set type. These algorithms are known to have fundamentally different characteristics; for example, interior point methods follow a path through the interior of the feasible region while active set methods tend to stay at the boundaries. KNITRO provides both types of algorithm for greater flexibility in solving problems, and allows crossover during the solution process from one algorithm to another. The code also provides a multistart option for promoting the computation of the global minimum.

KNITRO, short for "Nonlinear Interior point Trust Region Optimization" (the "K" is silent) was created primarily by Richard Waltz, Jorge Nocedal, Todd Plantenga and Richard Byrd. It is produced by Ziena Optimization, Inc. KNITRO was introduced in 2001 as a derivative of academic research at Northwestern University, and has undergone continual improvement since.