MADNESS
version 0.9
|
Optimization via quasi-Newton (BFGS or SR1 update) More...
#include <solvers.h>
Public Member Functions | |
QuasiNewton (const std::shared_ptr< OptimizationTargetInterface > &tar, int maxiter=20, double tol=1e-6, double value_precision=1e-12, double gradient_precision=1e-12) | |
void | set_update (const std::string &method) |
Choose update method (currently only "BFGS" or "SR1") More... | |
void | set_test (const bool &test_level) |
Choose update method (currently only "BFGS" or "SR1") More... | |
bool | optimize (Tensor< double > &x) |
Runs the optimizer. More... | |
bool | converged () const |
After running the optimizer returns true if converged. More... | |
double | value () const |
Value of objective function. More... | |
void | reset_hessian () |
Resets Hessian to default guess. More... | |
void | set_hessian (const Tensor< double > &matrix) |
Sets Hessian to given matrix. More... | |
double | gradient_norm () const |
Value of gradient norm. More... | |
virtual | ~QuasiNewton () |
Public Member Functions inherited from madness::OptimizerInterface | |
virtual | ~OptimizerInterface () |
Optimization via quasi-Newton (BFGS or SR1 update)
This is presently not a low memory algorithm ... we really need one!
QuasiNewton::QuasiNewton | ( | const std::shared_ptr< OptimizationTargetInterface > & | tar, |
int | maxiter = 20 , |
||
double | tol = 1e-6 , |
||
double | value_precision = 1e-12 , |
||
double | gradient_precision = 1e-12 |
||
) |
|
inlinevirtual |
|
virtual |
After running the optimizer returns true if converged.
Implements madness::OptimizerInterface.
Referenced by optimize().
|
virtual |
Value of gradient norm.
Implements madness::OptimizerInterface.
|
virtual |
Runs the optimizer.
Implements madness::OptimizerInterface.
References converged(), madness::g, madness::print(), madness::OptimizationTargetInterface::test_gradient(), and madness::OptimizationTargetInterface::value_and_gradient().
Referenced by main().
|
inline |
Resets Hessian to default guess.
Referenced by main().
|
inline |
void QuasiNewton::set_test | ( | const bool & | test_level | ) |
Choose update method (currently only "BFGS" or "SR1")
Referenced by main().
void QuasiNewton::set_update | ( | const std::string & | method | ) |
Choose update method (currently only "BFGS" or "SR1")
Referenced by main().
|
virtual |
Value of objective function.
Implements madness::OptimizerInterface.