ConicBundle
VariableMetricSVDSelection.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_VARIABLEMETRICSVDSELECTION_HXX
4 #define CONICBUNDLE_VARIABLEMETRICSVDSELECTION_HXX
5 
6 
15 #include "VariableMetric.hxx"
16 
17 namespace ConicBundle {
18 
19 
24 
25 
33 {
34 private:
37 
40 
43 
46 
49 
52 
55 
56 
59  CH_Matrix_Classes::Real& relprec,
60  const MinorantBundle& bundle,
61  const MinorantPointer& aggregate,
62  CH_Matrix_Classes::Real function_factor,
66  CH_Matrix_Classes::Real violation_eps);
67 
70  CH_Matrix_Classes::Real& relprec,
71  const MinorantBundle& bundle,
72  const MinorantBundle& model,
73  const MinorantPointer& aggregate,
74  CH_Matrix_Classes::Real function_factor,
78  CH_Matrix_Classes::Real violation_eps);
79 
82  CH_Matrix_Classes::Real& relprec,
83  const MinorantBundle& bundle,
84  const MinorantBundle& model,
85  const CH_Matrix_Classes::Matrix& modelcoeff,
86  const MinorantPointer& aggregate,
87  CH_Matrix_Classes::Real function_factor,
91  CH_Matrix_Classes::Real violation_eps);
92 
95  CH_Matrix_Classes::Real& relprec,
96  const MinorantBundle& bundle,
97  const MinorantBundle& model,
98  const CH_Matrix_Classes::Matrix& modelcoeff,
99  const MinorantPointer& aggregate,
100  CH_Matrix_Classes::Real function_factor,
102  const CH_Matrix_Classes::Matrix& y,
103  CH_Matrix_Classes::Real weightu,
104  CH_Matrix_Classes::Real violation_eps);
105 
108  CH_Matrix_Classes::Real& relprec,
109  const MinorantBundle& bundle,
110  const MinorantBundle& model,
111  const CH_Matrix_Classes::Matrix& modelcoeff,
112  const MinorantPointer& aggregate,
113  CH_Matrix_Classes::Real function_factor,
115  const CH_Matrix_Classes::Matrix& y,
116  CH_Matrix_Classes::Real weightu,
117  CH_Matrix_Classes::Real violation_eps);
118 
121  CH_Matrix_Classes::Real& relprec,
122  const MinorantBundle& bundle,
123  const MinorantBundle& model,
124  const CH_Matrix_Classes::Matrix& modelcoeff,
125  const MinorantPointer& aggregate,
126  CH_Matrix_Classes::Real function_factor,
128  const CH_Matrix_Classes::Matrix& y,
129  CH_Matrix_Classes::Real weightu,
130  CH_Matrix_Classes::Real violation_eps);
131 
132 public:
135  {}
136 
138  VariableMetricSVDSelection(CBout* cb=0,int cbincr=-1):
139  VariableMetricSelection(cb,cbincr),
140  n_latest_minorants(50),
141  selection_method(-1),
142  oldfactor(0.)
143  {}
144 
147  CH_Matrix_Classes::Integer in_selection_method,
148  CH_Matrix_Classes::Real in_oldfactor=0.,
149  CBout* cb=0,int cbincr=-1):
150  VariableMetricSelection(cb,cbincr),
151  n_latest_minorants(in_n_latest_minorants),
152  selection_method(in_selection_method),
153  oldfactor(in_oldfactor)
154  {}
155 
161  {U=Uspace;V=Vspace;lam=lambda;cand=candNewton;}
162 
165  {return n_latest_minorants;}
166 
169  {n_latest_minorants=nlm;}
170 
173  {return selection_method;}
174 
177  {selection_method=sm;}
178 
182  const CH_Matrix_Classes::Matrix& y,
183  bool descent_step,
184  CH_Matrix_Classes::Real weightu,
185  CH_Matrix_Classes::Real model_maxviol,
186  const CH_Matrix_Classes::Indexmatrix* indices,
187  VariableMetricBundleData& bundle_data);
188 
191  return new VariableMetricSVDSelection(n_latest_minorants,selection_method,oldfactor,this,0);
192  }
193 };
194 
195 
196 
198 
199 }
200 
201 #endif
202 
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
general implementation of a VariableMetricSelection routine to form and add variable metric informati...
Definition: VariableMetricSVDSelection.hxx:32
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
VariableMetricSVDSelection(CBout *cb=0, int cbincr=-1)
default constructor
Definition: VariableMetricSVDSelection.hxx:138
CH_Matrix_Classes::Integer get_selection_method() const
returns selection_method
Definition: VariableMetricSVDSelection.hxx:172
int vecH_by_model(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantBundle &model, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based on collected minorants relative to aggregate and model
Matrix class for integral values of type Integer
Definition: indexmat.hxx:195
CH_Matrix_Classes::Matrix lambda
experimental data that tries to identify the curvature (Hessian eigenvalues) in Uspace directions (on...
Definition: VariableMetricSVDSelection.hxx:51
~VariableMetricSVDSelection()
destructor
Definition: VariableMetricSVDSelection.hxx:134
int vecH_weighted_SVD(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantBundle &model, const CH_Matrix_Classes::Matrix &modelcoeff, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based weighted sum of collected minorants relative to active subgradients and ortho...
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
CH_Matrix_Classes::Integer selection_method
specifies which of the current experimental routines should be used for computing the metric ...
Definition: VariableMetricSVDSelection.hxx:39
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
int vecH_orthogonal_to_modelSVD(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantBundle &model, const CH_Matrix_Classes::Matrix &modelcoeff, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based on collected minorants relative to aggregate and orthogonalized to model ...
Header declaring the classes ConicBundle::VariableMetricModel, ConicBundle::VariableMetricBundleData...
VariableMetricSVDSelection(CH_Matrix_Classes::Integer in_n_latest_minorants, CH_Matrix_Classes::Integer in_selection_method, CH_Matrix_Classes::Real in_oldfactor=0., CBout *cb=0, int cbincr=-1)
constructor for specifying values for n_latest_minorants and selection_method
Definition: VariableMetricSVDSelection.hxx:146
int vecH_weighted_SVDs(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantBundle &model, const CH_Matrix_Classes::Matrix &modelcoeff, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based weighted sum of SVD Hessians collected via minorants relative to active subgr...
CH_Matrix_Classes::Real oldfactor
for values of oldfactor between 0. and 1. the SVD is taken of (1-oldfactor)*vecH*vecH'+oldfactor*oldv...
Definition: VariableMetricSVDSelection.hxx:42
interface class that allows a VariableMetricModel to contribute information to a VariableMetric objec...
Definition: VariableMetric.hxx:309
int add_variable_metric(VariableMetric &H, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, bool descent_step, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real model_maxviol, const CH_Matrix_Classes::Indexmatrix *indices, VariableMetricBundleData &bundle_data)
see ConicBundle::VariableMetricSelection::add_variable_metric()
int vecH_orthogonal_to_model(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantBundle &model, const CH_Matrix_Classes::Matrix &modelcoeff, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based on collected minorants relative to aggregate and orthogonalized to model ...
Matrix class for real values of type Real
Definition: matrix.hxx:74
abstract interface, that allows to specify a routine for providing or computing a suitable variable m...
Definition: VariableMetric.hxx:237
std::vector< MinorantPointer > MinorantBundle
a bundle is a vector with MinorantPointer entries
Definition: MinorantPointer.hxx:24
void get_UVlambda(CH_Matrix_Classes::Matrix &U, CH_Matrix_Classes::Matrix &V, CH_Matrix_Classes::Matrix &lam, CH_Matrix_Classes::Matrix &cand)
for current ongoing experiments with variable metric routines
Definition: VariableMetricSVDSelection.hxx:157
VariableMetricSelection * clone_VariableMetricSelection()
clone: the values are only preserved for those contained in the constructor: n_latest_minorants, selection_method and oldfactor
Definition: VariableMetricSVDSelection.hxx:190
CH_Matrix_Classes::Matrix candNewton
experimental candidate that results from an approximate Newton step computaiton based on Vspace...
Definition: VariableMetricSVDSelection.hxx:54
CH_Matrix_Classes::Matrix Vspace
experimental data that tries to collect the current Vspace by an orthonormal basis (only some routine...
Definition: VariableMetricSVDSelection.hxx:45
int vecH_by_aggregate(CH_Matrix_Classes::Matrix &vecH, CH_Matrix_Classes::Real &relprec, const MinorantBundle &bundle, const MinorantPointer &aggregate, CH_Matrix_Classes::Real function_factor, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real violation_eps)
scaling heuristic based on collected minorants relative to the aggregate alone
CH_Matrix_Classes::Matrix Uspace
experimental data that tries to collect the current Uspace information by an orthonormal basis (only ...
Definition: VariableMetricSVDSelection.hxx:48
CH_Matrix_Classes::Integer n_latest_minorants
a positive number means dynamic scaling should be used and suggests to store and use this number of t...
Definition: VariableMetricSVDSelection.hxx:36
points to MinorantUseData that may be shared by many and allows computations with Minorants ...
Definition: MinorantPointer.hxx:34
void set_selection_method(CH_Matrix_Classes::Integer sm)
sets selection_method
Definition: VariableMetricSVDSelection.hxx:176
CH_Matrix_Classes::Integer get_n_latest_minorants() const
returns n_latest_minorants
Definition: VariableMetricSVDSelection.hxx:164
abstract interface providing the bundle data that is typically needed in VariableMetricSelection clas...
Definition: VariableMetric.hxx:183
void set_n_latest_minorants(CH_Matrix_Classes::Integer nlm)
sets n_latest_minorants
Definition: VariableMetricSVDSelection.hxx:168