ConicBundle
|
extends BundleData for use with PSCModel (see there for the description of the function) by adding information on Ritz_vectors generating the subgradients and the cutting model More...
#include <PSCData.hxx>
Public Member Functions | |
~PSCData () | |
calls clear() | |
void | clear (CH_Matrix_Classes::Integer start_modification_id=0) |
reset to initial state (also used by the default constructor) | |
PSCData (CH_Matrix_Classes::Real fun_factor=1., FunctionTask fun_task=ObjectiveFunction) | |
calls clear() | |
const CH_Matrix_Classes::Matrix & | get_primalvecs () const |
returns primalvecs | |
const CH_Matrix_Classes::Matrix & | get_primaleigs () const |
returns primaleigs | |
const CH_Matrix_Classes::Matrix & | get_topvecs () const |
returns topvecs | |
const CH_Matrix_Classes::Matrix & | get_Ritz_values () const |
returns Ritz_values | |
CH_Matrix_Classes::Integer | get_keepsize () const |
returns keepsize | |
CH_Matrix_Classes::Integer | get_activedim () const |
returns acitvedim | |
CH_Matrix_Classes::Integer | get_skippedsize () const |
returns skippedsize | |
int | init (const BundleData *bd) |
if bd is of type PSCData, initialize to this data | |
BundleData * | clone () const |
return a pointer to a clone of this | |
int | do_step (CH_Matrix_Classes::Integer point_id) |
if the candidate information is available and consitent for point_id, copy it from cand to center and return 0, otherwise return 1 | |
int | synchronize_ids (CH_Matrix_Classes::Integer &new_center_ub_fid, CH_Matrix_Classes::Integer new_center_id, CH_Matrix_Classes::Integer old_center_id, CH_Matrix_Classes::Integer &new_cand_ub_fid, CH_Matrix_Classes::Integer new_cand_id, CH_Matrix_Classes::Integer old_cand_id, CH_Matrix_Classes::Integer &new_aggregate_id, CH_Matrix_Classes::Integer new_prex_id=0) |
synchronize ids in any case by discarding inconsistent parts but return number of errors | |
void | clear_model_except_bundlevecs () |
clear all function evaluations and aggregates, but not the collected subspace information | |
void | clear_model (bool discard_minorants_only=false) |
clear the cutting model and all function evaluations | |
void | clear_aggregates () |
delete all kinds of aggregates but keep explicit parts of the cutting model | |
int | call_primal_extender (PrimalExtender &, bool include_candidates=true) |
see the last argument of FunctionOracle::evaluate() | |
int | apply_modification (const GroundsetModification &, MinorantExtender *mex) |
rearrange/extend the minorants according to the given groundset modifications | |
const PrimalData * | get_approximate_primal () const |
return the PrimalData corresponding to the aggregate | |
const PrimalData * | get_center_primal () const |
return the PrimalData corresponding to the aggregate | |
const PrimalData * | get_candidate_primal () const |
return the PrimalData delivered by the last call of FunctionOracle::evaluate() | |
![]() | |
BundleData () | |
calls clear() | |
BundleData * | clone () const |
return a pointer to a clone of this | |
virtual CH_Matrix_Classes::Integer | get_dim () const |
returns the observed dimension; intially this is negative until the first point is worked on | |
virtual FunctionTask | get_function_task () const |
the purpose or mode the function is used in, see FunctionTask | |
virtual CH_Matrix_Classes::Real | get_function_factor () const |
the factor by which the minorants (except for the aggregate) need to be multiplied in order to match the current function scaling | |
virtual CH_Matrix_Classes::Integer | get_modification_id () const |
the value is negative if not initialized and otherwise gives the number of modifications applied to the function | |
virtual CH_Matrix_Classes::Integer | get_center_modification_id () const |
the value is negative if not initialized and otherwise gives the number of modifications applied to the function | |
virtual CH_Matrix_Classes::Real | get_center_ub () const |
the value of the upper bound stored for center (without function_factor) if its modification id is up to date | |
virtual CH_Matrix_Classes::Integer | get_center_id () const |
the point id for which center was computed if its modification id is up to date | |
virtual CH_Matrix_Classes::Integer | get_cand_modification_id () const |
the value is negative if not initialized and otherwise gives the number of modifications applied to the function | |
virtual CH_Matrix_Classes::Real | get_cand_ub () const |
the value of the upper bound stored for the candidate (without function_factor) if its modification id is up to date | |
virtual CH_Matrix_Classes::Integer | get_cand_id () const |
the point id for which cand was computed if its modification id is up to date | |
const MinorantBundle & | get_old_minorants () const |
returns the bundle collected in store_old_minorants() | |
virtual bool | center_modified (CH_Matrix_Classes::Integer ¢er_ub_fid, CH_Matrix_Classes::Integer check_center_id) |
check whether center computation is still valid for this point and modification id | |
virtual bool | model_aggregate_modified (CH_Matrix_Classes::Integer model_aggregate_id) |
check whether aggregate is available and has the same id | |
virtual const SumBundle & | get_sumbundle () const |
return the sumbundle | |
virtual bool | get_local_model_active () const |
return the sumbundle | |
virtual CH_Matrix_Classes::Real | get_model_curvature () const |
return a rough curvature estimate to judge the relevance of providing a good model for this oracle | |
virtual int | get_latest_minorants (MinorantBundle &latest_minorants, CH_Matrix_Classes::Integer max_number) |
the latest minorants available; the number may fall below or exceed the one requested in request_n_latest_minorants(); the minorants still need to be mutliplied by function_factor | |
virtual int | get_model_data (MinorantBundle &model_minorants, CH_Matrix_Classes::Matrix &model_coeff) const |
the minorants currently used in the model; the list may be empty or max contain other minorants than returned in get_latest_minorants(); the minorants still need to be mutliplied by function_factor | |
virtual const MinorantPointer & | get_aggregate () const |
the aggregate minorant as currently in use in the bundle method; it already includes the function_factor | |
![]() | |
virtual | ~VariableMetricBundleData () |
virtual destructor | |
virtual const CH_Matrix_Classes::Symmatrix & | get_denseH () const |
allows to retrieve dense variable metric information stored here | |
virtual CH_Matrix_Classes::Symmatrix & | set_denseH () |
allows to retrieve the dense variable metric information generated in the previous call and allows to store the new one in the end | |
virtual const CH_Matrix_Classes::Matrix & | get_lowrankH () const |
allows to retrieve low rank variable metric information stored here | |
virtual CH_Matrix_Classes::Matrix & | set_lowrankH () |
allows to retrieve the low rank variable metric information generated in the previous call and allows to store the new one in the end | |
virtual const CH_Matrix_Classes::Matrix & | get_diagH () const |
allows to retrieve the diagonal variable metric information generated in the previous call and allows to store the new one in the end | |
virtual CH_Matrix_Classes::Matrix & | set_diagH () |
allows to retrieve the diagonal variable metric information generated in the previous call and allows to store the new one in the end | |
![]() | |
virtual void | set_out (std::ostream *out=0, int print_level=1) |
Specifies the output level (out==NULL: no output at all, out!=NULL and level=0: errors and warnings, level>0 increasingly detailed information) More... | |
virtual void | set_cbout (const CBout *cb, int incr=-1) |
Specifies the output level relative to the given CBout class. More... | |
void | clear_cbout () |
reset to default settings (out=0,print_level=1) | |
CBout (const CBout *cb=0, int incr=-1) | |
calls set_cbout | |
CBout (std::ostream *outp, int pl=1) | |
initialize correspondingly | |
CBout (const CBout &cb, int incr=0) | |
copy constructor | |
virtual bool | cb_out (int pl=-1) const |
Returns true if out!=0 and (pl<print_level), pl<0 should be used for WARNINGS and ERRORS only, pl==0 for usual output. | |
std::ostream & | get_out () const |
If cb_out() returned true, this returns the output stream, but it will abort if called with out==0. | |
std::ostream * | get_out_ptr () const |
returns the pointer to the output stream | |
int | get_print_level () const |
returns the print_level | |
virtual int | mfile_data (std::ostream &out) const |
writes problem data to the given outstream | |
Private Attributes | |
CH_Matrix_Classes::Real | center_Ritzval |
lower bound on the center value | |
CH_Matrix_Classes::Matrix | center_Ritzvec |
a Ritzvector generating center_Ritzval | |
MinorantPointer | center_minorant |
if not empty it matches center_Ritzvec | |
CH_Matrix_Classes::Matrix | cand_Ritzval |
Ritz values returned by the oracle. | |
CH_Matrix_Classes::Matrix | cand_Ritzvec |
the Ritzvectors generating cand_Ritzval | |
MinorantPointer | cand_minorant |
if not empty, it matches topvecs.col(0) (!) | |
CH_Matrix_Classes::Matrix | primaleigs |
eigs of eigval-decomposition of last eval_augmodel (if not empty, sum of this and aggrcoeffs is feasible for function_task) | |
CH_Matrix_Classes::Matrix | primalvecs |
vecs of eigval-decomposition of last eval_augmodel (always the same span as bundlevecs) | |
MinorantPointer | primal_aggregate |
for getting inside the semidifinite cone | |
CH_Matrix_Classes::Real | primal_aggregate_coeff |
coefficient determined in last eval_augmodel, maybe with some aggregated parts of primalvecs if not all were kept | |
CH_Matrix_Classes::Real | primal_Ritzval |
the (common) Ritz_value of the active subspace in primaleigs (= cutting model value) | |
CH_Matrix_Classes::Real | growthrate |
factor <X,Z>/<X^-,Z^->, where X^- and Z⁻- are the last but one iterates of the interior point method | |
CH_Matrix_Classes::Matrix | primalgrowth |
factor by which primaleigs changed in the last interior point iteration | |
CH_Matrix_Classes::Matrix | dualgrowth |
factor by which the dual Ritz values to primalvecs changed during the last interior point iteration | |
CH_Matrix_Classes::Matrix | bundlevecs |
the columns span the subspace of the semidefinte face (the bundle is initialized if bundlevecs.coldim()>0, then it must have rowdim>0!) | |
MinorantPointer | bundle_aggregate |
for getting inside the semidifinite cone | |
CH_Matrix_Classes::Matrix | topvecs |
orthonormal columns giving the largest Ritz_values; the range of this includes the range of bundlevecs | |
CH_Matrix_Classes::Matrix | Ritz_values |
of the vectors in topvecs and skippedvecs | |
CH_Matrix_Classes::Integer | activedim |
identified size of the active subspace | |
CH_Matrix_Classes::Integer | keepsize |
extended space dimension kept in bundlevecs | |
CH_Matrix_Classes::Integer | skippedsize |
number of columns in topvecs exceeding activedim | |
CH_Matrix_Classes::Real | scaling_gap |
Ritz threshold for consideration in scaling. | |
CH_Matrix_Classes::Real | center_gap |
the gap observed for the current center | |
Friends | |
class | PSCModel |
class | QPPSCOracleData |
Additional Inherited Members | |
![]() | |
virtual FunctionTask & | set_function_task () |
the purpose or mode the function is used in, see FunctionTask | |
virtual CH_Matrix_Classes::Real & | set_function_factor () |
the factor by which the minorants (except for the aggregate) need to be multiplied in order to match the current function scaling | |
virtual CH_Matrix_Classes::Integer & | set_center_ub_mid () |
the modification_id when center was computed; -1 indicates not initialized | |
virtual MinorantPointer & | set_aggregate () |
the aggregate minorant as currently in use in the bundle method; it already includes the function_factor | |
virtual CH_Matrix_Classes::Integer & | set_aggregate_id () |
the identification number of the aggregate minorant | |
virtual SumBundle & | set_sumbundle () |
return the sumbundle | |
virtual MinorantBundle & | set_old_minorants () |
return old_minorants | |
virtual CH_Matrix_Classes::Integer | get_prex_id () const |
for keeping track of changes by primal extenders | |
![]() | |
CH_Matrix_Classes::Integer | cand_ub_mid |
modification id for which cand_ub was computed, <0 if not initialized | |
CH_Matrix_Classes::Real | cand_ub |
upper bound on function value for modification id cand_mid and candidate with point id cand_id (does not include the effect of function_factor and function_task) | |
CH_Matrix_Classes::Real | cand_relprec |
relative precision used in computing cand_ub | |
CH_Matrix_Classes::Integer | cand_id |
point id of the stored candidate | |
MinorantPointer | local_aggregate |
the local (possibly empty) aggregate linear minorant of the model handled by this and its descendants. It includes function_factor and function_task, and comprises the local_model parts and the active sumbundle parts | |
extends BundleData for use with PSCModel (see there for the description of the function) by adding information on Ritz_vectors generating the subgradients and the cutting model
In difference to the original meaning of the variables in BundleData, the function value and the subgradient information is not stored explicitly, but instead the linear part and the Ritzvalue/Ritzvector information are stored so that function value and subgradient can be (re)computed upon need. In particular