IMP Reference Guide
2.7.0
The Integrative Modeling Platform
|
Simple conjugate gradients optimizer. More...
#include <IMP/core/ConjugateGradients.h>
Simple conjugate gradients optimizer.
Algorithm is as per Shanno and Phua, ACM Transactions On Mathematical Software 6 (December 1980), 618-622
Conjugate gradients optimization is sensitive to the scales of the derivatives of the various attributes being optimized. By default, the scales are estimated from the range of values found for the attribute upon initialization. These estimates can be viewed either by calling Model::get_range(my_float_key) or by turning on TERSE logging and looking at logged messages. If this estimate does not accurately reflect the scale, then you can use Model::set_range to set a more accurate range for the parameters.
Definition at line 34 of file core/ConjugateGradients.h.
Public Member Functions | |
ConjugateGradients (Model *m, std::string name="ConjugateGradients%1%") | |
virtual Float | do_optimize (unsigned int max_steps) |
override this function to do actual optimization More... | |
virtual std::string | get_type_name () const |
virtual ::IMP::VersionInfo | get_version_info () const |
Get information about the module and version of the object. More... | |
void | set_gradient_threshold (Float t) |
Set the threshold for the minimum gradient. More... | |
void | set_max_change (Float t) |
Limit how far anything can change each time step. More... | |
Public Member Functions inherited from IMP::AttributeOptimizer | |
AttributeOptimizer (Model *m, std::string name="Optimizer %1%") | |
Public Member Functions inherited from IMP::Optimizer | |
Optimizer (Model *m, std::string name="Optimizer %1%") | |
double | get_last_score () const |
Return the score found in the last evaluate. More... | |
ScoringFunction * | get_scoring_function () const |
Return the scoring function that is being used. More... | |
bool | get_stop_on_good_score () const |
double | optimize (unsigned int max_steps) |
Optimize the model for up to max_steps iterations. More... | |
virtual void | set_scoring_function (ScoringFunctionAdaptor sf) |
Set the scoring function to use. More... | |
void | set_stop_on_good_score (bool tf) |
void | remove_optimizer_state (OptimizerState *d) |
void | remove_optimizer_states (const OptimizerStates &d) |
void | set_optimizer_states (const OptimizerStates &ps) |
void | set_optimizer_states_order (const OptimizerStates &objs) |
unsigned int | add_optimizer_state (OptimizerState *obj) |
void | add_optimizer_states (const OptimizerStates &objs) |
void | clear_optimizer_states () |
unsigned int | get_number_of_optimizer_states () const |
bool | get_has_optimizer_states () |
OptimizerState * | get_optimizer_state (unsigned int i) const |
OptimizerStates | get_optimizer_states () const |
void | reserve_optimizer_states (unsigned int sz) |
Public Member Functions inherited from IMP::ModelObject | |
ModelObject (Model *m, std::string name) | |
bool | get_has_dependencies () const |
Return whether this object has dependencies computed. More... | |
bool | get_has_required_score_states () const |
Return whether score states are computed. More... | |
ModelObjectsTemp | get_inputs () const |
ModelObjectsTemps | get_interactions () const |
Get the interacting sets induced by this ModelObject. More... | |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_required_score_states () const |
Get the score states that are ancestors of this in the dependency graph. More... | |
void | set_has_dependencies (bool tf) |
Either invalidate the dependencies or ensure they are correct. More... | |
void | set_has_required_score_states (bool tf) |
Compute the required score states. More... | |
Public Member Functions inherited from IMP::Object | |
virtual void | clear_caches () |
CheckLevel | get_check_level () const |
LogLevel | get_log_level () const |
void | set_check_level (CheckLevel l) |
void | set_log_level (LogLevel l) |
Set the logging level used in this object. More... | |
void | set_was_used (bool tf) const |
void | show (std::ostream &out=std::cout) const |
const std::string & | get_name () const |
void | set_name (std::string name) |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::AttributeOptimizer | |
double | get_width (FloatKey k) const |
FloatIndexes | get_optimized_attributes () const |
void | set_value (FloatIndex fi, double v) const |
Float | get_value (FloatIndex fi) const |
Float | get_derivative (FloatIndex fi) const |
void | set_scaled_value (FloatIndex fi, Float v) const |
double | get_scaled_value (FloatIndex fi) const |
double | get_scaled_derivative (FloatIndex fi) const |
void | clear_range_cache () |
Clear the cache of range information. Do this at the start of. More... | |
Protected Member Functions inherited from IMP::Optimizer | |
virtual ModelObjectsTemp | do_get_inputs () const |
virtual ModelObjectsTemp | do_get_outputs () const |
don't return anything here to avoid pointless dependencies More... | |
ModelObjectsTemp | get_optimizer_state_inputs () const |
void | update_states () const |
Update optimizer states, should be called at each successful step. More... | |
Protected Member Functions inherited from IMP::ModelObject | |
virtual ModelObjectsTemps | do_get_interactions () const |
virtual void | handle_set_has_required_score_states (bool) |
Protected Member Functions inherited from IMP::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
virtual void | do_destroy () |
|
virtual |
override this function to do actual optimization
Implements IMP::Optimizer.
|
virtual |
Get information about the module and version of the object.
Reimplemented from IMP::Object.
Definition at line 50 of file core/ConjugateGradients.h.
void IMP::core::ConjugateGradients::set_gradient_threshold | ( | Float | t | ) |
Set the threshold for the minimum gradient.
Definition at line 40 of file core/ConjugateGradients.h.
void IMP::core::ConjugateGradients::set_max_change | ( | Float | t | ) |
Limit how far anything can change each time step.
Definition at line 47 of file core/ConjugateGradients.h.