4 #ifndef CONICBUNDLE_LPGROUNDSET_HXX 5 #define CONICBUNDLE_LPGROUNDSET_HXX 195 {starting_point=vec;
int dummy=-1;
return (
is_feasible(dummy,vec)==
false);}
221 {
return (use_yfixing? &yfixed : 0);}
225 {
return (use_yfixing? &yfixed : 0);}
int Integer
all integer numbers in calculations and indexing are of this type
Definition: matop.hxx:40
abstract interface for a QPSolver
Definition: QPSolverObject.hxx:105
GroundsetModification * start_modification()
propagates the call to QPSolverObject::QPstart_modification() of the current qpsolver ...
Definition: LPGroundset.hxx:251
const CH_Matrix_Classes::Matrix * get_lby() const
number of linear constraints
abstract interface that allows to use different -norms with a positive definite matrix in the proxi...
Definition: BundleProxObject.hxx:88
CH_Matrix_Classes::Matrix old_lowrank
used by the variable metric low rank heuristic
Definition: LPGroundset.hxx:91
virtual void clear(CH_Matrix_Classes::Integer indim=0, CH_Matrix_Classes::Integer in_groundset_id=0)
resets all values as described in Groundset::clear()
CH_Matrix_Classes::Integer dim
current dimension of the ground set
Definition: LPGroundset.hxx:52
double Real
all real numbers in calculations are of this type
Definition: matop.hxx:50
QPSolver is the access point for ConicBundle to the internal constrained QP Solver, see Internal QP Solver for linearly constrained groundsets.
Definition: QPSolver.hxx:120
Matrix class for integral values of type Integer
Definition: indexmat.hxx:195
virtual QPSolverObject * get_qp_solver(bool &solves_model_without_gs, BundleProxObject *Hp)
returns a pointer to an internal QPSolverObject that is able to solve bundle suproblems efficiently f...
CH_Matrix_Classes::Indexmatrix yfixed
in constrained versions, when use_yfixing is true, this indicates whether a coordinate should be cons...
Definition: LPGroundset.hxx:67
virtual bool QPconstrained() const =0
returns false if the feasible set is the entire space (unconstrained optimization), true otherwise.
MinorantPointer gs_aggregate
the ground set aggregate, here giving the linear coefficients of the affine cost function ...
Definition: LPGroundset.hxx:61
CH_Matrix_Classes::Symmatrix old_sym
used by the variable metric heuristic
Definition: LPGroundset.hxx:93
int set_variable_metric_selection(VariableMetricSelection *vms=0)
delete old selector and set a new one (0 is allowed resulting in no local selector) ...
Definition: LPGroundset.hxx:234
virtual const MinorantPointer & get_gs_aggregate() const
returns the groundset aggregate computed in candidate()
Definition: LPGroundset.hxx:214
virtual bool is_feasible(CH_Matrix_Classes::Integer &in_groundset_id, const CH_Matrix_Classes::Matrix &y, CH_Matrix_Classes::Real relprec=1e-10)
returns the indices of variable lower bounds > ConicBundle::CB_minus_infinity
virtual GroundsetModification * QPstart_modification()=0
return a new modification object on the heap that is initialized for modification of *this...
CH_Matrix_Classes::Matrix old_diagonal
used by the variable metric low rank heuristic
Definition: LPGroundset.hxx:92
CH_Matrix_Classes::Integer max_minorants
maximum number of minorants
Definition: LPGroundset.hxx:89
Matrix class of symmetric matrices with real values of type Real
Definition: symmat.hxx:43
CH_Matrix_Classes::Integer minorant_nexti
used by the variable metric low rank heuristic
Definition: LPGroundset.hxx:90
unconstrained QP solver combining the properties of a QPModelDataPointer and QPSolverObject ...
Definition: UQPSolver.hxx:138
in order to pass parameters to a customized QPSolverObject, derive the parameters from this object; n...
Definition: QPSolverObject.hxx:46
bool constrained() const
returns false if the feasible set is the entire space (unconstrained optimization), true otherwise.
Definition: LPGroundset.hxx:134
conic bundle method solver for sum of convex functions. See the ConicBundle_Manual for a quick introd...
Definition: CBSolver.hxx:22
UQPSolver uqpsolver
special solver for easy groundsets
Definition: LPGroundset.hxx:71
virtual CH_Matrix_Classes::Integer get_dim() const
returns the dimension of the ground set, i.e., the length of the variables vector y ...
Definition: LPGroundset.hxx:127
CH_Matrix_Classes::Real gamma
constant offset for QP-subproblems
Definition: LPGroundset.hxx:79
VariableMetricSelection * vm_selection
specifieable routine for computing a metric contribution of the groundset, see Variable Metric ...
Definition: LPGroundset.hxx:85
bool solve_model_without_gs
selected varaint of solving the subproblem
Definition: LPGroundset.hxx:73
base class for uniform use of WARNINGS and ERRORS (at some point in time)
Definition: CBout.hxx:30
QPSolverObject * qpsolver
general solver for all groundsets
Definition: LPGroundset.hxx:70
virtual const CH_Matrix_Classes::Matrix & get_starting_point() const
returns a stored starting point, note: this need not be feasible; if generated automatically, its dimension is correct.
Definition: LPGroundset.hxx:190
int apply_modification(const GroundsetModification &mdf)
change the groundset description as specified by the argument
void set_use_yfixing(bool uyf)
set to true to switch on the cooridinate fixing heuristic (only constrained cases) ...
Definition: LPGroundset.hxx:231
Header declaring the class ConicBundle::UQPSolver.
bool use_yfixing
if set to true in constrained versions, y-variables that are at strongly active bounds should be fixe...
Definition: LPGroundset.hxx:64
QPSolverObject * qp_solver
the selected solver
Definition: LPGroundset.hxx:72
CH_Matrix_Classes::Integer get_groundset_id() const
returns the current groundset_id, increased values indicate changes in the ground set ...
Definition: LPGroundset.hxx:121
int add_variable_metric(VariableMetric &H, CH_Matrix_Classes::Integer y_id, const CH_Matrix_Classes::Matrix &y, bool descent_step, CH_Matrix_Classes::Real weightu, CH_Matrix_Classes::Real model_maxviol, const CH_Matrix_Classes::Indexmatrix *indices=0)
see VariableMetric
virtual const CH_Matrix_Classes::Indexmatrix * get_yfixed() const
if not NULL (iff get_use_yfixing()==false) it returns the vector yfixed with yfixed(i)=0 if not fixed...
Definition: LPGroundset.hxx:220
int set_qp_solver_parameters(QPSolverParametersObject *)
set parameters for the QP_Solver
Definition: LPGroundset.hxx:184
abstract representation of the feasible convex ground set to be optimized over, provides the QP solve...
Definition: Groundset.hxx:77
interface class that allows a VariableMetricModel to contribute information to a VariableMetric objec...
Definition: VariableMetric.hxx:309
bool store_old_minorants
false by default, set to true if variable metric is used
Definition: LPGroundset.hxx:87
CH_Matrix_Classes::Matrix starting_point
the starting point
Definition: LPGroundset.hxx:58
VariableMetricSelection * get_variable_metric_selection() const
delete old selector and set a new one (0 is allowed resulting in no local selector) ...
Definition: LPGroundset.hxx:238
int set_qpsolver(QPSolverParametersObject *qpparams, QPSolverObject *qpsolver=0)
Set the qp solver's parameters to qpparams (if not null); if the second argument qpsolver is also giv...
Matrix class for real values of type Real
Definition: matrix.hxx:74
abstract interface, that allows to specify a routine for providing or computing a suitable variable m...
Definition: VariableMetric.hxx:237
represents a polyhedral feasible ground set by affine constraints as in Linear Programming with speci...
Definition: LPGroundset.hxx:48
std::ostream * out
not output at all if out==0, otherwise use this output stream
Definition: CBout.hxx:33
Matrix class of sparse matrices with real values of type Real
Definition: sparsmat.hxx:74
std::vector< MinorantPointer > MinorantBundle
a bundle is a vector with MinorantPointer entries
Definition: MinorantPointer.hxx:24
void set_cbout(const CBout *cb, int incr=-1)
output settings
Definition: LPGroundset.hxx:262
virtual int set_starting_point(const CH_Matrix_Classes::Matrix &vec)
stores the a new starting point irrespective of whether it is feasible or not and returns 0 if it fea...
Definition: LPGroundset.hxx:194
virtual int candidate(CH_Matrix_Classes::Integer &gs_id, CH_Matrix_Classes::Matrix &newy, CH_Matrix_Classes::Real &cand_gs_val, CH_Matrix_Classes::Real &linval, CH_Matrix_Classes::Real &augval_lb, CH_Matrix_Classes::Real &augval_ub, CH_Matrix_Classes::Real &subgnorm2, const CH_Matrix_Classes::Matrix ¢er_y, CH_Matrix_Classes::Real center_value, const MinorantPointer &model_minorant, BundleProxObject *Hp, MinorantPointer *delta_groundset_minorant=0, CH_Matrix_Classes::Indexmatrix *delta_index=0, CH_Matrix_Classes::Real relprec=1e-2)
computes the next ground set minorant and candidate, see Groundset::candidate()
const CH_Matrix_Classes::Matrix * get_uby() const
returns the upper bounds vector on y if it exists
int mfile_data(std::ostream &out) const
m-file output routine for debugging or testing in Matlab (not yet working)
bool get_use_yfixing() const
true if the cooridinate fixing heuristic is switched on (only constrained cases)
Definition: LPGroundset.hxx:228
Header declaring the class ConicBundle::QPSolver.
Collects modifications for the unconstrained Groundset for appending, deleting or reassigning variabl...
Definition: GroundsetModification.hxx:32
void set_groundset_id(CH_Matrix_Classes::Integer gsid)
sets the groundset_id to the desired value, increasing it is safer here because this is used to indic...
Definition: LPGroundset.hxx:124
MinorantBundle old_minorants
minorants collected for variable metric purpose
Definition: LPGroundset.hxx:88
const MinorantPointer & get_gs_minorant() const
returns the linear minorant valid on the entire ground set (e.g. a linear cost funciton) ...
Definition: LPGroundset.hxx:217
LPGroundset(CBout *cb=0)
calls clear() with the same parameters
Definition: LPGroundset.hxx:103
virtual CH_Matrix_Classes::Indexmatrix * set_yfixed()
if not NULL (iff get_use_yfixing()==false) returns the vector yfixed with yfixed(i)=0 if not fixed...
Definition: LPGroundset.hxx:224
CH_Matrix_Classes::Integer groundset_id
nonnegative update counter for recognizing changes in the groundset description
Definition: LPGroundset.hxx:55
points to MinorantUseData that may be shared by many and allows computations with Minorants ...
Definition: MinorantPointer.hxx:34
int ensure_feasibility(CH_Matrix_Classes::Integer &in_groundset_id, CH_Matrix_Classes::Matrix &y, bool &ychanged, BundleProxObject *Hp, CH_Matrix_Classes::Real relprec=1e-10)
makes y feasible if not so, see Groundset::ensure_feasibility()
BundleProxObject * Hp
points to the quadratic cost matrix inside ensure_feasibility() and candidate(), otherwise ==NULL ...
Definition: LPGroundset.hxx:77
virtual void set_cbout(const CBout *cb, int incr=-1)
Specifies the output level relative to the given CBout class.
MinorantPointer gs_minorant
affine cost function for the ground set
Definition: LPGroundset.hxx:81
Header declaring the class ConicBundle::Groundset.
CH_Matrix_Classes::Matrix c
linear cost term for QP-subproblems
Definition: LPGroundset.hxx:78