ConicBundle
|
abstract interface for SOCModel for the model selection routine select_model() More...
#include <SOCModelParametersObject.hxx>
Public Member Functions | |
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 | |
SOCModelParametersObject (const CBout *cb=0, int cbinc=-1) | |
default constructor | |
SOCModelParametersObject (const BundleParameters &bp, const CBout *cb=0, int cbinc=-1) | |
copy constructor for BundleParameters | |
SOCModelParametersObject (const SOCModelParametersObject &sms) | |
copy constructor | |
virtual | ~SOCModelParametersObject () |
virtual destructor, implemented in SOCModelParameters.cxx | |
virtual int | select_model (CH_Matrix_Classes::Matrix &modelvecs, const CH_Matrix_Classes::Matrix &aggrvec, CH_Matrix_Classes::Real cand_SOCval, const CH_Matrix_Classes::Matrix &cand_SOCvec, CH_Matrix_Classes::Real center_SOCval, const CH_Matrix_Classes::Matrix ¢er_SOCvec, const CH_Matrix_Classes::Matrix &SOCvecs, SOCOracle *oracle, 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)=0 |
SOCModel 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) | |
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 SOCModel for the model selection routine select_model()
Coordinate zero of a vector x in a second order cone of dimension dim gives the maxium Euclidean norm of the vector of the coordinates 1 to dim-1 (the barx part).
Because SOCModel implements a model for an AffineMatrixTransformation given support function over the Second order cone, all subgradients are described by points inside this cone. For generating the model it suffices to know the extreme rays in the barx space or some appropriate basis of the barx-space containing them. There is no need to consider the generated minorants at all as long as the generating primal points are covered by the subspace.
The model is always a scond order cone of size modelvecs.coldim()+1 and the columns of modelvecs form an orthonormal basis of some subspace of the barx space (coordinates 1 to dim-1). This subspace must always span the aggregate stored in aggrvec and the candidate vector cand_SOCvec, so typically it is a least two dimensional but may be one-dimensional in special cases (e.g. if there is only one minorant to start with). Older candidate vectors may be available in SOCvecs in order to select new modelvecs.
|
pure virtual |
SOCModel calls this for selecting the next minorants for a polyhedral model.
[in,out] | modelvecs | the columns span the barx subspace of the SOC face (the model is initialized if modelvecs.coldim()>0). On output it has to span at least the subspace spanned by aggrvec and cand_SOCvec |
[in] | aggrvec | current aggregate soc vector (includes all coordinates and function_factor according to function_task); if not valid it has coldim==0. |
[in] | cand_SOCval | lower bound on the candidate value |
[in] | cand_SOCvec | the SOCvector generating cand_SOCval (includes all coordinates but no function_factor) |
[in] | center_SOCval | lower bound on the center value |
[in] | center_SOCvec | the SOCvector generating center_SOCval (includes all coordinates but no function_factor) |
[in] | SOCvecs | collects the barx parts of the old SOCvecs |
[in] | oracle | gives access to the evaluation oracle |
[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) |
Implemented in ConicBundle::SOCModelParameters.
Referenced by SOCModelParametersObject().