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.