ConicBundle
SOCOracle.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_SOCORACLE_HXX
4 #define CONICBUNDLE_SOCORACLE_HXX
5 
13 //------------------------------------------------------------
14 
15 #include "MatrixCBSolver.hxx"
16 #include "matrix.hxx"
17 
18 //------------------------------------------------------------
19 
20 
21 namespace ConicBundle {
22 
127 
128 
142  {
143  public:
145  virtual ~SOCPrimalExtender(){}
146 
148  virtual int extend(PrimalData&)=0;
149 
151  virtual int extend_SOC(CH_Matrix_Classes::Matrix& /* vectors */ )=0;
152  };
153 
154 
187  {
188  public:
189 
199  virtual Minorant* generate_minorant(const CH_Matrix_Classes::Matrix& SOCvec)=0;
200 
212  virtual int extract_SOCvector(CH_Matrix_Classes::Matrix& SOCvec, const Minorant* SOCminorant)=0;
213 
222  virtual int projection(
225  const CH_Matrix_Classes::Matrix& bar_P,
226  const CH_Matrix_Classes::Indexmatrix* index_subset=0) =0;
227 
231  virtual
232  int
233  evaluate
234  (
236  const CH_Matrix_Classes::Matrix& current_point,
241  const CH_Matrix_Classes::Real relprec,
248  CH_Matrix_Classes::Real& SOC_value,
250  CH_Matrix_Classes::Matrix& SOC_vector,
261  SOCPrimalExtender*& primal_extender
262  )
263  = 0;
264 
267  virtual
268  int
269  evaluate_projection
270  (
272  const CH_Matrix_Classes::Matrix& current_point,
274  const CH_Matrix_Classes::Matrix& P,
276  const CH_Matrix_Classes::Real relprec,
278  CH_Matrix_Classes::Real& projected_SOC_value
279  )
280  = 0;
281 
282 
318  virtual
319  int
320  apply_modification
321  (
322  const OracleModification& /* oracle_modification */,
323  const CH_Matrix_Classes::Matrix* /* new_center */,
324  const CH_Matrix_Classes::Matrix* /* old_center */,
325  bool& /* discard_objective_in_center */,
326  bool& /* discard_model */,
327  bool& /* discard_aggregates */,
328  MinorantExtender*& /* minorant_extender */
329  )
330  {return 1;}
331 
332 
333 
335  virtual
336  bool
338  {return true;}
339 
340 
341  };
342 
343 
344 
366  {
367  public:
368  //int max_model_size; //inherited
369  //int max_bundle_size; //inherited
370 
371 
372  //currently no further items needed
373 
374  };
375 
377 
378 }
379 #endif
380 
Base class for informing oracles (or the solver) about dynamic changes in the number and sorting of t...
Definition: CBSolver.hxx:544
Header declaring the classes CH_Matrix_Classes::Realrange and CH_Matrix_Classes::Matrix having Real e...
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
Interface for extending a Minorant, e.g., in Lagrangian Relaxation of cutting plane approaches...
Definition: CBSolver.hxx:490
Matrix class for integral values of type Integer
Definition: indexmat.hxx:195
Oracle interface for minimization of the support function over the seoncd order cone with for an aff...
Definition: SOCOracle.hxx:186
Interface for extending PrimalData, e.g., in Lagrangian relaxation of column generation approaches...
Definition: SOCOracle.hxx:141
this is used to describe affine minorants of convex functions that will be used for generating cuttin...
Definition: CBSolver.hxx:274
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
Serves for specifying parameters regarding the construction of cutting models.
Definition: CBSolver.hxx:891
virtual int extend(PrimalData &)=0
like in PrimalExtender, called by ConicBundle to update internal PrimalData objects, has to return 0 on success
ModifiableOracle provides all oracles with a uniform interface for a modification routine and an on/o...
Definition: MatrixCBSolver.hxx:309
Matrix class for real values of type Real
Definition: matrix.hxx:74
virtual bool check_correctness() const
switch on/off some correctnes checks on the oracle
Definition: SOCOracle.hxx:337
virtual int extend_SOC(CH_Matrix_Classes::Matrix &)=0
called by ConicBundle to update internal SOC vectors, has to return 0 on success
Bundle parameters for SOCModel.
Definition: SOCOracle.hxx:365
Header declaring the classes ConicBundle::MatrixCBSolver, ConicBundle::MatrixFunctionOracle, ConicBundle::PrimalMatrix, ConicBundle::MatrixMinorant, ConicBundle::ModifiableOracleObject.
In Lagrangean relaxation an approximate primal solution can be generated by supplying primal informat...
Definition: CBSolver.hxx:151
Interface for extending PrimalData, e.g., in Lagrangian relaxation of column generation approaches...
Definition: CBSolver.hxx:180