ConicBundle
Public Member Functions | Private Member Functions | List of all members

implements two versions of select_model() (update_rule in {0,1}) More...

#include <SumBundleParameters.hxx>

Inheritance diagram for ConicBundle::SumBundleParameters:
ConicBundle::SumBundleParametersObject ConicBundle::CBout ConicBundle::BundleParameters

Public Member Functions

 SumBundleParameters (const CBout *cb=0, int incr=-1)
 default constructor with the possibility to set the output
 
 SumBundleParameters (int modelsize, int bundlesize=10, int updaterule=0, const CBout *cb=0, int incr=-1)
 constructor for customized parameters
 
 SumBundleParameters (const SumBundleParameters &sbp)
 copy constructor
 
virtual BundleParametersclone_BundleParameters () const
 clone
 
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)
 FunctionModel and SumBundleHandler call this for selecting the next minorants for a polyhedral model. More...
 
- Public Member Functions inherited from ConicBundle::SumBundleParametersObject
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)
 
VariableMetricSelectionget_variable_metric_selection () const
 return pointer to an installed VariableMetricSelection object or NULL
 
- 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
 

Private Member Functions

int select_model0 (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)
 default heuristic by curvatuer guess; selected by update_rule 0 More...
 
int select_model1 (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)
 simple heuristic by function value; selected by update_rule 1 More...
 

Additional Inherited Members

- Protected Attributes inherited from ConicBundle::SumBundleParametersObject
VariableMetricSelectionvm_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
 

Detailed Description

implements two versions of select_model() (update_rule in {0,1})

See the general description of SumBundleParametersObject regarding design issues for select_model() routines.

Member Function Documentation

◆ select_model()

virtual int ConicBundle::SumBundleParameters::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 
)
virtual

FunctionModel and SumBundleHandler call this for selecting the next minorants for a polyhedral model.

Parameters
[out]model_indicesthe indices of minorants selected for the model; index 0 is always the aggregate indicated by the input index aggr_index
[in]cand_idthe identifier of the candidate point supplied next
[in]cand_ythe candidate (differnte from the center), close to it the model should be good
[in]minorantsthe vector of MinorantPointer gives the minorants out of which the model should be selected.
[in]aggr_indexthe index of the aggregate within the minorants
[in]model_maxviola minorant violated by this would have caused a null step
[in]Hthe proximal term used for determining the given cand_y
[in]model_updateinforms about whether cand_y is the result of a null_step or descent_step or aomw other a new set up.
Returns
  • 0 on success
  • 1 on failure

Implements ConicBundle::SumBundleParametersObject.

Referenced by clone_BundleParameters().

◆ select_model0()

int ConicBundle::SumBundleParameters::select_model0 ( 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 
)
private

default heuristic by curvatuer guess; selected by update_rule 0

first it includes the aggregate and the minorant with highest value in the candidate (if there is one that beats the aggregate).

After that it includes those minorants in sequence that incur the largest curvature (a rough estiamte of it) that the quadratic model would need in order to avoid a violation of more thant model_maxviol of this minorant.

◆ select_model1()

int ConicBundle::SumBundleParameters::select_model1 ( 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 
)
private

simple heuristic by function value; selected by update_rule 1

Include the aggragte.

Sort the others by their value in candidate, and include them in this order (if not a duplicate) until the model_size is reached.


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