IMP Reference Guide
develop.63b38c487d,2024/12/21
The Integrative Modeling Platform
|
A simple steepest descent optimizer. More...
#include <IMP/core/SteepestDescent.h>
A simple steepest descent optimizer.
Follow the gradient based on the partial derivatives. Multiply by the current step size. If the score gets worse, reduce the step size. If the score gets better, increase the step size if we are sufficiently far from a score of zero. If the score reaches the threshold, quit.
Definition at line 23 of file SteepestDescent.h.
Public Member Functions | |
SteepestDescent (Model *m, std::string name="SteepestDescent%1%") | |
virtual Float | do_optimize (unsigned int max_steps) override |
override this function to do actual optimization More... | |
virtual std::string | get_type_name () const override |
virtual ::IMP::VersionInfo | get_version_info () const override |
Get information about the module and version of the object. More... | |
void | set_maximum_step_size (Float t) |
The maximum step size. More... | |
void | set_step_size (Float t) |
The starting step size. More... | |
void | set_threshold (Float t) |
Set the minimum gradient threshold. 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 | erase_optimizer_state (unsigned int i) |
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 | |
Public Attributes inherited from IMP::Optimizer | |
list | optimizer_states |
A Python list of OptimizerStates More... | |
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 override |
virtual ModelObjectsTemp | do_get_outputs () const override |
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 () |
|
overridevirtual |
override this function to do actual optimization
Implements IMP::Optimizer.
|
overridevirtual |
Get information about the module and version of the object.
Reimplemented from IMP::Object.
Definition at line 28 of file SteepestDescent.h.
void IMP::core::SteepestDescent::set_maximum_step_size | ( | Float | t | ) |
The maximum step size.
Definition at line 35 of file SteepestDescent.h.
void IMP::core::SteepestDescent::set_step_size | ( | Float | t | ) |
The starting step size.
Definition at line 33 of file SteepestDescent.h.
void IMP::core::SteepestDescent::set_threshold | ( | Float | t | ) |
Set the minimum gradient threshold.
Definition at line 31 of file SteepestDescent.h.