Globally solving nonconvex quadratic programming problems with box constraints via integer programming methods


We present effective linear programming based computational techniques for solving nonconvex quadratic programs with box constraints (BoxQP). We first observe that known cutting planes obtained from the Boolean Quadric Polytope (BQP) are computationally effective at reducing the optimality gap of BoxQP. We next show that the Chvátal–Gomory closure of the BQP is given by the odd-cycle inequalities even when the underlying graph is not complete. By using these cutting planes in a spatial branch-and-cut framework, together with a common integrality-based preprocessing technique and a particular convex quadratic relaxation, we develop a solver that can effectively solve a well-known family of test instances. Our linear programming based solver is competitive with SDP-based state of the art solvers on small instances and sparse instances. Most of our computational techniques have been implemented in the recent version of CPLEX and have led to significant performance improvements on nonconvex quadratic programs with linear constraints.

This is a preview of subscription content, access via your institution.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7


  1. 1.

    An, L.T.H., Tao, P.D.: A branch and bound method via d.c. optimization algorithms and ellipsoidal technique for box constrained nonconvex quadratic problems. J. Glob. Optim. 13, 171–206 (1998)

    MathSciNet  Article  MATH  Google Scholar 

  2. 2.

    Andersen, M., Dahl, J., Vandenberghe, L.: CVXOPT user’s guide, release 1.1.8 (2015)

  3. 3.

    Anstreicher, K.: On convex relaxations for quadratically constrained quadratic programming. Math. Program. 136, 233–251 (2012)

    MathSciNet  Article  MATH  Google Scholar 

  4. 4.

    Anstreicher, K., Burer, S.: Computable representations for convex hulls of low-dimensional quadratic forms. Math. Program. 124, 33–43 (2010)

    MathSciNet  Article  MATH  Google Scholar 

  5. 5.

    Anstreicher, K.M.: Semidefinite programming versus the reformulation-linearization technique for nonconvex quadratically constrained quadratic programming. J. Glob. Optim. 43(2), 471–484 (2008)

    MathSciNet  MATH  Google Scholar 

  6. 6.

    Barahona, F.: On cuts and matchings in planar graphs. Math. Program. 60, 53,58 (1993)

    MathSciNet  Article  MATH  Google Scholar 

  7. 7.

    Barahona, F., Grötschel, M., Jünger, M., Reinelt, G.: Experiments in quadratic 01 programming. Math. Program. 44, 127–137 (1989)

    Article  MATH  Google Scholar 

  8. 8.

    Barahona, F., Mahjoub, A.: On the cut polytope. Math. Program. 36, 157–173 (1986)

    MathSciNet  Article  MATH  Google Scholar 

  9. 9.

    Bliek, C., Bonami, P., Lodi, A.: Solving mixed-integer quadratic programming problems with IBM-CPLEX: a progress report. In: Proceedings of the Twenty-Sixth RAMP Symposium, pp. 171–180 (2014)

  10. 10.

    Boros, E., Crama, Y., Hammer, P.L.: Chvátal cuts and odd cycle inequalities in quadratic 0–1 optimization. SIAM J. Discrete Math. 5(2), 163–177 (1992)

    MathSciNet  Article  MATH  Google Scholar 

  11. 11.

    Boros, E., Hammer, P.L.: Cut-polytopes, Boolean quadric polytopes and nonnegative quadratic pseudo-Boolean functions. Math. Oper. Res. 18(1), 245–253 (1993)

    MathSciNet  Article  MATH  Google Scholar 

  12. 12.

    Burer, S., Monteiro, D.R.: A nonlinear programming algorithm for solving semidefinite programs via low-rank factorization. Math. Program. 95(2), 329–357 (2003).

    MathSciNet  Article  MATH  Google Scholar 

  13. 13.

    Burer, S.: Optimizing a polyhedral-semidefinite relaxation of completely positive programs. Math. Program. Comput. 2(1), 119 (2010)

    MathSciNet  Article  MATH  Google Scholar 

  14. 14.

    Burer, S., Chen, J.: Globally solving nonconvex quadratic programming problems via completely positive programming. Math. Program. Comput. 4(1), 33–52 (2012)

    MathSciNet  Article  MATH  Google Scholar 

  15. 15.

    Burer, S., Letchford, A.: On nonconvex quadratic programming with box constriants. SIAM J. Optim. 20(2), 1073–1089 (2009)

    MathSciNet  Article  MATH  Google Scholar 

  16. 16.

    Burer, S., Monteiro, R., Choi, C.: SDPLR 1.03-beta user’s guide (short version) (2009).

  17. 17.

    Burer, S., Vandenbussche, D.: Globally solving box-constrained nonconvex quadratic programs with semdefinite-based finite branch-and-bound. Comput. Optim. Appl. 43, 181–195 (2009)

    MathSciNet  Article  MATH  Google Scholar 

  18. 18.

    Caprara, A., Fischetti, M.: \({\{0, \frac{1}{2}\}}\) chvátal-gomory cuts. Math. Program. 74, 221–235 (1996)

    MATH  Google Scholar 

  19. 19.

    Chvátal, V.: Edmonds polytopes and weakly Hamiltonian graphs. Math. Program. 5, 29–40 (1973)

    MathSciNet  Article  MATH  Google Scholar 

  20. 20.

    Dolan, E., Moré, J.: Benchmarking optimization software with performance profiles. Math. Program. 91, 201–213 (2002)

    MathSciNet  Article  MATH  Google Scholar 

  21. 21.

    Dong, H.: Relaxing nonconvex quadratic functions by multiple adaptive diagonal perturbations. SIAM J Optim 26(3), 1962–1985 (2014).

    MathSciNet  Article  MATH  Google Scholar 

  22. 22.

    Dong, H., Linderoth, J.: On valid inequalities for quadratic programming with continuous variables and binary indicators. In: IPCO 2013: The Sixteenth Conference on Integer Programming and Combinatorial Optimization, vol. 7801, pp. 169–180. Springer (2013)

  23. 23.

    Gomory, R.E.: Outline of an algorithm for integer solutions to linear programs. Bull. Am. Math. Mon. 64, 275–278 (1958)

    MathSciNet  Article  MATH  Google Scholar 

  24. 24.

    Hansen, P., Jaumard, B., Ruiz, M., Xiong, J.: Global minimization of indefinite quadratic functions subject to box constraints. Naval Res. Logist. 40(3), 373–392 (1993)

    MathSciNet  Article  MATH  Google Scholar 

  25. 25.

    Horst, H., Pardalos, P.M., Thoai, V.: Introduction to Global Optimization, 2nd edn. Kluwer, Dordrecht (2000)

    Book  MATH  Google Scholar 

  26. 26.

    Koster, A., Zymolka, A., Kutschka, M.: Algorithms to separate 0,1/2-Chvátal–Gomory cuts. Algorithmica 55(2), 375–391 (2009)

    MathSciNet  Article  MATH  Google Scholar 

  27. 27.

    McCormick, G.P.: Computability of global solutions to factorable nonconvex programs: part I—convex underestimating problems. Math. Program. 10, 147–175 (1976)

    Article  MATH  Google Scholar 

  28. 28.

    Misener, R., Smadbeck, J.B., Floudas, C.A.: Dynamically-generated cutting planes for mixed-integer quadratically-constrained quadratic programs and their incorporation into GloMIQO 2.0. Optim. Methods Softw. 30, 215–249 (2015)

    MathSciNet  Article  MATH  Google Scholar 

  29. 29.

    Padberg, M.: The boolean quadric polytope: some characterics, facets, and relatives. Math. Program. 45, 139–172 (1989)

    Article  MATH  Google Scholar 

  30. 30.

    Padberg, M.W.: Total unimodularity and the Euler-subgraph problem. Oper. Res. Lett. 7(4), 173–179 (1988)

    MathSciNet  Article  MATH  Google Scholar 

  31. 31.

    Saxena, A., Bonami, P., Lee, J.: Convex relaxations of non-convex mixed integer quadratically constrained programs: projected formulations. Math. Program. 130, 359–413 (2011). Version with appendix available at

  32. 32.

    Sherali, H., Tuncbilek, C.: A new reformulation-convexification approach for solving nonconvex quadratic programming problems. J. Glob. Optim. 7, 1–31 (1995)

    Article  MATH  Google Scholar 

  33. 33.

    Sherali HD, Alameddine AR (1990) An explicit characterization of the convex envelope of a bivariate function over special polytopes. Ann. Oper. Res. Comput. Methods Glob. Optim. 25(1): 197–210

  34. 34.

    Shor, N.Z.: Quadratic optimization problems. Sov. J. Circuits Syst. Sci. 25(6), 1–11 (1987)

    MathSciNet  MATH  Google Scholar 

  35. 35.

    Simone, C.D.: The cut polytope and the boolean quadric polytope. Discrete Math. 79, 71–75 (1989)

    MathSciNet  Article  MATH  Google Scholar 

  36. 36.

    Sturm, J.F.: Using SeDuMi 1.02, a MATLAB toolbox for optimization over symmetric cones. Optim. Methods Softw. 11–12, 625–653 (1999)

    MathSciNet  Article  MATH  Google Scholar 

  37. 37.

    The MOSEK command line tool. Version 7.1 (revision 51) (2016).

  38. 38.

    Tawarmalani, M., Sahinidis, N.: A polyhedral branch-and-cut approach to global optimization. Math. Program. 103, 225–249 (2005)

    MathSciNet  Article  MATH  Google Scholar 

  39. 39.

    Tawarmalani, M., Sahinidis, N.V.: Global optimization of mixed integer nonlinear programs: a theoretical and computational study. Math. Program. 99, 563–591 (2004)

    MathSciNet  Article  MATH  Google Scholar 

  40. 40.

    Vandenbussche, D., Nemhauser, G.L.: A branch-and-cut algorithm for nonconvex quadratic programs with box constraints. Math. Program. 102, 559–575 (2005)

    MathSciNet  Article  MATH  Google Scholar 

  41. 41.

    Yajima, Y., Fujie, T.: A polyhedral approach for nonconvex quadratic programming problems with box constraints. J. Glob. Optim. 13, 151–170 (1998)

    MathSciNet  Article  MATH  Google Scholar 

