ConicBundle
BoxOracle.hxx
Go to the documentation of this file.
1 
2 
3 #ifndef CONICBUNDLE_BOXORACLE_HXX
4 #define CONICBUNDLE_BOXORACLE_HXX
5 
13 //------------------------------------------------------------
14 
15 #include "MatrixCBSolver.hxx"
16 #include "matrix.hxx"
17 
18 //------------------------------------------------------------
19 
20 
21 namespace ConicBundle {
22 
33 
34 
49  {
50  public:
52  virtual ~BoxPrimalExtender(){};
53 
55  virtual int extend(PrimalData&)=0;
56 
58  virtual int extend_Box(CH_Matrix_Classes::Matrix& /* Boxvecs */ )=0;
59  };
60 
61 
62 
73  {
74  private:
77 
78  public:
79 
82  const CH_Matrix_Classes::Matrix& in_ub):
83  lb(in_lb),ub(in_ub)
84  {}
85 
87  virtual ~BoxOracle();
88 
92  {return lb;}
93 
97  {return ub;}
98 
134  virtual
135  int
136  apply_modification
137  (
138  const OracleModification& /* oracle_modification */,
139  const CH_Matrix_Classes::Matrix* /* new_center */,
140  const CH_Matrix_Classes::Matrix* /* old_center */,
141  bool& /* discard_objective_in_center */,
142  bool& /* discard_model */,
143  bool& /* discard_aggregates */,
144  MinorantExtender*& /* minorant_extender */
145  )
146  {return 1;}
147 
148 
149 
151  virtual
152  bool
154  {return true;}
155 
156 
157  };
158 
159 
161 
162 }
163 #endif
164 
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...
virtual int extend_Box(CH_Matrix_Classes::Matrix &)=0
called by ConicBundle to update internal Ritz_vectors, has to return 0 on success ...
Interface for extending a Minorant, e.g., in Lagrangian Relaxation of cutting plane approaches...
Definition: CBSolver.hxx:490
BoxOracle(const CH_Matrix_Classes::Matrix &in_lb, const CH_Matrix_Classes::Matrix &in_ub)
constructor initializing lower and upper bounds (must have the same dimesnion, not checked) ...
Definition: BoxOracle.hxx:81
virtual int extend(PrimalData &)=0
like in PrimalExtender, called by ConicBundle to update internal PrimalData objects, has to return 0 on success
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
Oracle interface providing the lower and upper bounds for the internally implemented support function...
Definition: BoxOracle.hxx:72
virtual bool check_correctness() const
switch on/off some correctnes checks on the oracle
Definition: BoxOracle.hxx:153
CH_Matrix_Classes::Matrix lb
column vector of lower bounds, same dimension as ub
Definition: BoxOracle.hxx:75
const CH_Matrix_Classes::Matrix & get_lower_bounds()
returns the lower bounds vector of the box
Definition: BoxOracle.hxx:91
const CH_Matrix_Classes::Matrix & get_upper_bounds()
returns the upper bounds vector of the box
Definition: BoxOracle.hxx:96
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
Interface for extending PrimalData, e.g., in Lagrangian relaxation of column generation approaches...
Definition: BoxOracle.hxx:48
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
CH_Matrix_Classes::Matrix ub
column vector of upper bounds, same dimension as lb
Definition: BoxOracle.hxx:76