TOMLAB OPTIMIZATION ENVIRONMENT: pdsco

   

pdsco

Purpose

Primal-Dual Barrier Method for Separable Convex Objectives

Syntax

  [x,y,z,inform,PDitns,CGitns,time] = ...
     pdsco( 'pdsobj', A      ,b,m,n,options,x0,y0,z0,xsize,zsize );
	 
  [x,y,z,inform,PDitns,CGitns,time] = ...
     pdsco( 'pdsobj','pdsmat',b,m,n,options,x0,y0,z0,xsize,zsize );

Description

pdsco solves optimization problems of the form

    minimize    phi(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
 phi(x) is a smooth separable convex function (possibly linear);
 A      is an m x n matrix, or an operator for forming A*x and A'*y;
 b      is a given m-vector;
 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.

External functions

 options         = pdscoSet;               provided with pdsco.m
 [obj,grad,hess] = pdsobj( x, Prob );      provided by user
               y = pdsmat( mode,m,n,x );   provided by user if A isn't explicit

Input Parameters

 'pdsobj'  defines phi(x) and its gradient and diagonal Hessian.
           grad and hess are both n-vectors.
           If phi(x) is the linear function c'x, pdsobj should return
           [obj,grad,hess] = [c'x, c, zeros(n,1)].
 A         is an explicit m x n matrix (preferably sparse!).
 'pdsmat'  is used if A is not known explicitly.
           It returns y = A*x (mode=1) or y = A'*x (mode=2).
 b         is a given right-hand side vector.
 m, n      are the dimensions of A (or the A implied by pdsmat).
 options   is a structure that may be set and altered by pdscoSet.
 options.gamma   defines gamma.  Typical value: gamma = 1.0e-4.
 options.delta   defines delta.  Typical value: delta = 1.0e-4 or 1.0.
                 Values smaller than 1.0e-6 or 1.0e-7 may affect numerical
                 reliability.  Increasing delta usually improves convergence.
                 For least-squares applications, delta = 1.0 is appropriate.
 help pdscoSet   describes the other options.
 x0, y0, z0      provide an initial solution.
 xsize, zsize    are estimates of the biggest x and z at the solution.
                 They are used to scale (x,y,z).  Good estimates
                 should improve the performance of the barrier method.

 Prob       Tomlab Prob structure. Used as second argument in the
            call to pdsobj
            Printing in pdsco if Prob.PriLevOpt > 0 (default = 1)

Output Parameters

 x         is the primal solution.
 y         is the dual solution associated with Ax + r = b.
 z         is the dual solution associated with x > 0.
           x > 0, z > 0 is always true.
           If (x,y,z,r) is optimal, r = delta^2*y and x.*z should be small.
 inform    = 0 if a solution is found;
           = 1 if too many iterations were required;
           = 2 if the linesearch failed too often.
 PDitns    is the number of Primal-Dual Barrier iterations required.
 CGitns    is the number of Conjugate-Gradient iterations required
           if an iterative solver (LSQR) is used.
 time      is the cpu time used.

See Also

pdscoTL

  pdscoTL