Socp | R Documentation |
The function solves second-order cone problem by
primal-dual interior point method. It is a wrapper function to the
C
-routines written by Lobo, Vandenberghe and Boyd (see
reference below).
Socp(f, A, b, C, d, N, x = NULL, z = NULL, w = NULL, control = list())
f |
Vector defining linear objective, |
A |
Matrix with the A_i vertically stacked: A = [ A_1; A_2; …; A_L]. |
b |
Vector with the b_i vertically stacked: b = [ b_1; b_2; …; b_L]. |
C |
Matrix with the c_i' vertically stacked: C = [ c_1'; c_2'; …; c_L']. |
d |
Vector with the d_i vertically stacked: d = [ d_1; d_2; …; d_L]. |
N |
Vector of size |
x |
Primal feasible initial point. Must satisfy: || A_i*x + b_i || < c_i' * x + d_i for i = 1, …, L. |
z |
Dual feasible initial point. |
w |
Dual feasible initial point. |
control |
A list of control parameters. |
The primal formulation of an SOCP is given as:
minimise f' * x
subject to
||A_i*x + b_i|| <= c_i' * x + d_i
for i = 1,…, L. Here, x is the (n \times 1) vector to be optimised. The dual form of an SOCP is expressed as:
maximise ∑_{i = 1}^L -(b' * z_i + d_i * w_i)
subject to
∑_{i = 1}^L (A_i' * z_i + c_i * w_i) = f
and
||z_i || = w_i
for i = 1,…, L, given strictly feasible primal and dual
initial points.
The algorithm stops, if one of the following criteria is met:
abs.tol
– maximum absolute error in objective
function; guarantees that for any x: abs(f'*x - f'*x\_opt) <=
abs\_tol.
rel.tol
– maximum relative error in objective
function; guarantees that for any x: abs(f'*x -
f'*x\_opt)/(f'*x\_opt) <= rel\_tol (if f'*x\_opt > 0). Negative
value has special meaning, see target next.
target
– if rel\_tol<0, stops when
f'*x < target or -b'*z >= target.
max.iter
– limit on number of algorithm outer iterations.
Most problems can be solved in less than 50 iterations. Called with
max_iter = 0
only checks feasibility of x
and z
,
(and returns gap and deviation from centrality).
The target value is reached. rel\_tol
is negative and
the primal objective p is less than the target
.
A list
-object with the following elements:
x |
Solution to the primal problem. |
z |
Solution to the dual problem. |
iter |
Number of iterations performed. |
hist |
see |
convergence |
A logical code. |
info |
A numerical code. It indicates if the convergence was successful. |
message |
A character string giving any additional information returned by the optimiser. |
This function has been ported from the Rsocp package contained in the Rmetrics-Project on R-Forge. In contrast to the former implementation, allowance is made for specifying more than one cone constraint.
Bernhard Pfaff
Lobo, M. and Vandenberghe, L. and Boyd, S., SOCP: Software for Second-order Cone Programming, User's Guide, Beta Version, April 1997, Stanford University.
SocpPhase1
, SocpPhase2
, SocpControl
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.