Second-order-cone programming - Lagrange multiplier and dual cone

83 Views Asked by At

In standard nonlinear optimization when we are interested to minimize a given cost function the presence of an inequality constraint g(x)<0 is treated by adding it to the cost function to form the Lagrangian

$L(x) = J(x) + \mu g(x)$

with complementary slackness condition

$\mu > 0,$ if $ g(x)=0$

$\mu = 0,$ if $ g(x)<0$

Now, I'm struggling with the application of this logic to second-order cones. Suppose $x\in \mathbb{R}^3$: if $g(x)$ is of the type

$g(x) = \sqrt{x_1^2+x_2^2}-x_3$ this corresponds to

$\left\|\left[\begin{array}{c}x_1\\x_2 \end{array}\right]\right\|_2 \leq x_3$

Now, by numerically solving this with ECOS you get back the dual cone components, that has the same dimensions of the cone above, while with the standard KKT logic I would have expected a scalar $\mu$ telling me whether the constraint is active or not. How can I relate the two info to each other, or in other words, transform the dual cone into the multiplier $\mu$ I'm looking for?