## 1Introduction

### 1.1Overview

Welcome to the TOMLAB /KNITRO User's Guide. TOMLAB /KNITRO includes the KNITRO  NLP solver from Ziena Optimization and an interface to The MathWorks' MATLAB.

Knitro implements both state-of-the-art interior-point and active-set methods for solving nonlinear optimization problems. In the interior method (also known as a barrier method), the nonlinear programming problem is replaced by a series of barrier sub-problems controlled by a barrier parameter μ (initial value set using Prob.KNITRO.options.mu ). The algorithm uses trust regions and a merit function to promote convergence. The algorithm performs one or more minimization steps on each barrier problem, then decreases the barrier parameter, and repeats the process until the original problem has been solved to the desired accuracy.

Knitro provides two procedures for computing the steps within the interior point approach. In the version known as Interior/CG each step is computed using a projected conjugate gradient iteration. This approach differs from most interior methods proposed in the literature in that it does not compute each step by solving a linear system involving the KKT (or primal-dual) matrix. Instead, it factors a projection matrix, and uses the conjugate gradient method, to approximately minimize a quadratic model of the barrier problem.

The second procedure for computing the steps, which we call Interior/Direct, always attempts to compute a new iterate by solving the primal-dual KKT matrix using direct linear algebra. In the case when this step cannot be guaranteed to be of good quality, or if negative curvature is detected, then the new iterate is computed by the Interior/CG procedure.

Knitro also implements an active-set sequential linear-quadratic programming (SLQP) algorithm which we call Active. This method is similar in nature to a sequential quadratic programming method but uses linear programming sub-problems to estimate the active-set at each iteration. This active-set code may be preferable when a good initial point can be provided, for example, when solving a sequence of related problems.

We encourage the user to try all algorithmic options to determine which one is more suitable for the application at hand. For guidance on choosing the best algorithm see Section 7.

### 1.2Contents of this Manual

• Section 1 provides a basic overview of the KNITRO  solver.
• Section 2 provides an overview of the Matlab interface to KNITRO .
• Section 3 describes how to set KNITRO  solver options from Matlab.
• Section 4 gives detailed information about the interface routine knitroTL .
• Section 5 shows how the solver terminates.
• Section 6 details the solver output.
• Section 7 provides detailed information about the algorithmic options available.
• Section 8 discusses some of the options and features in TOMLAB /KNITRO.