[−][src]Trait totsu::sdp::SDP
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,
&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,
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]
&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,
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.