GenRTR Riemannian Optimization Package
GenRTR > solvers > irtr.m

irtr

PURPOSE ^

IRTR Implicit Riemannian Trust-Region (with tCG inner solve)

SYNOPSIS ^

function varargout = irtr(fns,params)

DESCRIPTION ^

 IRTR   Implicit Riemannian Trust-Region (with tCG inner solve)

 This performs a retraction-based, trust-region minimization of an objective 
 function on a Riemannian manifold.

 x = irtr(fns,params) returns the minimizer (a point on the manifold)
 [x,stats] = irtr(fns,params) also returns some statistics from the algorithm

 The struct fns contains the function handles necessary to perform the 
 optimization:
  fns.R(x,eta) : retract tangent vector eta at T_x M to the manifold
  fns.g(x,eta,zeta) : Riemannian metric at T_x M 
  fns.proj(x,eta) : Project eta from nearby T_x M to T_x M (used in iteration to 
                    combat round-off)
  fns.f(x) : Compute the objective function at x
  fns.fgrad(x) : Compute the gradient of f at x, returning a tangent vector
  fns.fhess(x,eta) : Apply the Hessian of f, hess_x: T_x M -> T_x M
  fns.rho(x,eta) : Compute the rho-ratio: rho(x,eta)
 Optionally, three other methods may be specified:
  fns.rhosearch(x,eta,zeta,rhoprime) : Returns a value tau such that 
                                         rho(x,eta+tau*zeta) >= rhoprime
  fns.prec(x,eta) : apply an s.p.d. preconditioner for the inner iteration, 
                    to eta, a tangent vector in T_x M
  fns.dist(x,y) : returns the distance on the manifold between points x and y
  fns.randT(x) : returns a very small random tangent vector in T_x M
 More info:
  fns.dist is used to measure the distance from solution and is only referenced 
      if params.xsol was specified.
  fns.randT is used to initialize the trust-region subproblem with a random vector,
      to encourage escape from an exact critical point.
  fns.prec is a preconditioner for the model minimization, a positive-definite 
      (undr fns.g) mapping from T_x M to T_x M

 Parameters to the solver include:
 Required parameters:
   params.x0        - An initial iterate. Because IRTR does not know what the 
                      manifold is, this is mandatory.
   params.xsol      - For testing distance from solution using fns.dist
   params.verbosity - Level of verbosity: 
                      0 is silent, 1 has one-line info, 2 has detailed info
   params.debug     - Debugging tests: 
                      0 is silent, 1 has some, 2 has a lot, 
                      3 is more than anyone wants to know
   params.max_outer - Maximum number of outer iterations (default: 100)
   params.min_inner - Minimum number of inner iterations (default: 0). 
                      Only in effect if using randomized initial tangent vectors.
   params.max_inner - Maximum number of inner iterations (default: inf). 
                      Recommended: dimension of manifold.
   params.epsilon   - Outer Convergence tolerance (absolute)
   params.kappa     - Inner kappa convergence tolerance
   params.theta     - Inner theta convergence tolerance
   params.rho_prime - Accept/reject ratio
   params.testgh    - perform some simple numerical testing of gradient and Hessian

 The stats output is a struct array, with fields:
  k  - the outer iteration number for the stats
  ng - the norm of the gradient, sqrt(g(x,gradfx,gradfx))
  fx - the current value under the objective function
  rho - the performance ratio for the iterate
  time - the wallclock time for the outer iteration
  numinner - the number of inner iterations used to compute the next iterate
  dist     - the distance from the solution

 See also rtr

CROSS-REFERENCE INFORMATION ^

This function calls:
This function is called by:
  • irtrdsvd IRTRDSVD Compute dominant SVD of a rectangular matrix
  • irtresgev IRTRESGEV Compute extreme eigenvectors of a positive-definite Hermitian pencil
  • tmesgev TMESGEV Compute extreme eigenvectors of a positive-definite Hermitian pencil

Generated on Fri 11-Apr-2008 14:52:45 by m2html © 2003