IMP  2.1.0
The Integrative Modeling Platform
IMP::kernel::Optimizer Class Referenceabstract

Base class for all optimizers. More...

#include <IMP/kernel/Optimizer.h>

+ Inheritance diagram for IMP::kernel::Optimizer:

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
 
ScoringFunctionget_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
 
Modelget_model () const
 
ModelObjectsTemp get_outputs () const
 
const ScoreStatesTempget_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 ()
 
OptimizerStateget_optimizer_state (unsigned int i) const
 
OptimizerStates get_optimizer_states () const
 
void reserve_optimizer_states (unsigned int sz)
 

Detailed Description

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:

  • the optimizer calls Model::evaluate() to compute the score (and possibly the derivatives) of the current conformation of the Model.
  • the optimizer uses this information to update the optimizeable parameters of the Particles contained in the Model.

Definition at line 44 of file kernel/Optimizer.h.

Constructor & Destructor Documentation

IMP::kernel::Optimizer::Optimizer ( )
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use the constructor with a Model and a name.

Member Function Documentation

void IMP::kernel::Optimizer::clear_range_cache ( )
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
virtual ModelObjectsTemp IMP::kernel::Optimizer::do_get_inputs ( ) const
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
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
FloatIndexes IMP::kernel::Optimizer::get_optimized_attributes ( ) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
Restraints IMP::kernel::Optimizer::get_restraints ( ) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use Optimizer::get_scoring_function() instead.
double IMP::kernel::Optimizer::get_scaled_derivative ( FloatIndex  fi) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
double IMP::kernel::Optimizer::get_scaled_value ( FloatIndex  fi) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
double IMP::kernel::Optimizer::get_score_threshold ( ) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Do not use as it is not reliably supported.
Float IMP::kernel::Optimizer::get_value ( FloatIndex  fi) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
double IMP::kernel::Optimizer::get_width ( FloatKey  k) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
double IMP::kernel::Optimizer::optimize ( unsigned int  max_steps)

Optimize the model

Parameters
[in]max_stepsThe 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.
Returns
The final score.
void IMP::kernel::Optimizer::set_restraints ( const RestraintsTemp rs)
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use set_scoring_function() instead.
void IMP::kernel::Optimizer::set_scaled_value ( FloatIndex  fi,
Float  v 
) const
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
void IMP::kernel::Optimizer::set_score_threshold ( double  s)
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Do not use as it is not reliably supported.
virtual void IMP::kernel::Optimizer::set_scoring_function ( ScoringFunctionAdaptor  sf)
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
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.
void IMP::kernel::Optimizer::update_states ( ) 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
Deprecated:
As of IMP release 2.1. See the IMP Deprecation Policy for more information about deprecation in IMP. Use AttributeOptimizer instead.

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