class HCL_TrustRegion_SS_d : public HCL_TrustRegionSolver_d

NOTE: This class is experimental and has not been carefully debugged

Inheritance:


Public Methods

HCL_TrustRegion_SS_d ( char * fname = NULL )
Usual constructor; optionally takes the name of a file from which to read algorithmic parameters
virtual Table& Parameters () const
The method Parameters returns the parameter table of the algorithm
virtual void SetScaling ( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver=NULL )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)
virtual void UnSetScaling ()
UnSetScaling returns the inner product to the default.
virtual void Solve ( const HCL_LinearOp_d & A, const HCL_Vector_d & g, HCL_Vector_d & p )
The method Solve attempts to compute an approximate solution of the trust region subproblem defined by the inputs of the method
virtual ostream& Write ( ostream & str ) const
Prints description of the object

Inherited from HCL_TrustRegionSolver_d:


Inherited from HCL_Base:

Public Methods

void IncCount() const
void DecCount() const
int Count() const

Documentation

NOTE: This class is experimental and has not been carefully debugged. It is known to fail on occasions when it should not.

The class HCL_TrustRegion_SS_d is an implementation of the Santosa-Sorensen algorithm for solving the trust region subproblem. This algorithm involves transforming the subproblem into a family of parameterized eigenvalues problems, which are solving using the k-step Arnoldi method. The parameter in the eigenvalue problem is adjusted to produce a solution to the trust region subproblem, along with its Lagrange multiplier, simultaneously. For more information about the algorithm, see

"A new matrix-free algorithm for the large-scale trust-region subproblem" by Sandra A. Santos and Danny C. Sorensen Technical report TR95-20, Department of Computational and Applied Mathematics, Rice University, Houston, TX 77251-1892.

In the initial implementation, the trust-region constraint is defined by the unscaled Euclidean norm.

double Delta
Initial trust region radius (1.0).

double Tol
Tolerance for the step length. The iteration is halted when the step is within this relative tolerance of the boundary (1.0e-2).

int MaxItn
Maximum number of iterations (20).

int DispFlag
Display Flag (0). This flag controls how much detail about the progress of the iteration is sent to the screen. Possible values are 0 (no display), 1 (summary statement at the end), 2 (summary statement every DispFreq iterations), 3 (output of algorithmic parameters at every iterations---used for debugging purposes).

int DispPrecision
Display precision; controls how many digits are sent to the screen (6).

int DispFreq
Display frequency; controls how often details of iteration are displayed on screen (MaxItn/5)

double MinStep
minimum step length, that is, minimum Delta (1.0e-6).

double MaxStep
maximum step length, that is, maximum Delta (1.0e6).

double HardCaseTol
Tolerance for the hard case (1.0e-2). */

int TermCode
Termination code. Possible values are BOUNDARY_SOLUTION 101 INTERIOR_SOLUTION 102 FAILED 103

double Multiplier
Lagrange multiplier.

double Reduction
Reduction in the quadratic model.

double StepLength
Length of step taken.

HCL_TrustRegion_SS_d( char * fname = NULL )
Usual constructor; optionally takes the name of a file from which to read algorithmic parameters. If such a file is provided, it must be a plain text file with entries of the form

ParameterName = value

or

TRSolver::ParameterName = value

The second form allows the same file to contain parameters for more than one algorithm to be given in the same file. For example, one can entries such as

UMin::DispFlag = 2 TRSolver::DispFlag = 1

which set the display flags for the minimization algorithm and the trust region solver to different values.

virtual Table& Parameters() const
The method Parameters returns the parameter table of the algorithm. Algorithmic parameters can be accessed via Parameters().GetValue( "name",val ) and changed via Parameters().PutValue( "name",val ).

virtual void SetScaling( HCL_LinearOp_d * S, HCL_LinearSolver_d * lsolver=NULL )
SetScaling defines a new inner product in terms of a symmetric, positive definite operator S: <x,y> = (x,Sy)

virtual void UnSetScaling()
UnSetScaling returns the inner product to the default.

virtual void Solve( const HCL_LinearOp_d & A, const HCL_Vector_d & g, HCL_Vector_d & p )
The method Solve attempts to compute an approximate solution of the trust region subproblem defined by the inputs of the method. Note that the trust region radius Delta must defined through the Parameter method.

virtual ostream& Write( ostream & str ) const
Prints description of the object


This class has no child classes.

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de