socp
Syntax
socp(f, [G], [h], [l], [q], [A], [b])
Details
Solve SOCP problems and calculate the minimum of the objective function under specified constraints. The standard form of the SOCP constraint is as follows:
G is as follows:
h is as follows:
Arguments
Second-order cone programming (SOCP) problems are subject to the constraint with the following form:
K is a cone and s is a slack variable. The value of s will be determined during optimization.
f is a numeric vector indicating the coefficient vector of the objective function.
G (optional) is a numeric matrix indicating the coefficient matrix of the cone constraint.
h (optional) is a numeric vector indicating the right-hand-side vector of the cone constraint.
l (optional) is an integral scalar indicating the dimension of the non-negative quadrant constraint.
q (optional) is a positive vector indicating the dimension size of each second-order cone constraint. The form is [r0,r1,…,rN-1].
A (optional) is a numeric matrix indicating the coefficient matrix of the equality constraint.
b (optional) is a numeric vector indicating the right-hand-side vector of the equality constraint.
Return value
A 4-element tuple:
- The first element is a string indicating the state of the solution:
- The second element is the value of x where the value of the objective function is minimized.
- The third element is the minimum value of the objective function.
- The fourth element is the exit code that indicates the quality of the returned solution.
The correspondence between Exicode and status descriptions is shown in the following table:
| Exitcode | Description |
|---|---|
| 0 | Optimal solution found |
| 1 | Certificate of primal infeasibility found |
| 2 | Certificate of dual infeasibility found |
| 10 | Optimal solution found subject to reduced tolerances |
| 11 | Certificate of primal infeasibility found subject to reduced tolerances |
| 12 | Certificate of dual infeasibility found subject to reduced tolerances |
| -1 | Maximum number of iterations reached |
| -2 | Numerical problems (unreliable search direction) |
| -3 | Numerical problems (slacks or multipliers outside cone) |
| -7 | Unknown problem in solver |
Examples
Solve the following SOCP problem:
f = [-6, -4, -5]
G = matrix([[16, 7, 24, -8, 8, -1, 0, -1, 0],
[-14, 2, 7, -13, -18, 3, 0, 0, -1],
[5, 0, -15, 12, -6, 17, 0, 0, 0]])
h = [-3, 5, 12, -2, -14, -13, 10, 0, 0]
l = 2
q = [4,3]
re = socp(f,G,h,l,q, ,)
print(re)
// output: ("Optimal solution found",[-9.902804882871327,-1.39084684264198,26.211851780740154],-66.079042235904907,0)
