ConicBundle
Public Member Functions | Private Attributes | Friends | List of all members

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>

Inheritance diagram for ConicBundle::PSCData:
ConicBundle::BundleData ConicBundle::VariableMetricBundleData ConicBundle::CBout

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::Matrixget_primalvecs () const
 returns primalvecs
 
const CH_Matrix_Classes::Matrixget_primaleigs () const
 returns primaleigs
 
const CH_Matrix_Classes::Matrixget_topvecs () const
 returns topvecs
 
const CH_Matrix_Classes::Matrixget_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
 
BundleDataclone () 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 PrimalDataget_approximate_primal () const
 return the PrimalData corresponding to the aggregate
 
const PrimalDataget_center_primal () const
 return the PrimalData corresponding to the aggregate
 
const PrimalDataget_candidate_primal () const
 return the PrimalData delivered by the last call of FunctionOracle::evaluate()
 
- Public Member Functions inherited from ConicBundle::BundleData
 BundleData ()
 calls clear()
 
BundleDataclone () 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 MinorantBundleget_old_minorants () const
 returns the bundle collected in store_old_minorants()
 
virtual bool center_modified (CH_Matrix_Classes::Integer &center_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 SumBundleget_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 MinorantPointerget_aggregate () const
 the aggregate minorant as currently in use in the bundle method; it already includes the function_factor
 
- Public Member Functions inherited from ConicBundle::VariableMetricBundleData
virtual ~VariableMetricBundleData ()
 virtual destructor
 
virtual const CH_Matrix_Classes::Symmatrixget_denseH () const
 allows to retrieve dense variable metric information stored here
 
virtual CH_Matrix_Classes::Symmatrixset_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::Matrixget_lowrankH () const
 allows to retrieve low rank variable metric information stored here
 
virtual CH_Matrix_Classes::Matrixset_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::Matrixget_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::Matrixset_diagH ()
 allows to retrieve the diagonal variable metric information generated in the previous call and allows to store the new one in the end
 
- Public Member Functions inherited from ConicBundle::CBout
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

- Protected Member Functions inherited from ConicBundle::BundleData
virtual FunctionTaskset_function_task ()
 the purpose or mode the function is used in, see FunctionTask
 
virtual CH_Matrix_Classes::Realset_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::Integerset_center_ub_mid ()
 the modification_id when center was computed; -1 indicates not initialized
 
virtual MinorantPointerset_aggregate ()
 the aggregate minorant as currently in use in the bundle method; it already includes the function_factor
 
virtual CH_Matrix_Classes::Integerset_aggregate_id ()
 the identification number of the aggregate minorant
 
virtual SumBundleset_sumbundle ()
 return the sumbundle
 
virtual MinorantBundleset_old_minorants ()
 return old_minorants
 
virtual CH_Matrix_Classes::Integer get_prex_id () const
 for keeping track of changes by primal extenders
 
- Protected Attributes inherited from ConicBundle::BundleData
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
 

Detailed Description

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


The documentation for this class was generated from the following file: