ConicBundle
|
abstract interface for BoxModel for the model selection routine More...
#include <BoxModelParameters.hxx>
Public Member Functions | |
BoxModelParameters (const CBout *cb=0, int cbinc=-1) | |
default constructor | |
BoxModelParameters (const BundleParameters &bp, const CBout *cb=0, int cbinc=-1) | |
copy constructor for BundleParameters | |
BoxModelParameters (const BoxModelParameters &sms) | |
copy constructor | |
virtual | ~BoxModelParameters () |
virtual destructor, implemented in BoxModelParameters.cxx | |
BundleParameters * | clone_BundleParameters () const |
clone | |
virtual int | select_model (MinorantBundle &box_model, CH_Matrix_Classes::Matrix &box_coeff, CH_Matrix_Classes::Matrix &box_indicators, CH_Matrix_Classes::Indexmatrix &box_coords, CH_Matrix_Classes::Matrix &box_complvalues, MinorantBundle &nnc_model, CH_Matrix_Classes::Matrix &nnc_coeff, CH_Matrix_Classes::Matrix &nnc_indicators, const CH_Matrix_Classes::Matrix &coord_switching, const MinorantBundle &minorants, const MinorantPointer cand_minorant, const PrimalMatrix cand_boxvec, const PrimalMatrix aggr_boxvec, CH_Matrix_Classes::Real aggr_scaleval, BoxOracle *oracle, CH_Matrix_Classes::Integer modification_id, FunctionTask function_task, CH_Matrix_Classes::Real function_factor, BundleModel::ModelUpdate model_update, CH_Matrix_Classes::Integer center_id, const CH_Matrix_Classes::Matrix ¢er_y, CH_Matrix_Classes::Integer cand_id, const CH_Matrix_Classes::Matrix &cand_y, CH_Matrix_Classes::Real model_maxviol, BundleProxObject &H) |
BoxModel calls this for selecting the next coordinates for a specialized polyhedral model with a box part and an nnc part for aggregates, see the general explanation of the class. More... | |
Public Member Functions inherited from ConicBundle::BoxModelParametersObject | |
int | init (const BundleParameters &bp) |
initialize BundleParameters to given values, if bp is a SumModleParametersObject alos set n_local_models to its values, otherwise leave it unchanged | |
BoxModelParametersObject (const CBout *cb=0, int cbinc=-1) | |
default constructor | |
BoxModelParametersObject (const BundleParameters &bp, const CBout *cb=0, int cbinc=-1) | |
copy constructor for BundleParameters | |
BoxModelParametersObject (const BoxModelParametersObject &sms) | |
copy constructor | |
virtual | ~BoxModelParametersObject () |
virtual destructor, implemented in BoxModelParameters.cxx | |
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 | |
Additional Inherited Members | |
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 | |
abstract interface for BoxModel for the model selection routine
|
virtual |
BoxModel calls this for selecting the next coordinates for a specialized polyhedral model with a box part and an nnc part for aggregates, see the general explanation of the class.
There is little experience on how to do this. The current routine is minimalistic and simply uses the weighted number of switches in each coordinate between lower and upper bounds to select coordinates.
To allow maybe better choices in future implementations the arguments try to pass all potentially relevant information items.
On putput the coefficient values of the new model must be feasible and have to generate the same aggregate (the aggregate is maintained), and the new candidate minorant must be in the feasible set.
[in,out] | box_model | the boxmodel holds the minorants describing the BoxBlock part of the model for selected coordinates and, unless exact or empty, in the last position the complement coordinates of a feasible point (e.g. aggr_boxvec) |
[in,out] | box_coeff |
|
[in,out] | box_indicators | indicators for activity of box minorants, indicators may but need not be maintained |
[in,out] | box_coords | the coordinates selected to have their respective interval range in the model |
[in,out] | box_complvalues | a point with 0 in the box_coords and feasible coordinate values in the complement (if not empty) |
[in,out] | nnc_model | if box_model is empty, this spans at least the aggregate (if available) and the candidate (always); if box_model is not empty but not the entire box, nnc_model typically holds one of the candidate or the aggregate; if box_model is the entire box, nnc_model is empty |
[in,out] | nnc_coeff |
|
[in,out] | nnc_indicators | indicators for activity of minorants, indicators may but need not be maintained |
[in] | coord_switching | keeps track of which coordinates where changing the most in the past by forming a weighted average in BoxModel::eval_function() |
[in] | minorants | the vector of MinorantPointer gives additional minorants collected over time (some may be duplicates also of those in nnc_model) |
[in] | cand_minorant | the (eps)sugradient linear minorant returned by BoxModel::eval_function for the candidate (without function factor) |
[in] | cand_boxvec | the maximizer over the box for the current candidate |
[in] | aggr_boxvec | the primal aggregate vector in the box (without function_factor) giving rise to the aggregate; not initialized if zerodimensional |
[in] | aggr_scaleval | 0<= aggr_scalevale <= function_factor, ==function_factor if function_task==Objective_Function; the aggregate with function_factor is aggr_boxvec*aggr_scaleval; |
[in] | oracle | gives access to lower and upper bounds of the box |
[in] | modification_id | the identifier of the current function version to be used in generating specialized minorants corresponding to the coordinate vectors |
[in] | function_task | see FunctionTask |
[in] | function_factor | interpreted according to function_task and the coefficients sum up to at most this value |
[in] | model_update | informs about whether cand_y is the result of a null_step or descent_step or a new set up. |
[in] | center_id | the identifier of the center point |
[in] | center_y | the center point |
[in] | cand_id | the identifier of the candidate point |
[in] | cand_y | the candidate (mostly differnt from the center), close to it the model should be good |
[in] | model_maxviol | a minorant violated by this would have caused a null step |
[in] | H | the variable metric used in the proximal term (function_factor is already removed in this) |
Implements ConicBundle::BoxModelParametersObject.
Referenced by clone_BundleParameters().