Public Member Functions | Private Attributes | List of all members
ConicBundle::PSCVariableMetricSelection Class Reference

iplementation of a VariableMetricSelection routine for PSCModel for forming and adding variable metric information to a BundleProxObject More...

#include <PSCVariableMetricSelection.hxx>

Inheritance diagram for ConicBundle::PSCVariableMetricSelection:
ConicBundle::VariableMetricSelection ConicBundle::CBout

Public Member Functions

 ~PSCVariableMetricSelection ()
 PSCVariableMetricSelection (CBout *cb=0, int cbincr=-1)
 default constructor
virtual CH_Matrix_Classes::Integer get_selection_method () const
 returns selection_method
virtual void set_selection_method (CH_Matrix_Classes::Integer sm)
 sets selection_method
virtual CH_Matrix_Classes::Real get_oldfactor () const
 returns the parameter
virtual void set_oldfactor (CH_Matrix_Classes::Real of)
 sets the parameter
virtual CH_Matrix_Classes::Real get_maxeigval_factor () const
 returns the parameter
virtual void set_maxeigval_factor (CH_Matrix_Classes::Real ef)
 sets the parameter
virtual CH_Matrix_Classes::Real get_mineigval_factor () const
 returns the parameter
virtual void set_mineigval_factor (CH_Matrix_Classes::Real ef)
 sets the parameter
virtual void set_oracle (PSCOracle *psco)
 sets the oracle pointer to this value (NULL is allowed, but calling add_variable_metric() then results in a WARNING and an error is returned); this is called by PSCModel when installing this
int add_variable_metric (VariableMetric &H, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, bool descent_step, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real model_maxviol, const CH_Matrix_Classes::Indexmatrix *indices, VariableMetricBundleData &bundle_data)
 see ConicBundle::VariableMetricSelection::add_variable_metric(); here it must be possible to cast bundle_data to PSCData&, otherwise the routine returns an error. It only adds something after a descent_step
VariableMetricSelectionclone_VariableMetricSelection ()
 clone: the values are only preserved for those contained in the constructor: n_latest_minorants, selection_method and oldfactor
- Public Member Functions inherited from ConicBundle::VariableMetricSelection
 VariableMetricSelection (CBout *cb=0, int cbincr=-1)
 constructor for passing on ouptut information
virtual ~VariableMetricSelection ()
 virtual destructor
- Public Member Functions inherited from ConicBundle::CBout
virtual void set_out (std::ostream *out=0, int print_level=1)
 Specifies the output level (out==NULL: no output at all, out!=NULL and level=0: errors and warnings, level>0 increasingly detailed information) More...
virtual void set_cbout (const CBout *cb, int incr=-1)
 Specifies the output level relative to the given CBout class. More...
void clear_cbout ()
 reset to default settings (out=0,print_level=1)
 CBout (const CBout *cb=0, int incr=-1)
 calls set_cbout
 CBout (std::ostream *outp, int pl=1)
 initialize correspondingly
 CBout (const CBout &cb, int incr=0)
 copy constructor
virtual bool cb_out (int pl=-1) const
 Returns true if out!=0 and (pl<print_level), pl<0 should be used for WARNINGS and ERRORS only, pl==0 for usual output.
std::ostream & get_out () const
 If cb_out() returned true, this returns the output stream, but it will abort if called with out==0.
std::ostream * get_out_ptr () const
 returns the pointer to the output stream
int get_print_level () const
 returns the print_level
virtual int mfile_data (std::ostream &out) const
 writes problem data to the given outstream

Private Attributes

CH_Matrix_Classes::Integer selection_method
 specifies which of the current experimental routines should be used for computing the metric
CH_Matrix_Classes::Real oldfactor
 for values of oldfactor between 0. and 1. the SVD is taken of (1-oldfactor)*vecH*vecH'+oldfactor*oldvecH*oldvcH'; for values <=0 there is no old contribution, for values >=1 oldvecH is reused (not yet implemented)
CH_Matrix_Classes::Real maxeigval_factor
 maxeigval_factor*weightu is the maximum value allowed for low_rank eigenvalues, bigger eigen_values are cut off to avoid numerical diffculties.
CH_Matrix_Classes::Real mineigval_factor
 mineigval_factor* max_eigval is the smallest low rank eigenvalue to be included in the low rank approximation (relative to the biggest eigenvaleu max_eigval of the low rank approximation)
 needed for PSCOracle::left_right_product(), set once in the beginning but not owned by *this
CH_Matrix_Classes::Matrix lamH
 local temporary storage for low rank eigenvalues
CH_Matrix_Classes::Matrix vecH
 local temporary storage for low rank eigenvectors
CH_Matrix_Classes::Matrix tmpQ1
 local temporary storage for active eigenspace basis
CH_Matrix_Classes::Matrix tmpQ2
 local temporary storage for inactive eigenspace basis
CH_Matrix_Classes::Matrix Q1AQ2
 local temporary storage for Q_1^T*A*Q2
CH_Matrix_Classes::Matrix tmpvec
 local temporary storage
CH_Matrix_Classes::Symmatrix S
 local storage for eigenvalue/SVD computations

Detailed Description

iplementation of a VariableMetricSelection routine for PSCModel for forming and adding variable metric information to a BundleProxObject

The implementation builds on the method describe by Helmberg, Overton and Rendl.

The amount of data available for forming the metric depends curcially on the model selection routine employed in PSCModelParameters::select_model(). Maybe the choice in particular of skippedsize there is more relevant than the parameters here.

Currently there is only one method and the setting of selection_method is irrelevant.

The documentation for this class was generated from the following file: