IMP
2.0.0
The Integrative Modeling Platform
|
Hybrid Monte Carlo optimizer.
#include <IMP/isd/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 &) const |
Get the current energy. More... | |
virtual void | do_step () |
a class that inherits from this should override this method | |
Float | get_kinetic_energy () const |
MolecularDynamics * | get_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 |
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=nullptr) | |
double | get_best_accepted_energy () const |
double | get_last_accepted_energy () const |
double | get_maximum_difference () const |
void | set_maximum_difference (double d) |
void | set_return_best (bool tf) |
void | set_kt (Float t) |
Float | get_kt () const |
unsigned int | get_number_of_forward_steps () const |
Return how many times the optimizer has succeeded in taking a step. | |
unsigned int | get_number_of_upward_steps () const |
Return how many times the optimizer has stepped to higher energy. | |
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 () |
MonteCarloMover * | get_mover (unsigned int i) const |
MonteCarloMovers | get_movers () const |
void | reserve_movers (unsigned int sz) |
void | set_incremental_scoring_function (IncrementalScoringFunction *isf) |
bool | get_use_incremental_scoring_function () const |
IncrementalScoringFunction * | get_incremental_scoring_function () const |
Public Member Functions inherited from IMP::kernel::Optimizer | |
Optimizer (Model *m, std::string name="Optimizer %1%") | |
double | get_last_score () const |
Return the score found in the last evaluate. | |
Model * | get_model () const |
Get the model being optimized. | |
ScoringFunction * | get_scoring_function () const |
Return the scoring function that is being used. | |
bool | get_stop_on_good_score () const |
double | optimize (unsigned int max_steps) |
Optimize the model for up to max_steps iterations. More... | |
void | set_model (Model *m) |
Set the model being optimized. More... | |
virtual void | set_scoring_function (ScoringFunctionAdaptor sf) |
void | set_stop_on_good_score (bool tf) |
virtual void | show (std::ostream &out=std::cout) const |
Print info about the optimizer state. More... | |
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::base::Object | |
virtual void | clear_caches () |
virtual IMP::base::VersionInfo | get_version_info () const =0 |
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) |
Additional Inherited Members | |
Protected Member Functions inherited from IMP::core::MonteCarlo | |
bool | do_accept_or_reject_move (double score, double last, double proposal_ratio) |
bool | do_accept_or_reject_move (double score, double proposal_ratio) |
MonteCarloMoverResult | do_move () |
virtual Float | do_optimize (unsigned int max_steps) |
override this function to do actual optimization | |
ParticleIndexes | get_movable_particles () const |
Related Functions inherited from IMP::kernel::Optimizer | |
typedef IMP::base::Vector < IMP::base::WeakPointer < Optimizer > > | OptimizersTemp |
Definition at line 21 of file HybridMonteCarlo.h.
|
virtual |
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.
Definition at line 51 of file HybridMonteCarlo.h.