ConicBundle
|
Routine for selecting the weight of the quadratic/proximal term within BundleSolver implementing BundleWeight roughly along the paper C. Lemarechal, C. Sagastizabal, Variable metric bundle methods: From conceptual to implementable forms, Mathematical Programming 76 (1997) 393-410. Implemented obeserving details of the email communication with Claudia Sagastizabal. More...
#include <BundleRQBWeight.hxx>
Public Member Functions | |
BundleRQBWeight (BundleWeight *bwp=0, const CBout *cbo=0, int incr=-1) | |
bwp may be used to communicate the previous values used by another routine | |
BundleRQBWeight (CH_Matrix_Classes::Real m1, CH_Matrix_Classes::Real m2=.2, CH_Matrix_Classes::Real m3=1., CH_Matrix_Classes::Real eta=1e-6, BundleWeight *bwp=0, const CBout *cbo=0, int incr=-1) | |
bwp may be used to communicate the previous values used by another routine | |
virtual void | set_defaults () |
set default values for 'constant' parameters, e.g. minweight and maxweight | |
virtual void | clear () |
reset all adaptive variables and parameters | |
int | init (CH_Matrix_Classes::Real aggr_dnmormsqr, Groundset *groundset, BundleModel *model) |
compute first weight and set some parameters | |
void | set_next_weight (CH_Matrix_Classes::Real u) |
<=0 leaves everything unchanged and does nothing | |
void | set_minweight (CH_Matrix_Classes::Real mw) |
<=0 means no bound | |
bool | get_next_weight_set () const |
true if the next weight was prespecified externally | |
CH_Matrix_Classes::Real | get_minweight () const |
Returns the current value of the minweight. | |
virtual void | set_maxweight (CH_Matrix_Classes::Real mw) |
<=0 means no bound | |
CH_Matrix_Classes::Real | get_maxweight () const |
Returns the current value of the maxweight. | |
CH_Matrix_Classes::Real | get_weight () const |
returns current value of the weight | |
bool | weight_changed () const |
returns true if last call of *_update modified current value of tau, else 0 | |
int | descent_update (CH_Matrix_Classes::Real newval, CH_Matrix_Classes::Real oldval, CH_Matrix_Classes::Real modelval, const CH_Matrix_Classes::Matrix &y, const CH_Matrix_Classes::Matrix &newy, CH_Matrix_Classes::Real normsubg2, BundleProxObject *Hp) |
determine next weight after a descent step | |
int | nullstep_update (CH_Matrix_Classes::Real newval, CH_Matrix_Classes::Real oldval, CH_Matrix_Classes::Real modelval, const CH_Matrix_Classes::Matrix &y, const CH_Matrix_Classes::Matrix &newy, MinorantPointer &new_minorant, MinorantPointer &aggregate, CH_Matrix_Classes::Real nullstep_bound, CH_Matrix_Classes::Real normsubg2, BundleProxObject *Hp) |
determine next weight after a null step | |
virtual int | apply_modification (const GroundsetModification &gsmdf) |
reinitialize after modifications | |
Public Member Functions inherited from ConicBundle::BundleWeight | |
BundleWeight (const CBout *cb=0, int incr=-1) | |
default constructor with the possibility to set the output | |
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 Member Functions | |
int | delta_subg (CH_Matrix_Classes::Matrix &delta_subg, MinorantPointer ¢er, MinorantPointer &cand) |
computes cand-center into delta_subg and retunrs 0 if both are not empty; otherwise it returns 1 | |
Private Attributes | |
Groundset * | groundset |
the groundset, may not be zero in init and *_update | |
BundleModel * | model |
may be zero at any time | |
MinorantPointer | center_aggr |
the aggregate stored for the current center, may be empty if not available | |
CH_Matrix_Classes::Real | weight |
the current weight | |
CH_Matrix_Classes::Real | minweight |
lower bound on the weight, no bound if negative | |
CH_Matrix_Classes::Real | maxweight |
upper bound on the weight, no bound of negative | |
bool | weightchanged |
true if last choose_* call modified the weight | |
bool | next_weight_set |
true if set_nextweight was just called, reset at *_update | |
CH_Matrix_Classes::Real | m1 |
parameter for descent step | |
CH_Matrix_Classes::Real | m2 |
parameter in (m1,1) for using quasi udpate | |
CH_Matrix_Classes::Real | m3 |
parameter for "accepting null steps" | |
CH_Matrix_Classes::Real | eta |
parameter for "zero subgradients" | |
CH_Matrix_Classes::Real | tL |
lower bound for recording extrapolation | |
CH_Matrix_Classes::Real | tR |
upper bound for recording interpolation | |
CH_Matrix_Classes::Real | t |
recorded inter/extrapolation | |
CH_Matrix_Classes::Real | frel |
realtive precision w.r.t. function value | |
CH_Matrix_Classes::Real | delhat1 |
oldval-modelval at t==1 unchanged | |
Routine for selecting the weight of the quadratic/proximal term within BundleSolver implementing BundleWeight roughly along the paper C. Lemarechal, C. Sagastizabal, Variable metric bundle methods: From conceptual to implementable forms, Mathematical Programming 76 (1997) 393-410. Implemented obeserving details of the email communication with Claudia Sagastizabal.