This sampler randomizes the conformation and then uses Monte Carlo and conjugate gradient steps to search for good solutions. Each Monte Carlo move is followed by the specified number of conjugate gradient steps before it is decided whether to accept or reject the move.
At the moment it only support optimization of Cartesian coordinates, but this will be fixed when people ask for it (and they already have :-). We are also open to supporting a wider variety of optimization protocols (eg only do conjugate gradient steps occasionally).
Public Member Functions | |
virtual std::string | get_type_name () const |
virtual ::IMP::VersionInfo | get_version_info () const |
MCCGSampler (Model *m) | |
void | set_bounding_box (const algebra::BoundingBoxD< 3 > &bb) |
Set the bounding box for randomizing the Cartesian coordinates. | |
void | set_max_monte_carlo_step_size (FloatKey k, double d) |
Set the maximum size of the MC step for an attribute. | |
void | set_max_monte_carlo_step_size (double d) |
Set the maximum size of the MC step for all attributes. | |
void | set_number_of_attempts (unsigned int att) |
Set the maximum number of attempts to find a solution. | |
void | set_number_of_conjugate_gradient_steps (unsigned int cg) |
Set the number of CG steps to take after each MC step. | |
void | set_number_of_monte_carlo_steps (unsigned int cg) |
Set the number of MC steps to take in each optimization run. | |
Protected Member Functions | |
ConfigurationSet * | do_sample () const |
Friends | |
template<class T > | |
void | IMP::internal::unref (T *) |
void IMP::core::MCCGSampler::set_max_monte_carlo_step_size | ( | FloatKey | k, | |
double | d | |||
) |
Set the maximum size of the MC step for an attribute.
As was mentioned, at the moment k can be one of x,y or z.