MOOCHO (Single Doxygen Collection)
Version of the Day
|
Compute a dampening term zeta_k for the cross term w_k such that Gf'*Z*pz <= 0. More...
#include <MoochoPack_DampenCrossTermStd_Step.hpp>
Inherits rSQPAlgo_Step.
Public Member Functions | |
STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, frac_descent) | |
«std comp» members for frac_descent More... | |
DampenCrossTermStd_Step (const value_type &frac_descent=0.9) | |
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 |
Compute a dampening term zeta_k for the cross term w_k such that Gf'*Z*pz <= 0.
This condition Gf'*Z*pz <= 0 is needed to ensure descent of many merit functions.
This implementation ensures that Gf'*Z*pz <= 0 only if there will not be any active constraints when the reduced QP subproblem is solved (nu_k = 0) and there are no undecomposed equality constraints or if there they are linearly dependent (lambda_k(undecomp_con) = 0).
In particular this implementation computes zeta_k such that:
Gf'*Z*pz <= frac_descent * rGf'inv(B)*rGf
where: 0 < frac_descent < 1
To ensure strong descent (and hopefully deal with the cases where nu_k != 0 and lambda_k(undecomp_con) != 0) the parameter frac_descent is set to frac_descent = 0.9 by default.
The basis derivation goes like this:
ToDo: Finish documentation!
Definition at line 75 of file MoochoPack_DampenCrossTermStd_Step.hpp.
MoochoPack::DampenCrossTermStd_Step::DampenCrossTermStd_Step | ( | const value_type & | frac_descent = 0.9 | ) |
MoochoPack::DampenCrossTermStd_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS | ( | value_type | , |
frac_descent | |||
) |
«std comp» members for frac_descent
bool MoochoPack::DampenCrossTermStd_Step::do_step | ( | Algorithm & | algo, |
poss_type | step_poss, | ||
IterationPack::EDoStepType | type, | ||
poss_type | assoc_step_poss | ||
) |
void MoochoPack::DampenCrossTermStd_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 |