|
IMP
2.0.0
The Integrative Modeling Platform
|
Hybrid Monte Carlo optimizer.
#include <IMP/isd/HybridMonteCarlo.h>
Inheritance diagram for IMP::isd::HybridMonteCarlo: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.
Here is the call graph for this function: