# The OPTQP Procedure

## Overview: OPTQP Procedure

The OPTQP procedure solves quadratic programs—problems with quadratic objective function and a collection of linear constraints, including lower or upper bounds (or both) on the decision variables.

Mathematically, a quadratic programming (QP) problem can be stated as follows:

where

 is the quadratic (also known as Hessian) matrix is the constraints matrix is the vector of decision variables is the vector of linear objective function coefficients is the vector of constraints right-hand sides (RHS) is the vector of lower bounds on the decision variables is the vector of upper bounds on the decision variables Number of variables (columns)

The quadratic matrix is assumed to be symmetric; that is,

Indeed, it is easy to show that even if , the simple modification

produces an equivalent formulation hence symmetry is assumed. When you specify a quadratic matrix, it suffices to list only lower triangular coefficients.

In addition to being symmetric, is also required to be positive semidefinite,

for minimization type of models; it is required to be negative semidefinite for the maximization type of models. Convexity can come as a result of a matrix-matrix multiplication

or as a consequence of physical laws, and so on. See Figure 12.1 for examples of convex, concave, and nonconvex objective functions.

Figure 12.1: Examples of Convex, Concave, and Nonconvex Objective Functions

The order of constraints is insignificant. Some or all components of or (lower and upper bounds, respectively) can be omitted.