IMP
2.1.1
The Integrative Modeling Platform
|
Base class for all optimizers. More...
#include <IMP/kernel/Optimizer.h>
Public Member Functions | |
Optimizer (kernel::Model *m, std::string name="Optimizer %1%") | |
Optimizer () | |
void | clear_range_cache () |
Float | get_derivative (FloatIndex fi) const |
double | get_last_score () const |
Return the score found in the last evaluate. | |
FloatIndexes | get_optimized_attributes () const |
Restraints | get_restraints () const |
double | get_scaled_derivative (FloatIndex fi) const |
double | get_scaled_value (FloatIndex fi) const |
double | get_score_threshold () const |
ScoringFunction * | get_scoring_function () const |
Return the scoring function that is being used. | |
bool | get_stop_on_good_score () const |
Float | get_value (FloatIndex fi) const |
double | get_width (FloatKey k) const |
double | optimize (unsigned int max_steps) |
Optimize the model for up to max_steps iterations. More... | |
void | set_restraints (const RestraintsTemp &rs) |
void | set_scaled_value (FloatIndex fi, Float v) const |
void | set_score_threshold (double s) |
virtual void | set_scoring_function (ScoringFunctionAdaptor sf) |
void | set_stop_on_good_score (bool tf) |
void | set_value (FloatIndex fi, double v) const |
double | width (FloatKey k) const |
Public Member Functions inherited from IMP::kernel::ModelObject | |
ModelObject (kernel::Model *m, std::string name) | |
ModelObject (std::string name) | |
bool | get_has_dependencies () const |
Return whether this object has dependencies computed. | |
bool | get_has_required_score_states () const |
ModelObjectsTemp | get_inputs () const |
ModelObjectsTemps | get_interactions () const |
bool | get_is_part_of_model () const |
Model * | get_model () const |
ModelObjectsTemp | get_outputs () const |
const ScoreStatesTemp & | get_required_score_states () const |
void | set_has_dependencies (bool tf) |
void | set_has_required_score_states (bool tf) |
virtual void | set_model (kernel::Model *m) |
Public Member Functions inherited from IMP::base::Object | |
virtual void | clear_caches () |
virtual void | do_destroy () |
CheckLevel | get_check_level () const |
LogLevel | get_log_level () const |
virtual VersionInfo | get_version_info () const |
Get information about the module and version of the object. | |
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) |
virtual std::string | get_type_name () const |
Protected Member Functions | |
virtual ModelObjectsTemp | do_get_inputs () const |
virtual ModelObjectsTemp | do_get_outputs () const |
don't return anything here to avoid pointless dependencies | |
virtual double | do_optimize (unsigned int ns)=0 |
override this function to do actual optimization | |
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::kernel::ModelObject | |
virtual ModelObjectsTemps | do_get_interactions () const |
virtual void | handle_set_has_required_score_states (bool) |
Protected Member Functions inherited from IMP::base::Object | |
Object (std::string name) | |
Construct an object with the given name. More... | |
Object () | |
States | |
The stored OptimizerState objects are updated each time the Optimizer decides to accept a new configuration of the Model. To manipulate the list of optimizer states use the methods below. | |
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) |
An optimizer attempts to improve the current configuration of the Model by moving particles around so as to lower the score.
The Optimizer maintains a list of OptimizerStates which are updated each time the conformation is changed.
The optimizers have one key method Optimizer::optimize() which takes the number of steps to perform. The optimizers can have other stopping conditions as appropriate.
A typical optimization loop proceeds by:
Definition at line 44 of file kernel/Optimizer.h.
IMP::kernel::Optimizer::Optimizer | ( | ) |
void IMP::kernel::Optimizer::clear_range_cache | ( | ) |
|
protectedvirtual |
Get any Particle, Container or other ModelObjects read by this during evaluation. If you read everything in a container, you can just return that container.
Implements IMP::kernel::ModelObject.
Definition at line 60 of file kernel/Optimizer.h.
Float IMP::kernel::Optimizer::get_derivative | ( | FloatIndex | fi | ) | const |
FloatIndexes IMP::kernel::Optimizer::get_optimized_attributes | ( | ) | const |
Restraints IMP::kernel::Optimizer::get_restraints | ( | ) | const |
double IMP::kernel::Optimizer::get_scaled_derivative | ( | FloatIndex | fi | ) | const |
double IMP::kernel::Optimizer::get_scaled_value | ( | FloatIndex | fi | ) | const |
double IMP::kernel::Optimizer::get_score_threshold | ( | ) | const |
Float IMP::kernel::Optimizer::get_value | ( | FloatIndex | fi | ) | const |
double IMP::kernel::Optimizer::get_width | ( | FloatKey | k | ) | const |
double IMP::kernel::Optimizer::optimize | ( | unsigned int | max_steps | ) |
Optimize the model
[in] | max_steps | The maximum number of iterations of the optimizer to perform. Increasing this number will generally make the optimizer spend more time searching for a solution, but beyond that, the details of what changes will vary. |
void IMP::kernel::Optimizer::set_restraints | ( | const RestraintsTemp & | rs | ) |
void IMP::kernel::Optimizer::set_scaled_value | ( | FloatIndex | fi, |
Float | v | ||
) | const |
void IMP::kernel::Optimizer::set_score_threshold | ( | double | s | ) |
|
virtual |
By default, the Optimizer uses the scoring function provided by the model, but you can use another scoring function instead.
void IMP::kernel::Optimizer::set_stop_on_good_score | ( | bool | tf | ) |
Optimization can be stopped if all the thresholds in the Model are satisfied.
Definition at line 83 of file kernel/Optimizer.h.
void IMP::kernel::Optimizer::set_value | ( | FloatIndex | fi, |
double | v | ||
) | const |
|
protected |
Make sure the scoring function restraints are up to date before this is called (eg by calling evaluate).
double IMP::kernel::Optimizer::width | ( | FloatKey | k | ) | const |