ConicBundle
|
iplementation of a VariableMetricSelection routine for PSCModel for forming and adding variable metric information to a BundleProxObject More...
#include <PSCVariableMetricSelection.hxx>
Public Member Functions | |
~PSCVariableMetricSelection () | |
destructor | |
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 | |
VariableMetricSelection * | clone_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) | |
PSCOracle * | oracle |
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 | |
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.