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)

Algorithms

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)

Features

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

References

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 Studies in Mathematics

Hellenica World - Scientific Library

Retrieved from "http://en.wikipedia.org/"

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