qcqp_ex1

qcqp_ex1()

qcqp_ex1() - Example of quadratically-constrained quadratic program (QCQP) optimization.

Example of solving the following QCQP problem, first using mp.opt_model and mp.opt_model.solve(), then directly using qcqps_master().

(41)\[\min_{\x} \frac{1}{2} \trans{\x} \Hh \x + \trans{\c} \x\]

subject to

(42)\[\lq \le \frac{1}{2}\textrm{diag}\left(\trans{\diag{\{\x\}_{\times n_q}}} \diag{\{\QQ_i\}_{i=1}^{n_q}} \diag{\{\x\}_{\times n_q}}\right) + \Bb \x \le \uq,\]
(43)\[\l \le \param{\rmat{A}} \x \le \u\]
(44)\[\param{\x}_\mathrm{min} \le \x \le \param{\x}_\mathrm{max}\]

where (42) can also be written as

(45)\[\lqi \le \frac{1}{2}\trans{\x} \QQ_i \x + \b_i \x \le \uqi, \ \ \ i = 1,2,..., n_q\]

For the problem in this example, we have

(46)\[\begin{split}\Hh = \left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\right], \c = \left[\begin{array}{c} 0 \\ 0 \\ -1 \end{array}\right]\end{split}\]
(47)\[\begin{split}\QQ_1 = \left[\begin{array}{ccc} 2 & 0 & 0 \\ 0 & 2 & 0 \\ 0 & 0 & -2 \end{array}\right], \QQ_2 = \left[\begin{array}{ccc} 2 & 0 & 0 \\ 0 & 0 & -2 \\ 0 & -2 & 0 \end{array}\right]\end{split}\]
(48)\[\begin{split}\lq = \left[\begin{array}{c} -\infty \\ -\infty \end{array}\right], \Bb = \left[\begin{array}{ccc} 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\right], \uq = \left[\begin{array}{c} 0 \\ 0 \end{array}\right]\end{split}\]
(49)\[\l = 1, \AA = \left[\begin{array}{ccc} 1 & 1 & 1 \end{array}\right], \u = 1\]
(50)\[\begin{split}\param{\x}_\mathrm{min} = \left[\begin{array}{c} 0 \\ 0 \\ 0 \end{array}\right], \param{\x}_\mathrm{max} = \left[\begin{array}{c} \infty \\ \infty\\ \infty \end{array}\right]\end{split}\]