<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Quadratically_constrained_quadratic_program</id>
	<title>Quadratically constrained quadratic program - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Quadratically_constrained_quadratic_program"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Quadratically_constrained_quadratic_program&amp;action=history"/>
	<updated>2026-05-04T21:41:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Quadratically_constrained_quadratic_program&amp;diff=4218065&amp;oldid=prev</id>
		<title>128.141.76.69 at 15:21, 6 June 2025</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Quadratically_constrained_quadratic_program&amp;diff=4218065&amp;oldid=prev"/>
		<updated>2025-06-06T15:21:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Optimization problem in mathematics}}&lt;br /&gt;
In [[mathematical optimization]], a &amp;#039;&amp;#039;&amp;#039;quadratically constrained quadratic program&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;QCQP&amp;#039;&amp;#039;&amp;#039;) is an [[optimization problem]] in which both the [[objective function]] and the [[constrained optimization|constraints]] are [[quadratic function]]s. It has the form&lt;br /&gt;
&lt;br /&gt;
:&amp;lt;math&amp;gt; \begin{align}&lt;br /&gt;
&amp;amp; \text{minimize} &amp;amp;&amp;amp; \tfrac12 x^\mathrm{T} P_0 x + q_0^\mathrm{T} x \\&lt;br /&gt;
&amp;amp; \text{subject to} &amp;amp;&amp;amp; \tfrac12 x^\mathrm{T} P_i x + q_i^\mathrm{T} x + r_i \leq 0 \quad \text{for } i = 1,\dots,m , \\&lt;br /&gt;
&amp;amp;&amp;amp;&amp;amp; Ax = b, &lt;br /&gt;
\end{align} &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, ..., &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; are &amp;#039;&amp;#039;n&amp;#039;&amp;#039;-by-&amp;#039;&amp;#039;n&amp;#039;&amp;#039; matrices and &amp;#039;&amp;#039;x&amp;#039;&amp;#039; &amp;amp;isin; &amp;#039;&amp;#039;&amp;#039;R&amp;#039;&amp;#039;&amp;#039;&amp;lt;sup&amp;gt;&amp;#039;&amp;#039;n&amp;#039;&amp;#039;&amp;lt;/sup&amp;gt; is the optimization variable.&lt;br /&gt;
&lt;br /&gt;
If &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, ..., &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; are all [[Positive-definite matrix|positive semidefinite]], then the problem is [[Convex set|convex]]. If these matrices are neither positive nor negative semidefinite, the problem is non-convex. If &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;, ... ,&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; are all zero, then the constraints are in fact [[Linear map|linear]] and the problem is a [[quadratic program]].&lt;br /&gt;
&lt;br /&gt;
== Hardness ==&lt;br /&gt;
A convex QCQP problem can be efficiently solved using an interior point method (in a polynomial time), typically requiring around 30-60 iterations to converge. Solving the general non-convex case is an [[NP-hard]] problem.&lt;br /&gt;
&lt;br /&gt;
To see this, note that the two constraints &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; − 1) &amp;amp;le; 0 and &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; − 1) &amp;amp;ge; 0 are equivalent to the constraint &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt;(&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; − 1) = 0, which is in turn equivalent to the constraint &amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;1&amp;lt;/sub&amp;gt; &amp;amp;isin; {0, 1}. Hence, any [[0–1 integer program]] (in which all variables have to be either 0 or 1) can be formulated as a quadratically constrained quadratic program. Since 0–1 integer programming is NP-hard in general, QCQP is also NP-hard.&lt;br /&gt;
&lt;br /&gt;
However, even for a nonconvex QCQP problem a local solution can generally be found with a nonconvex variant of the interior point method. In some cases (such as when solving nonlinear programming problems with a sequential QCQP approach) these local solutions are sufficiently good to be accepted.&lt;br /&gt;
&lt;br /&gt;
== Relaxation ==&lt;br /&gt;
There are two main relaxations of QCQP: using [[semidefinite programming]] (SDP), and using the [[reformulation-linearization technique]] (RLT). For some classes of QCQP problems (precisely, QCQPs with zero diagonal elements in the data matrices), [[second-order cone programming]] (SOCP) and [[linear programming]] (LP) relaxations providing the same objective value as the SDP relaxation are available.&amp;lt;ref&amp;gt;{{Cite journal|last1=Kimizuka|first1=Masaki|last2=Kim|first2=Sunyoung|last3=Yamashita|first3=Makoto|date=2019|title=Solving pooling problems with time discretization by LP and SOCP relaxations and rescheduling methods|journal=Journal of Global Optimization|language=en|volume=75|issue=3|pages=631–654|doi=10.1007/s10898-019-00795-w|s2cid=254701008 |issn=0925-5001}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nonconvex QCQPs with non-positive off-diagonal elements can be exactly solved by the SDP or SOCP relaxations,&amp;lt;ref&amp;gt;{{Cite journal|last1=Kim|first1=Sunyoung|last2=Kojima|first2=Masakazu|date=2003|title=Exact Solutions of Some Nonconvex Quadratic Optimization Problems via SDP and SOCP Relaxations|journal=Computational Optimization and Applications|volume=26|issue=2|pages=143–154|doi=10.1023/A:1025794313696|s2cid=1241391 }}&amp;lt;/ref&amp;gt; and there are polynomial-time-checkable sufficient conditions for SDP relaxations of general QCQPs to be exact.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite journal|last1=Burer|first1=Samuel|last2=Ye|first2=Yinyu|date=2019-02-04|title=Exact semidefinite formulations for a class of (random and non-random) nonconvex quadratic programs|journal=Mathematical Programming|volume=181|pages=1–17|language=en|doi=10.1007/s10107-019-01367-2|issn=0025-5610|arxiv=1802.02688|s2cid=254143721 }}&amp;lt;/ref&amp;gt; Moreover, it was shown that a class of random general QCQPs has exact semidefinite relaxations with high probability as long as the number of constraints grows no faster than a fixed polynomial in the number of variables.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Semidefinite programming ===&lt;br /&gt;
When &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;0&amp;lt;/sub&amp;gt;, ..., &amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;lt;sub&amp;gt;&amp;#039;&amp;#039;m&amp;#039;&amp;#039;&amp;lt;/sub&amp;gt; are all [[Positive-definite matrix|positive-definite matrices]], the problem is [[Convex optimization|convex]] and can be readily solved using [[interior point method]]s, as done with [[semidefinite programming]].&lt;br /&gt;
&lt;br /&gt;
== Example ==&lt;br /&gt;
&lt;br /&gt;
* [[Cut (graph theory)|Max Cut]] is a problem in graph theory, which is NP-hard. Given a graph, the problem is to divide the vertices in two sets, so that as many edges as possible go from one set to the other. Max Cut can be formulated as a QCQP, and SDP relaxation of the dual provides good lower bounds.&lt;br /&gt;
* QCQP is used to finely tune machine setting in high-precision applications such as [[photolithography]].&lt;br /&gt;
&lt;br /&gt;
==Solvers and scripting (programming) languages==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!Name&lt;br /&gt;
!Brief info&lt;br /&gt;
|-&lt;br /&gt;
|[[ALGLIB]]|| ALGLIB, an open source/commercial numerical library, includes a QP solver supporting quadratic equality/inequality/range constraints, as well as other (conic) constraint types.&lt;br /&gt;
|-&lt;br /&gt;
|[[Artelys Knitro]]|| Knitro is a solver specialized in nonlinear optimization, but also solves linear programming problems, quadratic programming problems, second-order cone programming, systems of nonlinear equations, and problems with equilibrium constraints.&lt;br /&gt;
|-&lt;br /&gt;
|[[FICO Xpress]]|| A commercial optimization solver for linear programming, non-linear programming, mixed integer linear programming, convex quadratic programming, convex quadratically constrained quadratic programming, second-order cone programming and their mixed integer counterparts.&lt;br /&gt;
|-&lt;br /&gt;
|[[AMPL]]||&lt;br /&gt;
|-&lt;br /&gt;
|[[CPLEX]]|| Popular solver with an API for several programming languages.  Free for academics.&lt;br /&gt;
|- &lt;br /&gt;
|[[MOSEK]]|| A solver for large scale optimization with API for several languages (C++, java, .net, Matlab and python)&lt;br /&gt;
|-&lt;br /&gt;
|[[TOMLAB]]||Supports global optimization, integer programming, all types of least squares, linear, quadratic and unconstrained programming for [[MATLAB]]. TOMLAB supports solvers like [[CPLEX]], [[SNOPT]] and [[KNITRO]].&lt;br /&gt;
|-&lt;br /&gt;
|[[Wolfram Mathematica]]||Able to solve QCQP type of problems using functions like {{mono|Minimize}}.&lt;br /&gt;
|-&lt;br /&gt;
|[https://clarabel.org/ clarabel]&amp;lt;!--Q134410820--&amp;gt;|| Open source interior point numerical solver for convex optimization problems, supports second-order cone programming.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
* {{cite book&lt;br /&gt;
  | last = Boyd&lt;br /&gt;
  | first = Stephen&lt;br /&gt;
  |author2=Lieven Vandenberghe&lt;br /&gt;
   | title = Convex Optimization&lt;br /&gt;
  | publisher = Cambridge University Press&lt;br /&gt;
  | year = 2004&lt;br /&gt;
  | location = Cambridge&lt;br /&gt;
  | url = https://web.stanford.edu/~boyd/cvxbook/&lt;br /&gt;
  | isbn = 978-0-521-83378-3}}&lt;br /&gt;
&lt;br /&gt;
== Further reading ==&lt;br /&gt;
&lt;br /&gt;
=== In statistics ===&lt;br /&gt;
* {{cite journal |author=Albers C. J., Critchley F., Gower, J. C. |title=Quadratic Minimisation Problems in Statistics |journal=Journal of Multivariate Analysis |volume=102 |issue=3 |pages=698–713 |year=2011 |doi=10.1016/j.jmva.2009.12.018 |url=https://pure.rug.nl/ws/files/111582994/1_s2.0_S0047259X09002498_main.pdf |hdl=11370/6295bde7-4de1-48c2-a30b-055eff924f3e |hdl-access=free }}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://neos-guide.org/content/quadratic-constrained-quadratic-programming NEOS Optimization Guide: Quadratic Constrained Quadratic Programming]&lt;br /&gt;
&lt;br /&gt;
[[Category:Mathematical optimization]]&lt;/div&gt;</summary>
		<author><name>128.141.76.69</name></author>
	</entry>
</feed>