Download references

Author information



Corresponding author

Correspondence to Jeff Linderoth.

Additional information

The work of author Linderoth is supported in part by the U.S. Department of Energy, Office of Science, Office of Advanced Scientific Computing Research, Applied Mathematics program under Contract Number AC02-06CH11357. IBM Research is also gratefully acknowledged for creating the vibrant research environment where most of this work was accomplished.



Transforming valid inequalities

We next describe how to transform valid inequalities for \({ \textsc {bqp}}\) to be valid inequalities for the set \(\mathbf {conv}(\mathcal {B}(\ell ,u)) =: { \textsc {bqp}}(\ell ,u)\) so that they can be applied to box-constrained quadratic programs with arbitrary bounds. We explain the transformations in the context of finding a valid inequality violated by a point \((\hat{x},\hat{X})\) with variable bounds \(\ell _i \le x_i \le u_i \ \forall i \in N\). The first step is to transform the variables via the equations

$$\begin{aligned} x^\prime _i&= \frac{x_i - \ell _i}{u_i-\ell _i} \qquad \forall i \in N \end{aligned}$$
$$\begin{aligned} X^\prime _{ij}&= \frac{X_{ij} - \ell _i x_j - \ell _j x_i + \ell _i \ell _j}{(u_i - \ell _i)(u_j - \ell _j)} \qquad \forall \{i,j\} \in E. \end{aligned}$$

