|
TOMLAB OPTIMIZATION ENVIRONMENT: pdscoTL |
![]() |
pdscoTL
Purpose
TOMLAB PDSCO interface
Syntax
Result = pdscoTL(Prob)
Description
Primal-Dual Barrier Method for Separable Convex Objectives developed by Stanford Systems Laboratory (SOL).
TOMLAB PDSCO solves linearly constrained problems with convex objectives:
min f(x)
subject to
x_L <= x <= x_U, variable bounds, with x nonnegative
b_L <= A*x <= b_U, linear constraints
NOTE!!! Only x_L == 0, and x_U == inf is allowed
The linear constraints are transformed to the SOL PDSCO problem form:
min f(x)
subject to
x >= 0, variable bounds
A*x = b, linear constraints
PDSCO actually solves the following problem:
minimize f(x) + 1/2 norm(gamma*x)^2 + 1/2 norm(r/delta)^2
x,r
subject to Ax + r = b, x > 0, r unconstrained.
where
f(x) is a smooth separable convex function (possibly linear);
gamma is a primal regularization parameter (typically small but may be 0);
delta is a dual regularization parameter (typically small or 1; must be >0);
With positive gamma and delta, the primal-dual solution (x,y,z) is
bounded and unique.
See help pdsco.m for a detailed discussion of gamma and delta. In pdsco.m the objective is called phi(x), not f(x).
PDSCO parameters
PDSCO takes a number of input parameters as defined in the
file pdscoSet.m (see help). The parameters are fields in the structure
options.
This structure is possible to send as Prob.SOL.pdco.
Some of the fields in Prob.SOL.pdco also have counterparts
as standard parameters in TOMLAB. If these parameters are
changed from their default values (as defined by pdscoSet),
then they are used, e.g.
Prob.optParam.MaxIter (=Prob.SOL.pdco.MaxIter).
Input Parameters
Prob Problem structure in TOMLAB format. Fields used are:
x_0 Initial x vector, used if non-empty.
x_L, x_U Bounds on variables. x_L(k) = x_U(k) if x(k) fixed.
b_L, b_U Bounds on linear constraints.
For equality constraints, set b_L(k) == b_U(k) if k equality.
A Matrix of coefficients for the linear constraints.
PriLevOpt Print level in pdsco solver. If > 0 prints summary information.
SOL Structure with special fields for SOL solvers.
=== The following fields are used:
pdco Structure with exactly the same fields as pdscoSet defines
y0 Initial dual parameters for linear constraints (default 0)
z0 Initial dual parameters for simple bounds (default 1/N)
xsize Estimate of the biggest x at the solution. (default 1/N)
zsize Estimate of the biggest z at the solution. (default 1/N)
xsize,zsize are used to scale (x,y,z). Good estimates
should improve the performance of the barrier method
optParam Structure with optimization parameters.
======== The following fields are used:
MaxIter Maximum number of iterations (Prob.SOL.pdco.MaxIter)
MinorIter Maximum number of iterations in LSQR (Prob.SOL.pdco.LSQRMaxIter)
eps_x Accuracy for satisfying x1.*z1 = 0, x2.*z1 = 0,
where z = z1 - z2 and z1, z2 > 0. (Prob.SOL.pdco.OptTol)
bTol Accuracy for satisfying Ax + D2 r = b, A'y + z = gobj and x - x1
= bl, x + x2 = bu, where x1, x2 > 0. (Prob.SOL.pdco.FeaTol)
wait = 0 solve the problem with default internal parameters;
= 1 pause, allows interactive resetting of parameters.
(Prob.SOL.pdco.wait)
Output Parameters
Result Structure with optimization results
f_0 Function value at start, x = x_0.
f_k Function value at optimum.
g_k Gradient of the function at the solution.
H_k Hessian of the function at the solution, diagonal only.
x_k Solution vector.
x_0 Initial solution vector.
xState State of variables. Free == 0; On lower == 1; On upper == 2;
Fixed == 3;
bState State of linear constraints. Free == 0; Lower == 1; Upper == 2;
Equality == 3;
v_k Lagrangian multipliers (orignal bounds + constraints).
y_k Lagrangian multipliers (for bounds + dual solution vector)
The full [z;y] vector as returned from pdsco, including slacks
and extra linear constraints after rewriting constraints:
-inf < b_L < A*x < b_U < inf; non-inf lower AND upper bounds.
ExitFlag Tomlab Exit status from pdsco MEX.
Inform pdsco information parameter: 0 = Solution found;
1 = Too many iterations; 2 = Linesearch failed too often.
Iter Number of iterations.
FuncEv Number of function evaluations.
GradEv Number of gradient evaluations.
HessEv Number of Hessian evaluations.
Solver Name of the solver (pdsco).
SolverAlgorithm Description of the solver.
| pdsco | ![]() |