DDS Users' Guide

Linear programming (LP) and second-order code programming (SOCP) constraints:

Suppose we want to add \(\ell\) LP constraints of the form \begin{eqnarray} A_L^i x + b_L^i \geq 0, \ \ \ i\in\{1,\ldots,\ell\}, \end{eqnarray} where \(A_L^i\) is an \(m_L^i\)-by-\(n\) matrix, as the \(k\)th block of constraints. Then, we define \begin{eqnarray} \text{A\{k,1\}}=\left [ \begin{array} {c} A_L^1 \\ \vdots \\ A_L^\ell\end{array}\right], \ \ \ \text{b\{k,1\}}=\left [ \begin{array} {c} b_L^1 \\ \vdots\\ b_L^\ell\end{array}\right] \nonumber \\ \text{cons\{k,1\}='LP'}, \ \ \ \text{cons\{k,2\}}=[m_L^1, \ldots , m_L^\ell]. \end{eqnarray}
Similarly to add \(\ell\) SOCP constraints of the form \begin{eqnarray} \|A_S^i x + b_S^i\| \leq (g_S^i)^\top x + d_S^i, \ \ \ i\in\{1,\ldots,\ell\}, \end{eqnarray} where \(A_S^i\) is an \(m_S^i\)-by-\(n\) matrix for \(i=\in\{1,\ldots,\ell\}\), as the \(k\)th block, we define \begin{eqnarray} \text{A\{k,1\}}=\left [ \begin{array} {c} (g_S^1)^\top \\ A_S^1 \\ \vdots \\ (g_S^\ell)^\top \\ A_S^\ell\end{array}\right], \ \ \ \text{b\{k,1\}}=\left [ \begin{array} {c} d_S^1 \\ b_S^1 \\ \vdots \\ d_S^\ell \\ b_S^\ell\end{array}\right] \nonumber \\ \text{cons\{k,1\}='SOCP'}, \ \ \ \text{cons\{k,2\}}=[m_S^1, \ldots , m_S^\ell]. \end{eqnarray}

Example

Assume that we have \begin{eqnarray} &\min& c^\top x \nonumber \\ & \text{s.t.}& [-2,1] x \leq 1, \nonumber \\ && \left\|\left [\begin{array} {cc} 2 & 1 \\ 1 & 3 \end{array} \right ] x + \left [\begin{array} {c} 3 \\ 4 \end{array} \right ] \right\| \leq 2. \end{eqnarray} Then we define \begin{eqnarray*} \label{LP-4} \text{cons\{1,1\}='LP'}, \ \ \text{cons\{1,2\}=[1]}, \ \ \text{A\{1,1\}}=\left [ \begin{array} {cc} 2 & -1 \end{array}\right], \ \ \ \text{b\{1,1\}}=\left [ \begin{array} {c} 1 \end{array}\right], \nonumber \\ \text{cons\{2,1\}='SOCP'}, \ \ \text{cons\{2,2\}=[2]}, \ \ \text{A\{2,1\}}=\left [ \begin{array} {cc} 0 & 0 \\ 2 & 1 \\ 1 & 3 \end{array}\right], \ \ \ \text{b\{2,2\}}=\left [ \begin{array} {c} 2 \\ 3 \\ 4 \end{array}\right]. \end{eqnarray*}