MoochoPack : Framework for Large-Scale Optimization Algorithms
Version of the Day
|
Strategy interface for performing secant updates {abstract}. More...
#include <MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp>
Public Member Functions | |
virtual | ~ReducedHessianSecantUpdate_Strategy () |
virtual bool | perform_update (VectorMutable *s_bfgs, VectorMutable *y_bfgs, bool first_update, std::ostream &out, EJournalOutputLevel olevel, NLPAlgo *algo, NLPAlgoState *s, MatrixSymOp *rHL_k)=0 |
Perform the secant update. More... | |
virtual void | print_step (std::ostream &out, const std::string &leading_str) const =0 |
This function will print a description of the computations and logic used in the update. More... | |
Strategy interface for performing secant updates {abstract}.
This interface is used by the class ReducedHessianSecantUpdateStd_Step
to actually perform the secant updates.
Definition at line 54 of file MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp.
|
inlinevirtual |
Definition at line 58 of file MoochoPack_ReducedHessianSecantUpdate_Strategy.hpp.
|
pure virtual |
Perform the secant update.
The function will update rHL_k
so that rHL_k * s_bfgs y_bfgs
. Note that this post conditions for this function do not strictly require that the secant property rHL_k * s_bfgs = y_bfgs
be satisfied. This allows for more flexibility in how the update is perform.
Preconditions:
s_bfgs | [in/work] Secant change vector on input. May be modified as modified as workspace. |
y_bfgs | [in/work] Secant change vector on input. May be modified as modified as workspace. |
first_update | [in] If true then this is the first update after rHL was initialized to identity. This is information that may be used in order to deliver a beter initial update. |
out | [out] Output stream journal data is written to. |
olevel | [in] Output level for printing to out |
algo | [in/out] The NLPAlgo object. This object can be queryed for information and also be called to redirect control (in which case this function should probably return false). |
s | [in/out] NLPAlgoState object. May be queried or modified if needed. |
rHL_k | [in/out] The matrix to be updated. Note that rHL_k was already set to rHL_km1 before this call was made. Also, rHL_k will probably have to support the MatrixSymSecant interface or an exception will be thrown. |
algo
. Ohterwise, this function should return true. Implemented in MoochoPack::ReducedHessianSecantUpdateBFGSFull_Strategy.
|
pure virtual |
This function will print a description of the computations and logic used in the update.
Implemented in MoochoPack::ReducedHessianSecantUpdateLPBFGS_Strategy, MoochoPack::ReducedHessianSecantUpdateBFGSProjected_Strategy, and MoochoPack::ReducedHessianSecantUpdateBFGSFull_Strategy.