[][src]Trait totsu::qcqp::QCQP

pub trait QCQP {
    fn solve_qcqp<L>(
        &mut self,
        param: &PDIPMParam,
        log: &mut L,
        mat_p: &[Mat],
        vec_q: &[Mat],
        scl_r: &[FP],
        mat_a: &Mat,
        vec_b: &Mat
    ) -> Result<Mat, String>
    where
        L: Write
; }

Quadratically constrained quadratic program

The problem is \[ \begin{array}{ll} {\rm minimize} & {1 \over 2} x^T P_0 x + q_0^T x + r_0 \
{\rm subject \ to} & {1 \over 2} x^T P_i x + q_i^T x + r_i \le 0 \quad (i = 1, \ldots, m) \
& A x = b, \end{array} \] where

  • variables \( x \in {\bf R}^n \)
  • \( P_j \in {\bf S}_{+}^n \), \( q_j \in {\bf R}^n \), \( r_j \in {\bf R} \) for \( j = 0, \ldots, m \)
  • \( A \in {\bf R}^{p \times n} \), \( b \in {\bf R}^p \).

Internally a slack variable \( s \in {\bf R} \) is introduced for the infeasible start method as follows: \[ \begin{array}{ll} {\rm minimize}_{x,s} & {1 \over 2} x^T P_0 x + q_0^T x + r_0 \
{\rm subject \ to} & {1 \over 2} x^T P_i x + q_i^T x + r_i \le s \quad (i = 1, \ldots, m) \
& A x = b \
& s = 0. \end{array} \]

Required methods

fn solve_qcqp<L>(
    &mut self,
    param: &PDIPMParam,
    log: &mut L,
    mat_p: &[Mat],
    vec_q: &[Mat],
    scl_r: &[FP],
    mat_a: &Mat,
    vec_b: &Mat
) -> Result<Mat, String> where
    L: Write

Loading content...

Implementors

impl QCQP for PDIPM[src]

fn solve_qcqp<L>(
    &mut self,
    param: &PDIPMParam,
    log: &mut L,
    mat_p: &[Mat],
    vec_q: &[Mat],
    scl_r: &[FP],
    mat_a: &Mat,
    vec_b: &Mat
) -> Result<Mat, String> where
    L: Write
[src]

Runs the solver with given parameters.

Returns Ok with optimal \(x\) or Err with message string.

  • param is solver parameters.
  • log outputs solver progress.
  • mat_p is \(P_0, \ldots, P_m\).
  • vec_q is \(q_0, \ldots, q_m\).
  • scl_r is \(r_0, \ldots, r_m\).
  • mat_a is \(A\).
  • vec_b is \(b\).
Loading content...