ConicBundle
PSCModelParametersObject.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_PSCMODELPARAMETERSOBJECT_HXX
4 #define CONICBUNDLE_PSCMODELPARAMETERSOBJECT_HXX
5 
13 #include "SumBlockModel.hxx"
14 #include "PSCOracle.hxx"
15 //#include "PSCData.hxx"
16 
17 namespace ConicBundle {
22 
93  class PSCModelParametersObject: public virtual CBout, public BundleParameters
94 {
95 protected:
96  //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)
97  //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)
98  //int update_rule; // in case several update rules are available
99 
100  //bool enforce_separate_model; // when forming combined models for a sum of functions, enforce a separate model for this function
101 
102 public:
104  int init(const BundleParameters& bp){
106  const PSCModelParametersObject* mpo=dynamic_cast<const PSCModelParametersObject*>(&bp);
107  if (mpo){
108  set_cbout(mpo,0);
109  }
110  return 0;
111  }
112 
114  PSCModelParametersObject(const CBout* cb=0,int cbinc=-1):
115  CBout(cb,cbinc),BundleParameters()
116  {}
117 
119  PSCModelParametersObject(const BundleParameters& bp,const CBout* cb=0,int cbinc=-1):
120  CBout(cb,cbinc),BundleParameters(bp)
121  {}
122 
125  CBout(sms),BundleParameters(sms)
126  {}
127 
129  virtual ~PSCModelParametersObject();
130 
133  CH_Matrix_Classes::Real& mp_coeff,
134  const CH_Matrix_Classes::Matrix& P,
135  const CH_Matrix_Classes::Matrix& d,
136  PSCOracle* oracle,
137  CH_Matrix_Classes::Integer modification_id);
138 
257  virtual int select_model(CH_Matrix_Classes::Matrix& modelvecs,
258  MinorantPointer& model_aggregate,
259  CH_Matrix_Classes::Matrix& topvecs,
260  CH_Matrix_Classes::Matrix& Ritz_values,
261  CH_Matrix_Classes::Integer& activedim,
262  CH_Matrix_Classes::Integer& keepsize,
263  CH_Matrix_Classes::Integer& skippedsize,
264  CH_Matrix_Classes::Real primal_Ritzval,
265  const CH_Matrix_Classes::Matrix& primaleigs,
266  const CH_Matrix_Classes::Matrix& primalvecs,
267  const MinorantPointer& primal_aggregate,
268  CH_Matrix_Classes::Real primal_aggregate_coeff,
269  CH_Matrix_Classes::Real growthrate,
270  const CH_Matrix_Classes::Matrix& primalgrowth,
271  const CH_Matrix_Classes::Matrix& dualgrowth,
272  const CH_Matrix_Classes::Matrix& cand_Ritzvec,
273  const CH_Matrix_Classes::Matrix& cand_Ritzval,
274  PSCOracle* oracle,
275  CH_Matrix_Classes::Integer modification_id,
276  FunctionTask function_task,
277  CH_Matrix_Classes::Real function_factor,
278  BundleModel::ModelUpdate model_update,
279  CH_Matrix_Classes::Integer center_id,
280  const CH_Matrix_Classes::Matrix& center_y,
282  const CH_Matrix_Classes::Matrix& cand_y,
283  CH_Matrix_Classes::Real model_maxviol,
284  CH_Matrix_Classes::Real diffval_center_aggregate,
285  BundleProxObject& H)=0;
286 
287 
288 };
289 
290 
292 
293 }
294 
295 #endif
296 
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
Header declaring the class ConicBundle::SumBlockModel.
abstract interface that allows to use different -norms with a positive definite matrix in the proxi...
Definition: BundleProxObject.hxx:88
virtual int select_model(CH_Matrix_Classes::Matrix &modelvecs, MinorantPointer &model_aggregate, CH_Matrix_Classes::Matrix &topvecs, CH_Matrix_Classes::Matrix &Ritz_values, CH_Matrix_Classes::Integer &activedim, CH_Matrix_Classes::Integer &keepsize, CH_Matrix_Classes::Integer &skippedsize, CH_Matrix_Classes::Real primal_Ritzval, const CH_Matrix_Classes::Matrix &primaleigs, const CH_Matrix_Classes::Matrix &primalvecs, const MinorantPointer &primal_aggregate, CH_Matrix_Classes::Real primal_aggregate_coeff, CH_Matrix_Classes::Real growthrate, const CH_Matrix_Classes::Matrix &primalgrowth, const CH_Matrix_Classes::Matrix &dualgrowth, const CH_Matrix_Classes::Matrix &cand_Ritzvec, const CH_Matrix_Classes::Matrix &cand_Ritzval, PSCOracle *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 &center_y, CH_Matrix_Classes::Integer cand_id, const CH_Matrix_Classes::Matrix &cand_y, CH_Matrix_Classes::Real model_maxviol, CH_Matrix_Classes::Real diffval_center_aggregate, BundleProxObject &H)=0
PSCModel calls this for selecting the next positive semidefinite model.
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
Header declaring the classes ConicBundle::PSCOracle and ConicBundle::PSCBundleParameters (needed for ...
PSCModelParametersObject(const PSCModelParametersObject &sms)
copy constructor
Definition: PSCModelParametersObject.hxx:124
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
Oracle interface for minimization of the maximum eigenvalue of an affine matrix function or...
Definition: PSCOracle.hxx:233
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
abstract interface for PSCModel for the model selection routine select_model()
Definition: PSCModelParametersObject.hxx:93
ModelUpdate
for informing update_model() at what stage it is called to update the bundle so that the amount of in...
Definition: BundleModel.hxx:149
virtual int init(const BundleParameters &bp)
initialize to given values
Definition: CBSolver.hxx:900
Serves for specifying parameters regarding the construction of cutting models.
Definition: CBSolver.hxx:891
virtual ~PSCModelParametersObject()
virtual destructor, implemented in PSCModelParameters.cxx
Matrix class for real values of type Real
Definition: matrix.hxx:74
FunctionTask
Each function represented by a FunctionModel is equipped with a function_factor (it defaults to 1...
Definition: CBSolver.hxx:221
int init(const BundleParameters &bp)
initialize BundleParameters to given values, if bp is a SumModleParametersObject alos set n_local_mod...
Definition: PSCModelParametersObject.hxx:104
int get_minorant(MinorantPointer &mp, CH_Matrix_Classes::Real &mp_coeff, const CH_Matrix_Classes::Matrix &P, const CH_Matrix_Classes::Matrix &d, PSCOracle *oracle, CH_Matrix_Classes::Integer modification_id)
Compute the aggregate minornat corresponding to the matrix P*Diag(d)*P&#39;/sum(d) for the given oracle a...
points to MinorantUseData that may be shared by many and allows computations with Minorants ...
Definition: MinorantPointer.hxx:34
PSCModelParametersObject(const CBout *cb=0, int cbinc=-1)
default constructor
Definition: PSCModelParametersObject.hxx:114
PSCModelParametersObject(const BundleParameters &bp, const CBout *cb=0, int cbinc=-1)
copy constructor for BundleParameters
Definition: PSCModelParametersObject.hxx:119
virtual void set_cbout(const CBout *cb, int incr=-1)
Specifies the output level relative to the given CBout class.