[][src]Trait totsu::sdp::SDP

pub trait SDP {
    fn solve_sdp<L>(
        &mut self,
        param: &PDIPMParam,
        log: &mut L,
        vec_c: &Mat,
        mat_f: &[Mat],
        mat_a: &Mat,
        vec_b: &Mat
    ) -> Result<Mat, String>
    where
        L: Write
; }

Semidefinite program

The problem is \[ \begin{array}{ll} {\rm minimize} & c^Tx \
{\rm subject \ to} & \sum_{i=0}^{n - 1} x_i F_i + F_n \preceq 0 \
& A x = b, \end{array} \] where

  • variables \( x \in {\bf R}^n \)
  • \( c \in {\bf R}^n \)
  • \( F_j \in {\bf S}^k \) for \( j = 0, \ldots, n \)
  • \( 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} & c^Tx \
{\rm subject \ to} & \sum_{i=0}^{n - 1} x_i F_i + F_n \preceq s I \
& A x = b \
& s = 0. \end{array} \]

Required methods

fn solve_sdp<L>(
    &mut self,
    param: &PDIPMParam,
    log: &mut L,
    vec_c: &Mat,
    mat_f: &[Mat],
    mat_a: &Mat,
    vec_b: &Mat
) -> Result<Mat, String> where
    L: Write

Loading content...

Implementors

impl SDP for PDIPM[src]

fn solve_sdp<L>(
    &mut self,
    param: &PDIPMParam,
    log: &mut L,
    vec_c: &Mat,
    mat_f: &[Mat],
    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.
  • vec_c is \(c\).
  • mat_f is \(F_0, \ldots, F_n\).
  • mat_a is \(A\).
  • vec_b is \(b\).

NOTE: Current implementation that uses the barrier method is not so accurate.

Loading content...