ConicBundle
|
default model selection routine for PSCModel More...
#include <PSCModelParameters.hxx>
Public Member Functions | |
PSCModelParameters (const CBout *cb=0, int incr=-1) | |
default constructor with the possibility to set the output | |
PSCModelParameters (int modelsize, int bundlesize=10, int updaterule=0, const CBout *cb=0, int incr=-1) | |
constructor for size parameters | |
PSCModelParameters (const BundleParameters &bp, const CBout *cb=0, int incr=-1) | |
copy constructor for BundleParameters | |
PSCModelParameters (const PSCModelParameters &sms) | |
copy constructor | |
virtual | ~PSCModelParameters () |
destructor | |
BundleParameters * | clone_BundleParameters () const |
clone | |
virtual int | select_model (CH_Matrix_Classes::Matrix &modelvecs, MinorantPointer &model_aggregate, CH_Matrix_Classes::Matrix &topvecs, CH_Matrix_Classes::Matrix &Ritz_values, CH_Matrix_Classes::Integer &activedim, CH_Matrix_Classes::Integer &keepsize, CH_Matrix_Classes::Integer &skippedsize, const CH_Matrix_Classes::Real primal_Ritzval, const CH_Matrix_Classes::Matrix &primaleigs, const CH_Matrix_Classes::Matrix &primalvecs, const MinorantPointer &primal_aggregate, CH_Matrix_Classes::Real primal_aggregate_coeff, CH_Matrix_Classes::Real growthrate, const CH_Matrix_Classes::Matrix &primalgrowth, const CH_Matrix_Classes::Matrix &dualgrowth, const CH_Matrix_Classes::Matrix &cand_Ritzvec, const CH_Matrix_Classes::Matrix &cand_Ritzval, PSCOracle *oracle, CH_Matrix_Classes::Integer modification_id, FunctionTask function_task, CH_Matrix_Classes::Real function_factor, BundleModel::ModelUpdate model_update, CH_Matrix_Classes::Integer center_id, const CH_Matrix_Classes::Matrix ¢er_y, CH_Matrix_Classes::Integer cand_id, const CH_Matrix_Classes::Matrix &cand_y, CH_Matrix_Classes::Real model_maxviol, CH_Matrix_Classes::Real diffval_center_aggregate, BundleProxObject &H) |
PSCModel calls this for selecting the next positive semidefinite model. More... | |
Public Member Functions inherited from ConicBundle::PSCModelParametersObject | |
int | init (const BundleParameters &bp) |
initialize BundleParameters to given values, if bp is a SumModleParametersObject alos set n_local_models to its values, otherwise leave it unchanged | |
PSCModelParametersObject (const CBout *cb=0, int cbinc=-1) | |
default constructor | |
PSCModelParametersObject (const BundleParameters &bp, const CBout *cb=0, int cbinc=-1) | |
copy constructor for BundleParameters | |
PSCModelParametersObject (const PSCModelParametersObject &sms) | |
copy constructor | |
virtual | ~PSCModelParametersObject () |
virtual destructor, implemented in PSCModelParameters.cxx | |
int | get_minorant (MinorantPointer &mp, CH_Matrix_Classes::Real &mp_coeff, const CH_Matrix_Classes::Matrix &P, const CH_Matrix_Classes::Matrix &d, PSCOracle *oracle, CH_Matrix_Classes::Integer modification_id) |
Compute the aggregate minornat corresponding to the matrix P*Diag(d)*P'/sum(d) for the given oracle and aggregate it to (or, if empty or mp_coeff=0., store it in) mp; P has orthonormal columns and d is a nonengative vector of appropriate size. | |
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 | |
Public Member Functions inherited from ConicBundle::BundleParameters | |
virtual int | get_max_model_size () const |
returns the value of the variable | |
virtual int | get_max_bundle_size () const |
returns the value of the variable | |
virtual int | get_update_rule () const |
returns the value of the variable | |
virtual int | set_max_model_size (int mms) |
sets the value of the variable | |
virtual int | set_max_bundle_size (int mbs) |
sets the value of the variable | |
virtual int | set_update_rule (int ur) |
sets the value of the variable | |
BundleParameters (const BundleParameters &bp) | |
often works well: small model of size 2 and some history in bundle size for use in scaling | |
BundleParameters (int modelsize=-1, int bundlesize=-1, int updaterule=-1) | |
often works well for fast initial progress: small model of size 2 and some history in bundle size for use in scaling; default values give no preference at all | |
virtual | ~BundleParameters () |
virtual destructor | |
Private Attributes | |
CH_Matrix_Classes::Real | cutoffval |
an averaged bound on Ritzvalues for being included in the model | |
CH_Matrix_Classes::Real | gapsz |
a weighted average of the gaps between maximum Ritz_value and the Ritz_value of the largest active index | |
CH_Matrix_Classes::Real | Ritz_skipval |
a weighted average for Ritz_values to be discarded | |
CH_Matrix_Classes::Integer | n_nullsteps |
counts the number of null steps since last descent step | |
Additional Inherited Members | |
Protected Attributes inherited from ConicBundle::BundleParameters | |
int | max_model_size |
maximum number of minorants to be selected for the cutting model (numbers<=1 for no limit, numbers >=2 impose a strict limit) | |
int | max_bundle_size |
suggested maximum number of latest minorants stored for use in a model, for constructing variable metric information etc. (negative numbers give no preference; the size may be increased internally in case of confliciting requirements, eg. in n_model_size or by variable metric routines) | |
int | update_rule |
in case several update rules are available | |
default model selection routine for PSCModel
The current routine is quite advanced and stable for a reasonalby wide range of applications. It clearly favors stability and precision over fast initial convergence. It ignores all parameter settings and picks its own sizes.
PSCModel calls this for selecting the next positive semidefinite model.
[in,out] | modelvecs | on input: orthonormal basis of the subspace used in the last semidefinite model on output: orthonormal subspace basis to be used in the next semidefinite model, it includes the subspace of the primalvecs of the keepsize largest primaleigs. In particular for null steps the remaining columns of primalvecs with nonzero primaleigs have to be included with the current aggregate in a new aggregate of the model; this will be taken care of outside this routine aftwards |
[in,out] | model_aggregate | (MinorantPointer) aggregate in use in the last and then the next model. |
[in,out] | topvecs | on input: orthonormal basis of the collected subspace that is supposed to approximate the eigenspace to the largest eigenvalues, see Ritz_values on output: same thing but maybe reduced in size |
[in,out] | Ritz_values | on input: Ritz_values in cand_y for the vectors in topvecs on output: same thing but maybe reduced in size as in topvecs |
[in,out] | activedim | on input: the dimension of the subspace (first columns in topvecs) regarded as active in the last iterations of the bundle subproblem solution on output: the dimension of the subspace (first columns of topvecs) regarded as (maybe weakly) active now (typically it will increase during null steps and may be tightened at descent steps) |
[out] | keepsize | columns 0..keepsize-1 of primalvecs (corresponding to the keepsize largest primaleigs) are included in modelvecs. The remaining columns need to be aggregated afterwards into the aggregate of the model |
[out] | skippedsize | columns activedim..activedim+skippedsize-1 of topvecs should be used for setting up the scaling matrix after descent steps. |
[in] | primal_Ritzval | the (common) Ritz value of the active subspace of the model (if not available use some guess like Ritz_values(0)) |
[in] | primaleigs | eigenvalues of the last primal semdifinite model matrix (sorted nonincreasingly) |
[in] | primalvecs | corresponding (orthonormal) eigenvectors to primaleigs |
[in] | primal_aggregate | (MinorantPointer) aggregate in use in the last model. |
[in] | primal_aggregate_coeff | coefficient on how strongly the aggregated was used in the last primal solution to the model |
[in] | growthrate | (Real) factor <X,Z>/<X^-,Z^->, where X^- and Z⁻- are the last but one iterates of the interior point method |
[in] | primalgrowth | (Matrix) factor by which primaleigs changed in the last interior point iteration |
[in] | dualgrowth | (Matrix) factor by which the dual Ritz values to primalvecs changed during the last interior point iteration |
[in] | cand_Ritzvec | (const Matrix&) the (orthonormal) vectors returned by the evaluation call to the oracle |
[in] | cand_Ritzval | (const Matrix&) the Ritz values of cand_Ritzvec returned by the evaluation call to the oracle |
[in] | oracle | gives access to the evaluation oracle |
[in] | modification_id | the identifier for the current version of the function accounting for dynamic modifications |
[in] | function_task | see FunctionTask |
[in] | function_factor | interpreted according to function_task and the coefficients sum up to at most this value |
[in] | model_update | informs about whether cand_y is the result of a null_step or descent_step or a new set up. |
[in] | center_id | the identifier of the center point |
[in] | center_y | the center point |
[in] | cand_id | the identifier of the candidate point |
[in] | cand_y | the candidate (mostly differnt from the center), close to it the model should be good |
[in] | model_maxviol | a minorant violated by this would have caused a null step |
[in] | diffval_center_aggregate | difference of center value to aggregate value (nonnegative, without function_factor) |
[in] | H | the variable metric used in the proximal term (function_factor is already removed in this) |
Implements ConicBundle::PSCModelParametersObject.
Referenced by clone_BundleParameters().