MoochoPack : Framework for Large-Scale Optimization Algorithms
Version of the Day
|
Checks for descent in the decomposed equality constraints with respect to the range space step Ypy
using finite differences.
More...
#include <MoochoPack_CheckDescentQuasiNormalStep_Step.hpp>
Public Member Functions | |
STANDARD_COMPOSITION_MEMBERS (CalcFiniteDiffProd, calc_fd_prod) | |
Set the object that will compute the finite difference products. More... | |
CheckDescentQuasiNormalStep_Step (const calc_fd_prod_ptr_t &calc_fd_prod) | |
Constructor. More... | |
Overridden from AlgorithmStep | |
bool | do_step (Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss) |
void | print_step (const Algorithm &algo, poss_type step_poss, IterationPack::EDoStepType type, poss_type assoc_step_poss, std::ostream &out, const std::string &leading_str) const |
Checks for descent in the decomposed equality constraints with respect to the range space step Ypy
using finite differences.
This step class checks for descent in the feasibility measure q(x) = 1/2 * cd(x)'*cd(x) <: REAL
of the decomposed equality constraints cd(x) = c(equ_decomp)(x)
with respect to the range space step Ypy_k
. The gradient of this feasibility measure is:
grad(q(x),x) = grad(cd(x),x) * cd(x)
Therefore, we can determine if we have descent by checking grad(q(x),x)'*Ypy_k = cd(x)'*grad(cd(x),x)'*Ypy_k< 0
. The product grad(c(x),x)'*Ypy_k
is approximated with finite differences using the class MoochoPack::CalcFiniteDiffProd
.
Definition at line 66 of file MoochoPack_CheckDescentQuasiNormalStep_Step.hpp.
MoochoPack::CheckDescentQuasiNormalStep_Step::CheckDescentQuasiNormalStep_Step | ( | const calc_fd_prod_ptr_t & | calc_fd_prod | ) |
Constructor.
Definition at line 58 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.
MoochoPack::CheckDescentQuasiNormalStep_Step::STANDARD_COMPOSITION_MEMBERS | ( | CalcFiniteDiffProd | , |
calc_fd_prod | |||
) |
Set the object that will compute the finite difference products.
bool MoochoPack::CheckDescentQuasiNormalStep_Step::do_step | ( | Algorithm & | algo, |
poss_type | step_poss, | ||
IterationPack::EDoStepType | type, | ||
poss_type | assoc_step_poss | ||
) |
Definition at line 64 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.
void MoochoPack::CheckDescentQuasiNormalStep_Step::print_step | ( | const Algorithm & | algo, |
poss_type | step_poss, | ||
IterationPack::EDoStepType | type, | ||
poss_type | assoc_step_poss, | ||
std::ostream & | out, | ||
const std::string & | leading_str | ||
) | const |
Definition at line 152 of file MoochoPack_CheckDescentQuasiNormalStep_Step.cpp.