ConicBundle
NNCModelParametersObject.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_NNCMODELPARAMETERSOBJECT_HXX
4 #define CONICBUNDLE_NNCMODELPARAMETERSOBJECT_HXX
5 
13 #include "MatrixCBSolver.hxx"
14 #include "SumBlockModel.hxx"
15 
16 namespace ConicBundle {
21 
27  class NNCModelParametersObject: public virtual CBout, public BundleParameters
28 {
29 protected:
30  //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)
31  //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)
32  //int update_rule; // in case several update rules are available
33 
34  //bool enforce_separate_model; // when forming combined models for a sum of functions, enforce a separate model for this function
35 
36 public:
38  int init(const BundleParameters& bp){
40  const NNCModelParametersObject* mpo=dynamic_cast<const NNCModelParametersObject*>(&bp);
41  if (mpo){
42  set_cbout(mpo,0);
43  }
44  return 0;
45  }
46 
48  NNCModelParametersObject(const CBout* cb=0,int cbinc=-1):
49  CBout(cb,cbinc),BundleParameters()
50  {}
51 
53  NNCModelParametersObject(const BundleParameters& bp,const CBout* cb=0,int cbinc=-1):
54  CBout(cb,cbinc),BundleParameters(bp)
55  {}
56 
59  CBout(sms),BundleParameters(sms)
60  {}
61 
63  virtual ~NNCModelParametersObject();
64 
124  virtual int select_model(MinorantBundle& model,
125  CH_Matrix_Classes::Matrix& coefficients,
126  CH_Matrix_Classes::Matrix& activity_indicators,
127  const MinorantPointer& aggregate,
128  const MinorantPointer& center_minorant,
129  const MinorantBundle& cand_minorants,
130  const MinorantBundle& old_minorants,
131  MatrixFunctionOracle* oracle,
132  FunctionTask function_task,
133  CH_Matrix_Classes::Real function_factor,
134  BundleModel::ModelUpdate model_update,
135  CH_Matrix_Classes::Integer center_id,
136  const CH_Matrix_Classes::Matrix& center_y,
138  const CH_Matrix_Classes::Matrix& cand_y,
139  CH_Matrix_Classes::Real model_maxviol,
140  BundleProxObject& H)=0;
141 
142 
143 
144 };
145 
146 
148 
149 }
150 
151 #endif
152 
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
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
Oracle interface (abstract class). For each of your functions, provide an instance of a derived class...
Definition: MatrixCBSolver.hxx:404
NNCModelParametersObject(const NNCModelParametersObject &sms)
copy constructor
Definition: NNCModelParametersObject.hxx:58
NNCModelParametersObject(const BundleParameters &bp, const CBout *cb=0, int cbinc=-1)
copy constructor for BundleParameters
Definition: NNCModelParametersObject.hxx:53
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
virtual ~NNCModelParametersObject()
virtual destructor, implemented in NNCModelParameters.cxx
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
abstract interface for NNCModel for the model selection routine select_model()
Definition: NNCModelParametersObject.hxx:27
Matrix class for real values of type Real
Definition: matrix.hxx:74
NNCModelParametersObject(const CBout *cb=0, int cbinc=-1)
default constructor
Definition: NNCModelParametersObject.hxx:48
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: NNCModelParametersObject.hxx:38
std::vector< MinorantPointer > MinorantBundle
a bundle is a vector with MinorantPointer entries
Definition: MinorantPointer.hxx:24
virtual int select_model(MinorantBundle &model, CH_Matrix_Classes::Matrix &coefficients, CH_Matrix_Classes::Matrix &activity_indicators, const MinorantPointer &aggregate, const MinorantPointer &center_minorant, const MinorantBundle &cand_minorants, const MinorantBundle &old_minorants, MatrixFunctionOracle *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
NNCModel calls this for selecting the next minorants for a polyhedral model.
Header declaring the classes ConicBundle::MatrixCBSolver, ConicBundle::MatrixFunctionOracle, ConicBundle::PrimalMatrix, ConicBundle::MatrixMinorant, ConicBundle::ModifiableOracleObject.
points to MinorantUseData that may be shared by many and allows computations with Minorants ...
Definition: MinorantPointer.hxx:34
virtual void set_cbout(const CBout *cb, int incr=-1)
Specifies the output level relative to the given CBout class.