Rosetta  2016.11
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
core::optimization::Minimizer Class Reference

Simple low-level minimizer class. More...

#include <Minimizer.hh>

Public Member Functions

 Minimizer (Multifunc &func_in, MinimizerOptions const &options_in)
 
Real run (Multivec &phipsi_inout)
 See Minimization overview and concepts for details. More...
 

Private Member Functions

void linmin (Multivec &P, Multivec &XI, Real &FRET, int const ITMAX) const
 
void linmin_iterated (Multivec &P, Real &FRET, ConvergenceTest &converge_test, core::Size const ITMAX) const
 Carry out many iterations of line searches, using only the gradient vector (that is, don't approximate the Hessian or use it in any way). More...
 
void dfpmin (Multivec &P, Real &FRET, ConvergenceTest &converge_test, int const ITMAX) const
 
void dfpmin_armijo (Multivec &P, Real &FRET, ConvergenceTest &converge_test, LineMinimizationAlgorithmOP line_min, int const ITMAX) const
 
void lbfgs (Multivec &P, Real &FRET, ConvergenceTest &converge_test, LineMinimizationAlgorithmOP line_min, int const ITMAX, bool w_rescore=false) const
 

Private Attributes

Multifuncfunc_
 
MinimizerOptions options_
 

Detailed Description

Simple low-level minimizer class.

Constructor & Destructor Documentation

core::optimization::Minimizer::Minimizer ( Multifunc func_in,
MinimizerOptions const &  options_in 
)

Member Function Documentation

void core::optimization::Minimizer::dfpmin ( Multivec P,
Real FRET,
ConvergenceTest converge_test,
int const  ITMAX 
) const
private
void core::optimization::Minimizer::dfpmin_armijo ( Multivec P,
Real FRET,
ConvergenceTest converge_test,
LineMinimizationAlgorithmOP  line_min,
int const  ITMAX 
) const
private
void core::optimization::Minimizer::lbfgs ( Multivec P,
Real FRET,
ConvergenceTest converge_test,
LineMinimizationAlgorithmOP  line_min,
int const  ITMAX,
bool  w_rescore = false 
) const
private
void core::optimization::Minimizer::linmin ( Multivec P,
Multivec XI,
Real FRET,
int const  ITMAX 
) const
private

References func_.

Referenced by run().

void core::optimization::Minimizer::linmin_iterated ( Multivec P,
Real FRET,
ConvergenceTest converge_test,
core::Size const  ITMAX 
) const
private

Carry out many iterations of line searches, using only the gradient vector (that is, don't approximate the Hessian or use it in any way).

Useful for testing minimization protocols. In theory, this should converge less efficiently than something that uses a Hessian approximation, but it will be entirely free of any erratic behaviour that results from the approximation used. Note that DFP/LBFGS approximations are not guaranteed to work well with all functions.

Author
Vikram K. Mulligan (vmull.nosp@m.ig@u.nosp@m.w.edu).

References core::optimization::Multifunc::dfunc(), func_, core::optimization::MinimizerOptions::linmin_deriv_cutoff(), options_, core::optimization::BrentLineMinimization::set_deriv_cutoff(), and core::optimization::TR().

Referenced by run().

Real core::optimization::Minimizer::run ( Multivec phipsi_inout)

See Minimization overview and concepts for details.

References dfpmin(), dfpmin_armijo(), core::optimization::Multifunc::dfunc(), func_, lbfgs(), linmin(), linmin_iterated(), core::optimization::MinimizerOptions::max_iter(), core::optimization::MinimizerOptions::min_type(), core::optimization::MinimizerOptions::minimize_tolerance(), options_, core::optimization::GA_Minimizer::run(), and core::optimization::MinimizerOptions::silent().

Referenced by protocols::helical_bundle::FitSimpleHelix::apply(), protocols::normalmode::NormalModeMinimizer::apply(), protocols::ncbb::SecStructMinimizeMover::apply(), protocols::electron_density::VoxelSpacingRefinementMover::apply(), protocols::electron_density::BfactorFittingMover::apply(), core::pack::minimize_alt_rotamer(), protocols::scoring::methods::pcs2::PcsEnergy::minimize_tensors_fix_from_PCS_data(), protocols::scoring::methods::pcsTs2::PCS_Energy_Ts2::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs4::PCS_Energy_Ts4::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs1::PCS_Energy_Ts1::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs3::PCS_Energy_Ts3::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcs::PCS_Energy::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcs2::PcsEnergy::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcs2::PcsEnergy::minimize_tensors_from_PCS_data_with_svd(), protocols::optimize_weights::IterativeOptEDriver::optimize_weights(), core::optimization::symmetry::SymAtomTreeMinimizer::run(), core::optimization::AtomTreeMinimizer::run(), and core::optimization::CartesianMinimizer::run().

Member Data Documentation

Multifunc& core::optimization::Minimizer::func_
private
MinimizerOptions core::optimization::Minimizer::options_
private

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