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