Artelys Knitro is a commercial software package for solving large scale nonlinear mathematical optimization problems.

KNITRO – (the original solver name) short for "Nonlinear Interior point Trust Region Optimization" (the "K" is silent) – was co-created by Richard Waltz, Jorge Nocedal, Todd Plantenga and Richard Byrd. It was first introduced in 2001, as a derivative of academic research at Northwestern University (through Ziena Optimization LLC), and has since been continually improved by developers at Artelys.

Optimization problems must be presented to Knitro in mathematical form, and should provide a way of computing function derivatives using sparse matrices (Knitro can compute derivatives approximation but in most cases providing the exact derivatives is beneficial). An often easier approach is to develop the optimization problem in an algebraic modeling language. The modeling environment computes function derivatives, and Knitro is called as a "solver" from within the environment.

Problem classes solved by Artelys Knitro

Knitro is specialized for nonlinear optimization but also solves a wide range of optimization problems:

General nonlinear problems (NLP), including non-convex
Systems of nonlinear equations
Linear problems (LP)
Quadratic problems (QP/QCQP/SOCP), both convex and non-convex
Least squares problems / regression, both linear and nonlinear
Mathematical programs with complementarity constraints (MPCC/MPEC)
Mixed-integer nonlinear problems (MIP/MINLP)
Derivative-free optimization problems (DFO)


Artelys Knitro contains a wide range of optimization algorithms.
NonLinear Programming (NLP) solver

Knitro offers four different optimization algorithms for solving optimization problems[1]. Two algorithms are of the interior point type, and two are 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.

Interior/Direct algorithm
Interior/Conjugate Gradient algorithm
Active Set algorithm
Sequential Quadratic Programming (SQP) algorithm

Mixed-Integer NonLinear Programming (MINLP) solver

Knitro provides tools for solving optimization models (both linear and nonlinear) with binary or integer variables. The Knitro mixed integer programming (MIP) code offers three algorithms for mixed-integer nonlinear programming (MINLP)[2]:

Nonlinear Branch and Bound
Quesada Grossman algorithm
Mixed-Integer Sequential Quadratic Programming (MISQP)


Artelys Knitro supports a variety of programming and modeling languages including[3].

Object-oriented interfaces for C++, C#, Java and Python
Matrix-oriented interfaces for Julia, C, Fortran, MATLAB, and R
Links to modeling languages: AIMMS, AMPL, GAMS, and MPL
Links to Excel through Frontline Solvers

Artelys Knitro also includes a number of key features:

A large set of well-documented user options[4] and automatic tuner
(Parallel) multi-start for global optimization
Derivatives approximation and checker
Internal presolver


Nocedal, Jorge; Wright, Stephen J. (2006). Numerical Optimization (2nd ed.). Springer Publishing. ISBN 0-387-30303-0.
Byrd, Richard H.; Nocedal, Jorge; Waltz, Richard A. (2006). "Knitro: An Integrated Package for Nonlinear Optimization" (PDF). Archived from the original (PDF) on October 12, 2016. Retrieved November 17, 2017.

External links

Artelys Knitro NLP algorithms
Artelys Knitro MINLP algorithms
Artelys Knitro Features

Artelys Knitro User's Manual

Jorge Nocedal, profile at EECS department of McCormick School of Engineering

Undergraduate Texts in Mathematics

Graduate Texts in Mathematics

Graduate Studies in Mathematics

Mathematics Encyclopedia



Hellenica World - Scientific Library

Retrieved from ""
All text is available under the terms of the GNU Free Documentation License