3 #ifndef CONICBUNDLE_MATRIXCBSOLVER_HXX 4 #define CONICBUNDLE_MATRIXCBSOLVER_HXX 232 { Matrix::operator=(pd);
return *
this; }
242 xpeya(*pd,itsfactor);
279 bool offset_at_origin=
false):
281 {assert(subg.
coldim()==1);}
287 bool offset_at_origin=
false):
288 Minorant(offset_at_origin,double(offset),int(subg.nonzeros()),(const double*)(subg.get_colval().
get_store()),(const int*)(subg.get_colindex().
get_store()),1.,primal)
289 {assert(subg.
coldim()==1);}
294 bool with_primal=
true)
295 :
Minorant(mnrt,double(factor),with_primal)
357 bool& discard_objective_in_center,
359 bool& discard_aggregates,
507 std::vector<Minorant*>& minorants,
521 class MatrixCBSolverData;
621 int init_problem(
int dim,
677 bool argument_list_may_change_dynamically=
false);
690 int set_lower_bound(
int i,
double lb);
703 int set_upper_bound(
int i,
double ub);
765 int append_variables(
int n_append,
771 const FunObjModMap* affected_functions_with_modifications=0);
816 const FunObjModMap* affected_functions_with_modifications=0);
856 const FunObjModMap* affected_functions_with_modifications=0);
951 solve(
int maxsteps=0,
bool stop_at_descent_steps=
false);
989 termination_code()
const;
999 print_termination_code(std::ostream& out);
1055 get_candidate_value()
const;
1093 (
const double term_relprec );
1104 set_new_center_point
1140 get_approximate_primal
1171 get_candidate_primal
1216 (
bool use_sumbundle,
1217 int n_local_models=-1,
1302 set_bundle_parameters
1333 get_bundle_parameters
1363 set_sumbundle_parameters
1408 int reinit_function_model
1429 int clear_aggregates
1452 int call_primal_extender
1460 get_last_weight()
const;
1466 get_next_weight()
const;
1490 (
const double weight );
1508 (
const double min_weight );
1525 (
const double max_weight );
1582 (
int do_variable_metric );
1629 set_active_bounds_fixing
1630 (
bool allow_fixing );
1674 set_inner_update_limit
1715 int get_dim()
const;
1719 int get_n_functions()
const;
1723 int get_n_oracle_calls()
const;
1727 int get_n_descent_steps()
const;
1731 int get_n_inner_iterations()
const;
1735 int get_n_inner_updates()
const;
1743 bool get_descent_step()
const;
1751 bool get_null_step()
const;
1862 (std::ostream* out=0,
int print_level=1);
1865 std::ostream& print_line_summary(std::ostream& out)
const;
1868 std::ostream& print_statistics(std::ostream& out)
const;
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
Base class for informing oracles (or the solver) about dynamic changes in the number and sorting of t...
Definition: CBSolver.hxx:544
abstract interface for a QPSolver
Definition: QPSolverObject.hxx:105
Header declaring the classes CH_Matrix_Classes::Realrange and CH_Matrix_Classes::Matrix having Real e...
Matrix & xpeya(const Matrix &A, Real d=1.)
sets *this+=d*A and returns *this
abstract interface that allows to use different -norms with a positive definite matrix in the proxi...
Definition: BundleProxObject.hxx:88
If in Lagrangean relaxation primal solutions are in the form of a real vector or, more generally a ma...
Definition: MatrixCBSolver.hxx:211
MatrixMinorant(CH_Matrix_Classes::Real offset, const CH_Matrix_Classes::Matrix &subg, PrimalData *primal=0, bool offset_at_origin=false)
initializaton by a Matrix column vector; if offset_at_origin==true, the offset gives the value at the...
Definition: MatrixCBSolver.hxx:276
Integer rowdim() const
returns the row dimension
Definition: matrix.hxx:215
The Full Conic Bundle method solver invoked by ConicBundle::MatrixCBSolver(), it uses a separate cutt...
Definition: MatrixCBSolver.hxx:540
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
virtual bool check_correctness() const
switch on/off some correctnes checks on the oracle
Definition: MatrixCBSolver.hxx:516
MatrixCBSolverData * data_
pointer to internal solver data
Definition: MatrixCBSolver.hxx:543
int scale_primal_data(double myfactor)
multiply/scale *this with a nonnegative myfactor
Definition: MatrixCBSolver.hxx:249
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 (abstract class). For each of your functions, provide an instance of a derived class...
Definition: MatrixCBSolver.hxx:404
Header declaring the class ConicBundle::SumBundleParametersObject.
Header declaring the class ConicBundle::BundleProxObject.
Real * get_store()
returns the current address of the internal value array; use cautiously, do not use delete! ...
Definition: matrix.hxx:326
Minorant * clone_minorant(double factor=1., bool with_primal=true) const
produces a clone of itself
Definition: MatrixCBSolver.hxx:302
abstract interface for SumBundleHandler for the model selection and variable metric seletcion routine...
Definition: SumBundleParametersObject.hxx:50
this is used to describe affine minorants of convex functions that will be used for generating cuttin...
Definition: CBSolver.hxx:274
in order to pass parameters to a customized QPSolverObject, derive the parameters from this object; n...
Definition: QPSolverObject.hxx:46
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
MatrixMinorant(CH_Matrix_Classes::Real offset, const CH_Matrix_Classes::Sparsemat &subg, PrimalData *primal=0, bool offset_at_origin=false)
initializaton by a Sparsemat column vector; if offset_at_origin==true, the offset gives the value at ...
Definition: MatrixCBSolver.hxx:284
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
PrimalMatrix & operator=(const CH_Matrix_Classes::Matrix &pd)
copy operator, *this=pm
Definition: MatrixCBSolver.hxx:231
Header declaring the class ConicBundle::UQPSolver.
Header declaring the classes ConicBundle::FunctionObjectModification and ConicBundle::FunObjModMap.
Header declaring the classes ConicBundle::CBSolver, ConicBundle::FunctionOracle and ConicBundle::Prim...
Serves for specifying parameters regarding the construction of cutting models.
Definition: CBSolver.hxx:891
int aggregate_primal_data(const PrimalData &it, double itsfactor)
multiply *this Matrix with myfactor and add itsfactor*it (it must dynamic_cast to a PrimalMatrix) ...
Definition: MatrixCBSolver.hxx:238
Integer dim() const
returns the dimension rows * columns when the matrix is regarded as a vector
Definition: matrix.hxx:212
PrimalMatrix(const CH_Matrix_Classes::Matrix &pm)
copy constructor, *this=pm
Definition: MatrixCBSolver.hxx:229
Header declaring the class ConicBundle::BundleData (see ConicBundle::SumBlockModel) ...
Integer coldim() const
returns the column dimension
Definition: matrix.hxx:218
Header declaring the class ConicBundle::BundleWeight.
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: MatrixCBSolver.hxx:366
std::map< const FunctionObject *, FunctionObjectModification > FunObjModMap
In order to pass on problem modifications, FunObjModMap allows to specify a FunctionObjectModificatio...
Definition: FunctionObjectModification.hxx:104
FunctionTask
Each function represented by a FunctionModel is equipped with a function_factor (it defaults to 1...
Definition: CBSolver.hxx:221
Matrix class of sparse matrices with real values of type Real
Definition: sparsmat.hxx:74
Abstract interface for BundleSolver providing routines that determine the weight of the quadratic ter...
Definition: BundleWeight.hxx:35
Minorant interface supporting Matrix classes; simple constructros for subgradients given by column ve...
Definition: MatrixCBSolver.hxx:271
Integer nc
number of columns
Definition: matrix.hxx:85
PrimalMatrix()
empty matrix
Definition: MatrixCBSolver.hxx:216
MatrixMinorant(const Minorant *mnrt, CH_Matrix_Classes::Real factor=1., bool with_primal=true)
generates a MatrixMinorat copy of a Minorant scaled by factor (deault =1.) and optionally without clo...
Definition: MatrixCBSolver.hxx:292
PrimalData * clone_primal_data() const
produces a new PrimalMatrix that is a copy of itself; the caller has to delete the returned object at...
Definition: MatrixCBSolver.hxx:235
basic function object (abstract class). It serves for using the same interface on distinct oracle typ...
Definition: CBSolver.hxx:236
Integer nr
number of rows
Definition: matrix.hxx:85
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
PrimalMatrix(CH_Matrix_Classes::Integer r, CH_Matrix_Classes::Integer c, CH_Matrix_Classes::Real d)
generate a matrix of size nr x nc initializing all elements to the value d
Definition: MatrixCBSolver.hxx:225
base class for use with SumBlockModel for storing and managing essential data of evaluations and the ...
Definition: BundleData.hxx:77
PrimalMatrix(const PrimalMatrix &pm)
copy constructor, *this=pm
Definition: MatrixCBSolver.hxx:227
Integer coldim() const
returns the column dimension
Definition: sparsmat.hxx:202
Matrix()
empty matrix
Definition: matrix.hxx:1082
PrimalMatrix(CH_Matrix_Classes::Integer nr, CH_Matrix_Classes::Integer nc)
generate a matrix of size nr x nc but WITHOUT initializing the memory
Definition: MatrixCBSolver.hxx:223