Rosetta
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

◆ Minimizer()

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

Member Function Documentation

◆ dfpmin()

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

◆ dfpmin_armijo()

void core::optimization::Minimizer::dfpmin_armijo ( Multivec P,
Real FRET,
ConvergenceTest converge_test,
LineMinimizationAlgorithmOP  line_min,
int const  ITMAX 
) const
private

◆ lbfgs()

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

◆ linmin()

void core::optimization::Minimizer::linmin ( Multivec P,
Multivec XI,
Real FRET,
int const  ITMAX 
) const
private

References func_.

Referenced by run().

◆ linmin_iterated()

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().

◆ run()

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

See Minimization overview and concepts for details.

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

Referenced by protocols::electron_density::BfactorFittingMover::apply(), protocols::electron_density::VoxelSpacingRefinementMover::apply(), protocols::helical_bundle::FitSimpleHelix::apply(), protocols::ncbb::SecStructMinimizeMover::apply(), protocols::normalmode::NormalModeMinimizer::apply(), protocols::ligand_docking::ga_ligand_dock::LigandAligner::apply(), core::pack::minimize_alt_rotamer(), protocols::nmr::pcs::PCSEnergy::minimize_tensors(), protocols::scoring::methods::pcs2::PcsEnergy::minimize_tensors_fix_from_PCS_data(), protocols::scoring::methods::pcs::PCS_Energy::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs1::PCS_Energy_Ts1::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs2::PCS_Energy_Ts2::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs3::PCS_Energy_Ts3::minimize_tensors_from_PCS_data(), protocols::scoring::methods::pcsTs4::PCS_Energy_Ts4::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::ligand_docking::ga_ligand_dock::GridScorer::minimizer_loop(), protocols::optimize_weights::IterativeOptEDriver::optimize_weights(), core::optimization::AtomTreeMinimizer::run(), core::optimization::CartesianMinimizer::run(), and core::optimization::symmetry::SymAtomTreeMinimizer::run().

Member Data Documentation

◆ func_

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

◆ options_

MinimizerOptions core::optimization::Minimizer::options_
private

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