The transformation (21) is obtained by scaling each variable in the product

$$\begin{aligned} x_i x_j \rightarrow \left( \frac{x_i - \ell _i}{u_i - \ell _i}\right) \left( \frac{x_j - \ell _j}{u_j - \ell _j}\right) , \end{aligned}$$

and replacing \(x_i x_j\) with \(X_{ij}\). The point \((x,X) \in { \textsc {bqp}}(\ell ,u)\) if and only if the transformed point \((x^\prime ,X^\prime ) \in { \textsc {bqp}}\). The point \((x^\prime ,X^\prime )\) is given to CPLEX’s standard \(0\)-\(\frac{1}{2}\) cut generator, which attempts to separate \((x^\prime ,X^\prime )\) for \({ \textsc {bqp}}\). If successful, a “canonical,” inequality of the form

$$\begin{aligned} \sum _{i \in N} \alpha _i x_i^\prime + \sum _{\{i,j\}\in E} B_{ij} X_{ij}^\prime \le \gamma \end{aligned}$$

is returned. We undo the transformation by substituting (20) and (21) into (22) to get the following equivalent inequality for \({ \textsc {bqp}}(\ell ,u)\):

$$\begin{aligned}&\sum _{i \in N} \left( \frac{\alpha _i}{u_i-\ell _i}\right) x_i + \sum _{\{i,j\}\in E} \frac{B_{ij} X_{ij} - B_{ij} \ell _j x_i - B_{ij} \ell _i x_j}{(u_i-\ell _i)(u_j-\ell _j)} \le \gamma + \sum _{i \in N} \frac{\alpha _i \ell _i}{(u_i - \ell _i)} \nonumber \\&\qquad - \sum _{\{i,j\}\in E} \frac{B_{ij} \ell _i \ell _j}{(u_i - \ell _i)(u_j - \ell _j)}. \end{aligned}$$

