ConicBundle
|
abstract interface for SumBundleHandler for the model selection and variable metric seletcion routines More...
#include <SumBundleParametersObject.hxx>
Public Member Functions | |
virtual int | init (const BundleParameters &bp) |
copies the values of BundleParameters, leaving vm_selection unchanged, unless bp is a SumBundleParametersObject, then it clones the VariableMetricSelection pointed to by bp vm_selection (or also sets it to 0). | |
SumBundleParametersObject (const CBout *cb=0, int incr=-1) | |
default constructor with the possibility to set the output | |
SumBundleParametersObject (const BundleParameters &bp, const CBout *cb=0, int incr=-1) | |
copy constructor for BundleParameters | |
SumBundleParametersObject (const SumBundleParametersObject &bp) | |
copy constructor | |
virtual SumBundle::Mode | get_acceptable_mode () const |
see set_acceptable_mode() for possible settings and their meaning | |
virtual int | set_acceptable_mode (SumBundle::Mode mode) |
specifies the sumbundle modes the model accepts More... | |
int | set_variable_metric_selection (VariableMetricSelection *vms=0) |
delete old selector and set a new one (0 is allowed resulting in no local selector) | |
VariableMetricSelection * | get_variable_metric_selection () const |
return pointer to an installed VariableMetricSelection object or NULL | |
virtual int | select_model (CH_Matrix_Classes::Indexmatrix &model_indices, CH_Matrix_Classes::Integer cand_id, const CH_Matrix_Classes::Matrix &cand_y, const MinorantBundle &minorants, CH_Matrix_Classes::Integer aggr_index, CH_Matrix_Classes::Real model_maxviol, BundleProxObject &H, BundleModel::ModelUpdate model_update)=0 |
the SumBundleHandler calls this for selecting the next minorants for a polyhedral model More... | |
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 | |
Public Member Functions inherited from ConicBundle::BundleParameters | |
virtual int | get_max_model_size () const |
returns the value of the variable | |
virtual int | get_max_bundle_size () const |
returns the value of the variable | |
virtual int | get_update_rule () const |
returns the value of the variable | |
virtual int | set_max_model_size (int mms) |
sets the value of the variable | |
virtual int | set_max_bundle_size (int mbs) |
sets the value of the variable | |
virtual int | set_update_rule (int ur) |
sets the value of the variable | |
BundleParameters (const BundleParameters &bp) | |
often works well: small model of size 2 and some history in bundle size for use in scaling | |
BundleParameters (int modelsize=-1, int bundlesize=-1, int updaterule=-1) | |
often works well for fast initial progress: small model of size 2 and some history in bundle size for use in scaling; default values give no preference at all | |
virtual | ~BundleParameters () |
virtual destructor | |
virtual BundleParameters * | clone_BundleParameters () const |
return a new clone object of this on the heap (caller needs to delete the result) | |
Protected Attributes | |
VariableMetricSelection * | vm_selection |
points to a VariableMetricSelection object owned by *this, may be NULL | |
Protected Attributes inherited from ConicBundle::BundleParameters | |
int | max_model_size |
maximum number of minorants to be selected for the cutting model (numbers<=1 for no limit, numbers >=2 impose a strict limit) | |
int | max_bundle_size |
suggested maximum number of latest minorants stored for use in a model, for constructing variable metric information etc. (negative numbers give no preference; the size may be increased internally in case of confliciting requirements, eg. in n_model_size or by variable metric routines) | |
int | update_rule |
in case several update rules are available | |
Private Attributes | |
SumBundle::Mode | acceptable_mode |
see set_acceptable_mode() for explanations | |
abstract interface for SumBundleHandler for the model selection and variable metric seletcion routines
In designing model selection routines for the SumBundleHandler note that model selection on basis of the previous model does not make too much sense here. SumBundle and SumBundleHandler are mainly designed for frequent switching of contributing functions, so the model is likely formed for a different function each time. It is therefore rather pointless to rely on the coefficients of the previous model. Simple geometric properties might provide better guidelines.
In contrast to the typical *ModelParametersObject this interface not only provides the abstract model selection routine select_model() but also gives access to a potentially available variable metric selection routine get_variable_metric_selection(). The reason is, that there is no explicit access to the various SumBundleHandler instances other than via the recusive use of SumBlockModel::sumbundle_contribution() that must pass on all settings to all SumBundleHandler instacnes. Therefore all relevant parameters are passed on within this one type of object.
|
pure virtual |
the SumBundleHandler calls this for selecting the next minorants for a polyhedral model
[out] | model_indices | the indices of minorants selected for the model; index 0 is always the aggregate indicated by the input index aggr_index |
[in] | cand_id | the identifier of the candidate point supplied next |
[in] | cand_y | the candidate (differnte from the center), close to it the model should be good |
[in] | minorants | the vector of MinorantPointer gives the minorants out of which the model should be selected. |
[in] | aggr_index | the index of the aggregate within the minorants |
[in] | model_maxviol | a minorant violated by this would have caused a null step |
[in] | H | the proximal term used for determining the given cand_y |
[in] | model_update | informs about whether cand_y is the result of a null_step or descent_step or aomw other a new set up. |
Implemented in ConicBundle::SumBundleParameters.
Referenced by get_variable_metric_selection().
|
inlinevirtual |
specifies the sumbundle modes the model accepts
The possible settings have the following meaning