IMP  2.3.0
The Integrative Modeling Platform
IMP::core::ConjugateGradients Class Reference

Simple conjugate gradients optimizer. More...

#include <IMP/core/ConjugateGradients.h>

Inherits AttributeOptimizer.

Detailed Description

Simple conjugate gradients optimizer.

Algorithm is as per Shanno and Phua, ACM Transactions On Mathematical Software 6 (December 1980), 618-622

Conjugate gradients optimization is sensitive to the scales of the derivatives of the various attributes being optimized. By default, the scales are estimated from the range of values found for the attribute upon initialization. These estimates can be viewed either by calling kernel::Model::get_range(my_float_key) or by turning on TERSE logging and looking at logged messages. If this estimate does not accurately reflect the scale, then you can use kernel::Model::set_range to set a more accurate range for the parameters.

Definition at line 33 of file core/ConjugateGradients.h.

Public Member Functions

 ConjugateGradients (kernel::Model *m, std::string name="ConjugateGradients%1%")
 
virtual Float do_optimize (unsigned int max_steps)
 
virtual std::string get_type_name () const
 
virtual ::IMP::base::VersionInfo get_version_info () const
 
void set_gradient_threshold (Float t)
 Set the threshold for the minimum gradient. More...
 
void set_max_change (Float t)
 Limit how far anything can change each time step. More...
 

Member Function Documentation

void IMP::core::ConjugateGradients::set_gradient_threshold ( Float  t)

Set the threshold for the minimum gradient.

Definition at line 39 of file core/ConjugateGradients.h.

void IMP::core::ConjugateGradients::set_max_change ( Float  t)

Limit how far anything can change each time step.

Definition at line 46 of file core/ConjugateGradients.h.


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