IMP logo
IMP Reference Guide  develop.7cb8855c60,2024/10/08
The Integrative Modeling Platform
IMP::isd::HybridMonteCarlo Class Reference

Hybrid Monte Carlo optimizer. More...

#include <IMP/isd/HybridMonteCarlo.h>

+ Inheritance diagram for IMP::isd::HybridMonteCarlo:

Detailed Description

Hybrid Monte Carlo optimizer.

Definition at line 23 of file HybridMonteCarlo.h.

Public Member Functions

 HybridMonteCarlo (Model *m, Float kT=1.0, unsigned steps=100, Float timestep=1.0, unsigned persistence=1)
 
double do_evaluate (const ParticleIndexes &, bool) const override
 Get the current energy. More...
 
virtual void do_step () override
 a class that inherits from this should override this method More...
 
Float get_kinetic_energy () const
 
MolecularDynamicsget_md () const
 
unsigned get_number_of_md_steps () const
 
unsigned get_persistence () const
 
Float get_potential_energy () const
 
double get_timestep () const
 
Float get_total_energy () const
 
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_number_of_md_steps (unsigned nsteps)
 
void set_persistence (unsigned persistence=1)
 
void set_timestep (Float ts)
 
- Public Member Functions inherited from IMP::core::MonteCarlo
 MonteCarlo (Model *m)
 
double get_best_accepted_energy () const
 If return best is on, returns the best energy found so far. More...
 
double get_last_accepted_energy () const
 Return the energy of the last accepted state. More...
 
double get_maximum_difference () const
 
double get_score_threshold () const
 Get the score threshold. More...
 
void set_maximum_difference (double d)
 
void set_return_best (bool tf)
 
void set_score_moved (bool mv)
 If set true (default false), only rescore moved particles. More...
 
void set_score_threshold (double s)
 Set the score threshold. More...
 
void set_kt (Float t)
 
Float get_kt () const
 
unsigned int get_number_of_downward_steps () const
 Return how many times the optimizer has stepped to lower score. More...
 
unsigned int get_number_of_upward_steps () const
 Return how many times the optimizer has stepped to higher score. More...
 
unsigned int get_number_of_proposed_steps () const
 Get number of proposed moves. More...
 
unsigned int get_number_of_accepted_steps () const
 Get number of accepted moves. More...
 
void reset_statistics ()
 
void remove_mover (MonteCarloMover *d)
 
void remove_movers (const MonteCarloMovers &d)
 
void set_movers (const MonteCarloMovers &ps)
 
void set_movers_order (const MonteCarloMovers &objs)
 
unsigned int add_mover (MonteCarloMover *obj)
 
void add_movers (const MonteCarloMovers &objs)
 
void clear_movers ()
 
unsigned int get_number_of_movers () const
 
bool get_has_movers ()
 
MonteCarloMoverget_mover (unsigned int i) const
 
MonteCarloMovers get_movers () const
 
void erase_mover (unsigned int i)
 
void reserve_movers (unsigned int sz)
 
- 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...
 
ScoringFunctionget_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 ()
 
OptimizerStateget_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...
 
Modelget_model () const
 
ModelObjectsTemp get_outputs () const
 
const ScoreStatesTempget_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::core::MonteCarlo
list movers
 A Python list of Movers More...
 
- Public Attributes inherited from IMP::Optimizer
list optimizer_states
 A Python list of OptimizerStates More...
 
- Protected Member Functions inherited from IMP::core::MonteCarlo
bool do_accept_or_reject_move (double score, double last, const MonteCarloMoverResult &moved)
 
bool do_accept_or_reject_move (double score, const MonteCarloMoverResult &moved)
 
MonteCarloMoverResult do_move ()
 
virtual Float do_optimize (unsigned int max_steps) override
 override this function to do actual optimization More...
 
ParticleIndexes get_movable_particles () const
 
- 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 ()
 
- Protected Attributes inherited from IMP::core::MonteCarlo
ParticleIndexes reset_pis_
 

Member Function Documentation

double IMP::isd::HybridMonteCarlo::do_evaluate ( const ParticleIndexes moved,
bool  force_full_score 
) const
overridevirtual

Get the current energy.

By default it just calls Optimizer::get_scoring_function()->evaluate(false). However, if an incremental scoring function is used, the list of moved particles will be used to evaluate the score more efficiently. Also, if there is a maximum allowed difference in scores Optimizer::get_scoring_function()->evaluate_if_below() will be called instead, allowing more efficient evaluation. Classes which override this method should be similarly aware for efficiency.

The list of moved particles is passed.

Reimplemented from IMP::core::MonteCarlo.

virtual void IMP::isd::HybridMonteCarlo::do_step ( )
overridevirtual

a class that inherits from this should override this method

Reimplemented from IMP::core::MonteCarlo.

virtual ::IMP::VersionInfo IMP::isd::HybridMonteCarlo::get_version_info ( ) const
overridevirtual

Get information about the module and version of the object.

Reimplemented from IMP::core::MonteCarlo.

Definition at line 55 of file HybridMonteCarlo.h.


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