|
TOMLAB OPTIMIZATION ENVIRONMENT: pdcoTL |
![]() |
pdcoTL
Purpose
TOMLAB PDCO interface
Syntax
Result = pdcoTL(Prob);
Description
Primal-Dual Barrier Method for Convex Objectives developed by Stanford Systems
Laboratory (SOL).
TOMLAB PDCO solves linearly constrained problems with convex
objectives:
min f(x)
subject to
x_L <= x <= x_U, variable bounds
b_L <= A*x <= b_U, linear constraints
The linear constraints are transformed to the SOL PDCO problem form:
min f(x)
subject to
x_L <= x <= x_U, variable bounds
A*x = b , linear constraints
PDCO actually solves the following problem:
minimize f(x) + 1/2 norm(D1*x)^2 + 1/2 norm(r)^2
x,r
subject to A*x + D2*r = b, bl <= x <= bu, r unconstrained,
where
D1, D2 are positive-definite diagonal matrices defined from d1, d2.
In particular, d2 indicates the accuracy required for
satisfying each row of Ax = b.
See the help for pdco.m for a detailed discussion of D1 and D2
In pdco.m the objective is called phi(x), not f(x)
and bl == x_L, bu == x_U
PDCO Parameters
PDCO takes a number of input parameters as defined in the
file pdcoSet.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 pdcoSet),
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 pdco 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 pdcoSet defines
d1 D1=diag(d1), if d1 n-dimensiona
D1=diag(d1*ones(n,1)), if d1 is a scalar (default 1E-4)
d2 D2=diag(d2), if d2 m-dimensional
D2=diag(d2*ones(m,1)), if d2 is a scalar (default 1E-4)
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 pdco, 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 pdco MEX.
Inform pdco 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 (pdco).
SolverAlgorithm Description of the solver.
| pdco | ![]() |