To implement inequality (23), the coefficient of the \(x_i\) variable in (22) is multiplied by \((u_i-\ell _i)^{-1}\) and the quantity \(\sum _{j : \{i,j\}\in E} \ B_{ij} \ell _j /(u_i-\ell _i)(u_j-\ell _j)\) is subtracted from the coefficient. For each \(X_{ij}\) variable, we scale the coefficient by coefficients of the \(X_{ij}\) variables by \((u_i - \ell _i)(u_j - \ell _j)\). We also add the quantity

$$\begin{aligned} \sum _{i \in N} \frac{\alpha _i \ell _i}{u_i-\ell _i} - \sum _{\{i,j\}\in E} \frac{B_{ij} \ell _i \ell _j}{(u_i - \ell _i)(u_j - \ell _j)} \end{aligned}$$

to the right-hand-side of the returned inequality. When computing the coefficient of each variable, if the difference in bounds for the variable is smaller than a pre-specified tolerance, (\(u_i - \ell _i < \epsilon \)), we take \(u_i = \ell _i + 1\) when calculating the transformations (20) (21) and (23). The resulting inequality is clearly valid, since it is valid for a relaxation of the nodal subproblem being considered. Further, numerical difficulties arising from possibly large coefficient values in (23) are avoided.

When these transformations are applied to the defining inequalities of the Boolean Quadric Polytope, one obtains the well-known general version of the McCormick inequalities:


bqp Bounds

Table 8 contains the raw numbers that were aggregated to make Tables 1 and 2. The value in the column \(z_{BoxQP\ }\) is the optimal solution value, \(z_{{ \textsc {bqp}}}^U\) is the upper bound on \(z_{BoxQP\ }\) obtained by the bqprestriction, and \(z_{{ \textsc {bqp}}}^L\) is the lower bound on \(z_{BoxQP\ }\) obtained from the bqprelaxation. The \(z_{{ \textsc {bqp}}}^L\)(root) column contains the final root relaxation value from CPLEX when solving the integer program associated with \(z_{{ \textsc {bqp}}}^L\), and \(z_{\Delta ^+}\) is the bound at the root that could be obtained if exact separation of the odd cycle inequalities was done. The column \(z_{\mathcal {M}}\) contains the lower bound obtained from optimizing over the McCormick relaxation \(\mathcal {M}\).

Table 8 Bounds for BQP relaxations

Algorithmic improvements

Table 9 contains the raw numbers that were aggregated to make Table 3. The value in the column \(z_{BoxQP\ }\) is the optimal solution value, \(z_{\mathcal {M}^2}+\) \(0\)-\(\frac{1}{2}\) is the bound obtained from the strengthened McCormick relaxation with CPLEX \(0\)-\(\frac{1}{2}\)-cuts added, \(z_{\mathcal {M}}+\) \(0\)-\(\frac{1}{2}\)the bound from the standard McCormick relaxation with CPLEX \(0\)-\(\frac{1}{2}\)-cuts added. The columns \(z_{\mathcal {M}^2}\) and \(z_{\mathcal {M}}\) show the lower bounds obtained from the strengthened and traditional McCormick relaxation, respectively.

Table 9 Comparing bounds for \(\mathcal {M}\) and \(\mathcal {M}^2\) relaxations

Table 10 contains raw numbers on the computational performance of algorithmic techniques described in Sects. 4.2 and 4.3.

Table 10 Computational performance of integer strengthening and local cut improvement

SDP relaxation bounds

This appendix contains computational time and relaxation bound information for various SDP-based approaches for solving BoxQP , as described in Sect. 5.1. For the results of the two methods SBL and Dong, the reader is invited to refer directly to the papers [21, 31] (Table 11).

Table 11 Bound and solution time for the various SDP based relaxations

Solver comparison

This appendix contains the raw performance numbers comparing different solvers for BoxQP . The experiment is described in Sect. 5.2 (Table 12).

Table 12 CPU time and final optimality gap of each solver on all instances

CPLEX performance

This appendix contains the raw performance numbers for the computational experiment comparing the performance of CPLEX v12.6.3 with and without the BQP-based cutting planes described in Sect. 5.3 (Table 13).

Table 13 Results of complete optimization without and with cuts

Rights and permissions

Reprints and Permissions

About this article

Verify currency and authenticity via CrossMark

Cite this article

Bonami, P., Günlük, O. & Linderoth, J. Globally solving nonconvex quadratic programming problems with box constraints via integer programming methods. Math. Prog. Comp. 10, 333–382 (2018).

Download citation


  • Nonconvex quadratic programming
  • Global optimization
  • Boolean Quadric Polytope

Mathematics Subject Classification

  • 90C20
  • 90C26
  • 90C57