# MIQCP: mixed integer programs with quadratic terms in the constraints

Distinguishes types of mixed integer quadratically constrained programs according to quadratic terms in the constraints of the model.

As introduced in the topic Stating a MIP problem, a mixed integer programming (MIP) problem can contain both integer and continuous variables. If the problem contains an objective function with no quadratic term, (a linear objective), and all the constraints are linear, then the problem is termed a Mixed Integer Linear Program (MILP).

If there is a quadratic term in the objective function and all the constraints in the model are linear, the problem is termed a Mixed Integer Quadratic Program (MIQP). (For more information about solving a MIQP, see the topic MIQP: mixed integer programs with quadratic terms in the objective function.) If the model has any constraints containing a quadratic term, regardless of the objective function, the problem is termed a Mixed Integer Quadratically Constrained Program (MIQCP).

This topic explores MIQCP further and specifies the features of MIQCP problems that CPLEX solves.

The topics Characteristics of a quadratically constrained program and Convexity clarify the difference between convex and nonconvex quadratically constrained programs (QCP). That same distinction is relevant to MIQCP problems as well.

By default, CPLEX can solve a mixed integer quadratically constrained program (MIQCP) satisfying certain conditions on the objective function and on the constraints.

Conditions on the objective function

• The objective function is linear.
• Or, the objective function contains quadratic terms and is convex. The observations in Distinguishing between convex and nonconvex QPs apply here.
• Or, the objective function contains only quadratic terms that are the product of binary variables; in this case, the objective function is not necessarily convex.

Conditions on the constraints

Each constraint in the MIQCP model must be an inequality. Furthermore, each of those inequality constraints must satisfy at least one of the following conditions:

If these assumptions about the objective and about the constraints are not satisfied, CPLEX will return the error CPXERR_Q_NOT_POS_DEF.