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