MoochoPack : Framework for Large-Scale Optimization Algorithms  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
MoochoPack::DampenCrossTermStd_Step Class Reference

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
 

Detailed Description

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.

Constructor & Destructor Documentation

MoochoPack::DampenCrossTermStd_Step::DampenCrossTermStd_Step ( const value_type &  frac_descent = 0.9)

Member Function Documentation

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


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