ConicBundle
SOCModelParametersObject.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_SOCMODELPARAMETERSOBJECT_HXX
4 #define CONICBUNDLE_SOCMODELPARAMETERSOBJECT_HXX
5 
13 #include "SumBlockModel.hxx"
14 #include "SOCOracle.hxx"
15 //#include "SOCData.hxx"
16 
17 namespace ConicBundle {
22 
49  class SOCModelParametersObject: public virtual CBout, public BundleParameters
50 {
51 protected:
52  //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)
53  //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)
54  //int update_rule; // in case several update rules are available
55 
56  //bool enforce_separate_model; // when forming combined models for a sum of functions, enforce a separate model for this function
57 
58 public:
60  int init(const BundleParameters& bp){
62  const SOCModelParametersObject* mpo=dynamic_cast<const SOCModelParametersObject*>(&bp);
63  if (mpo){
64  set_cbout(mpo,0);
65  }
66  return 0;
67  }
68 
70  SOCModelParametersObject(const CBout* cb=0,int cbinc=-1):
71  CBout(cb,cbinc),BundleParameters()
72  {}
73 
75  SOCModelParametersObject(const BundleParameters& bp,const CBout* cb=0,int cbinc=-1):
76  CBout(cb,cbinc),BundleParameters(bp)
77  {}
78 
81  CBout(sms),BundleParameters(sms)
82  {}
83 
85  virtual ~SOCModelParametersObject();
86 
145  virtual int select_model(CH_Matrix_Classes::Matrix& modelvecs,
146  const CH_Matrix_Classes::Matrix& aggrvec,
147  CH_Matrix_Classes::Real cand_SOCval,
148  const CH_Matrix_Classes::Matrix& cand_SOCvec,
149  CH_Matrix_Classes::Real center_SOCval,
150  const CH_Matrix_Classes::Matrix& center_SOCvec,
151  const CH_Matrix_Classes::Matrix& SOCvecs,
152  SOCOracle* oracle,
153  FunctionTask function_task,
154  CH_Matrix_Classes::Real function_factor,
155  BundleModel::ModelUpdate model_update,
156  CH_Matrix_Classes::Integer center_id,
157  const CH_Matrix_Classes::Matrix& center_y,
159  const CH_Matrix_Classes::Matrix& cand_y,
160  CH_Matrix_Classes::Real model_maxviol,
161  BundleProxObject& H)=0;
162 
163 };
164 
165 
167 
168 }
169 
170 #endif
171 
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
abstract interface for SOCModel for the model selection routine select_model()
Definition: SOCModelParametersObject.hxx:49
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
SOCModelParametersObject(const CBout *cb=0, int cbinc=-1)
default constructor
Definition: SOCModelParametersObject.hxx:70
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
Oracle interface for minimization of the support function over the seoncd order cone with for an aff...
Definition: SOCOracle.hxx:186
int init(const BundleParameters &bp)
initialize BundleParameters to given values, if bp is a SumModleParametersObject alos set n_local_mod...
Definition: SOCModelParametersObject.hxx:60
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 &center_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 &center_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.
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
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
Header declaring the classes ConicBundle::SOCOracle and ConicBundle::SOCBundleParameters (needed for ...
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
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
SOCModelParametersObject(const SOCModelParametersObject &sms)
copy constructor
Definition: SOCModelParametersObject.hxx:80
virtual ~SOCModelParametersObject()
virtual destructor, implemented in SOCModelParameters.cxx
virtual void set_cbout(const CBout *cb, int incr=-1)
Specifies the output level relative to the given CBout class.
SOCModelParametersObject(const BundleParameters &bp, const CBout *cb=0, int cbinc=-1)
copy constructor for BundleParameters
Definition: SOCModelParametersObject.hxx:75