MOOCHO (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Member Functions | Private Attributes | List of all members
MoochoPack::LineSearchFilter_Step Class Reference

Filter line-search step class. More...

#include <MoochoPack_LineSearchFilter_Step.hpp>

Inheritance diagram for MoochoPack::LineSearchFilter_Step:
Inheritance graph
[legend]

Public Member Functions

 ~LineSearchFilter_Step ()
 Destructor. More...
 
- Public Member Functions inherited from IterationPack::AlgorithmStep
virtual ~AlgorithmStep ()
 
virtual void initialize_step (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss)
 Called by Algorithm just before the algorithm is run. More...
 
virtual void inform_updated (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss)
 Called by Algorithm to inform when a runtime configuration change is finihed. More...
 
virtual void finalize_step (Algorithm &algo, poss_type step_poss, EDoStepType type, poss_type assoc_step_poss)
 Called by Algorithm just after an algorithm is terminiated. More...
 

Private Member Functions

bool ValidatePoint (const IterQuantityAccess< VectorMutable > &x, const IterQuantityAccess< value_type > &f, const IterQuantityAccess< VectorMutable > *c, const IterQuantityAccess< VectorMutable > *h, const bool throw_excpt) const
 
bool CheckFilterAcceptability (const value_type f, const value_type theta, const AlgorithmState &s) const
 
bool CheckArmijo (const value_type Gf_t_dk, const value_type alpha_k, const IterQuantityAccess< value_type > &f_iq) const
 
bool CheckFractionalReduction (const IterQuantityAccess< value_type > &f_iq, const value_type gamma_f_used, const value_type theta_kp1, const value_type theta_k) const
 
void UpdatePoint (const VectorMutable &d, value_type alpha, IterQuantityAccess< VectorMutable > &x, IterQuantityAccess< value_type > &f, IterQuantityAccess< VectorMutable > *c, IterQuantityAccess< VectorMutable > *h, NLP &nlp) const
 
value_type CalculateAlphaMin (const value_type gamma_f_used, const value_type Gf_t_dk, const value_type theta_k, const value_type theta_small) const
 
value_type CalculateTheta_k (const IterQuantityAccess< VectorMutable > *c, const IterQuantityAccess< VectorMutable > *h, int k) const
 
value_type CalculateGammaFUsed (const IterQuantityAccess< value_type > &f, const value_type theta_k, const EJournalOutputLevel olevel, std::ostream &out) const
 
bool ShouldSwitchToArmijo (const value_type Gf_t_dk, const value_type alpha_k, const value_type theta_k, const value_type theta_small) const
 
void UpdateFilter (IterationPack::AlgorithmState &s) const
 
void AugmentFilter (const value_type gamma_f_used, const value_type f_with_boundary, const value_type theta_with_boundary, IterationPack::AlgorithmState &s, const EJournalOutputLevel olevel, std::ostream &out) const
 

Private Attributes

CastIQMember< Filter_Tfilter_
 
CastIQMember< value_type > obj_f_
 Iteration quantity access for objective value. More...
 
CastIQMember< VectorMutable > grad_obj_f_
 ITeration quantity access for objective gradient. More...
 
Teuchos::RCP
< NLPInterfacePack::NLP
nlp_
 

Public types

static value_type F_MIN_UNBOUNDED = std::numeric_limits<value_type>::min()
 

Constructors / initializers

 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, gamma_theta)
 Feasibility decrease fraction. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, gamma_f)
 Optimality decrease fraction. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, f_min)
 Estimate of minimum value obtainable for the objective function. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, gamma_alpha)
 alpha_min linearization correction fraction More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, delta)
 Delta parameter for switching condition. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, s_f)
 Exponent for objective in switching condition. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, s_theta)
 Exponent for theta in switching condition. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, theta_small_fact)
 Factor to evaluate theta_small theta_small = theta_small_fact*max(1,theta_k) More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, theta_max)
 Maximum allowable theta value. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, eta_f)
 Constant for Armijo condition on objective. More...
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, back_track_frac)
 Backtracking fraction for step. More...
 
 LineSearchFilter_Step (Teuchos::RCP< NLPInterfacePack::NLP > nlp, const std::string obj_iq_name="f", const std::string grad_obj_iq_name="Gf", const value_type &gamma_theta=1e-5, const value_type &gamma_f=1e-5, const value_type &f_min=F_MIN_UNBOUNDED, const value_type &gamma_alpha=5e-2, const value_type &delta=1e-4, const value_type &s_theta=1.1, const value_type &s_f=2.3, const value_type &theta_small_fact=1e-4, const value_type &theta_max=1e10, const value_type &eta_f=1e-4, const value_type &back_track_frac=0.5)
 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
 

Additional Inherited Members

- Public Types inherited from IterationPack::AlgorithmStep
typedef size_t poss_type
 

Detailed Description

Filter line-search step class.

Todo: Finish documentataion.

Definition at line 79 of file MoochoPack_LineSearchFilter_Step.hpp.

Constructor & Destructor Documentation

MoochoPack::LineSearchFilter_Step::LineSearchFilter_Step ( Teuchos::RCP< NLPInterfacePack::NLP nlp,
const std::string  obj_iq_name = "f",
const std::string  grad_obj_iq_name = "Gf",
const value_type &  gamma_theta = 1e-5,
const value_type &  gamma_f = 1e-5,
const value_type &  f_min = F_MIN_UNBOUNDED,
const value_type &  gamma_alpha = 5e-2,
const value_type &  delta = 1e-4,
const value_type &  s_theta = 1.1,
const value_type &  s_f = 2.3,
const value_type &  theta_small_fact = 1e-4,
const value_type &  theta_max = 1e10,
const value_type &  eta_f = 1e-4,
const value_type &  back_track_frac = 0.5 
)

Constructor.

Definition at line 122 of file MoochoPack_LineSearchFilter_Step.cpp.

MoochoPack::LineSearchFilter_Step::~LineSearchFilter_Step ( )

Destructor.

Definition at line 168 of file MoochoPack_LineSearchFilter_Step.cpp.

Member Function Documentation

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
gamma_theta   
)

Feasibility decrease fraction.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
gamma_f   
)

Optimality decrease fraction.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
f_min   
)

Estimate of minimum value obtainable for the objective function.

If this value is set to F_MIN_UNBOUNDED then the default behavior if gamma_f is alterned otherwise the value of gamma_f used is set to gamm_f_used = gamma_f *(f_k-f_min) (see the algorithm print out).

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
gamma_alpha   
)

alpha_min linearization correction fraction

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
delta   
)

Delta parameter for switching condition.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
s_f   
)

Exponent for objective in switching condition.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
s_theta   
)

Exponent for theta in switching condition.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
theta_small_fact   
)

Factor to evaluate theta_small theta_small = theta_small_fact*max(1,theta_k)

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
theta_max   
)

Maximum allowable theta value.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
eta_f   
)

Constant for Armijo condition on objective.

ToDo: Finish documentation.

MoochoPack::LineSearchFilter_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
back_track_frac   
)

Backtracking fraction for step.

ToDo: Finish documentation.

bool MoochoPack::LineSearchFilter_Step::do_step ( Algorithm algo,
poss_type  step_poss,
IterationPack::EDoStepType  type,
poss_type  assoc_step_poss 
)
virtual
void MoochoPack::LineSearchFilter_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
virtual

Reimplemented from IterationPack::AlgorithmStep.

Definition at line 537 of file MoochoPack_LineSearchFilter_Step.cpp.

bool MoochoPack::LineSearchFilter_Step::ValidatePoint ( const IterQuantityAccess< VectorMutable > &  x,
const IterQuantityAccess< value_type > &  f,
const IterQuantityAccess< VectorMutable > *  c,
const IterQuantityAccess< VectorMutable > *  h,
const bool  throw_excpt 
) const
private

Definition at line 615 of file MoochoPack_LineSearchFilter_Step.cpp.

bool MoochoPack::LineSearchFilter_Step::CheckFilterAcceptability ( const value_type  f,
const value_type  theta,
const AlgorithmState &  s 
) const
private

Definition at line 636 of file MoochoPack_LineSearchFilter_Step.cpp.

bool MoochoPack::LineSearchFilter_Step::CheckArmijo ( const value_type  Gf_t_dk,
const value_type  alpha_k,
const IterQuantityAccess< value_type > &  f_iq 
) const
private

Definition at line 667 of file MoochoPack_LineSearchFilter_Step.cpp.

bool MoochoPack::LineSearchFilter_Step::CheckFractionalReduction ( const IterQuantityAccess< value_type > &  f_iq,
const value_type  gamma_f_used,
const value_type  theta_kp1,
const value_type  theta_k 
) const
private

Definition at line 689 of file MoochoPack_LineSearchFilter_Step.cpp.

void MoochoPack::LineSearchFilter_Step::UpdatePoint ( const VectorMutable &  d,
value_type  alpha,
IterQuantityAccess< VectorMutable > &  x,
IterQuantityAccess< value_type > &  f,
IterQuantityAccess< VectorMutable > *  c,
IterQuantityAccess< VectorMutable > *  h,
NLP &  nlp 
) const
private

Definition at line 706 of file MoochoPack_LineSearchFilter_Step.cpp.

value_type MoochoPack::LineSearchFilter_Step::CalculateAlphaMin ( const value_type  gamma_f_used,
const value_type  Gf_t_dk,
const value_type  theta_k,
const value_type  theta_small 
) const
private

Definition at line 733 of file MoochoPack_LineSearchFilter_Step.cpp.

value_type MoochoPack::LineSearchFilter_Step::CalculateTheta_k ( const IterQuantityAccess< VectorMutable > *  c,
const IterQuantityAccess< VectorMutable > *  h,
int  k 
) const
private

Definition at line 758 of file MoochoPack_LineSearchFilter_Step.cpp.

value_type MoochoPack::LineSearchFilter_Step::CalculateGammaFUsed ( const IterQuantityAccess< value_type > &  f,
const value_type  theta_k,
const EJournalOutputLevel  olevel,
std::ostream &  out 
) const
private

Definition at line 775 of file MoochoPack_LineSearchFilter_Step.cpp.

bool MoochoPack::LineSearchFilter_Step::ShouldSwitchToArmijo ( const value_type  Gf_t_dk,
const value_type  alpha_k,
const value_type  theta_k,
const value_type  theta_small 
) const
private

Definition at line 800 of file MoochoPack_LineSearchFilter_Step.cpp.

void MoochoPack::LineSearchFilter_Step::UpdateFilter ( IterationPack::AlgorithmState s) const
private

Definition at line 816 of file MoochoPack_LineSearchFilter_Step.cpp.

void MoochoPack::LineSearchFilter_Step::AugmentFilter ( const value_type  gamma_f_used,
const value_type  f_with_boundary,
const value_type  theta_with_boundary,
IterationPack::AlgorithmState s,
const EJournalOutputLevel  olevel,
std::ostream &  out 
) const
private

Definition at line 837 of file MoochoPack_LineSearchFilter_Step.cpp.

Member Data Documentation

value_type MoochoPack::LineSearchFilter_Step::F_MIN_UNBOUNDED = std::numeric_limits<value_type>::min()
static

Definition at line 88 of file MoochoPack_LineSearchFilter_Step.hpp.

CastIQMember<Filter_T> MoochoPack::LineSearchFilter_Step::filter_
private

Definition at line 210 of file MoochoPack_LineSearchFilter_Step.hpp.

CastIQMember<value_type> MoochoPack::LineSearchFilter_Step::obj_f_
private

Iteration quantity access for objective value.

Definition at line 213 of file MoochoPack_LineSearchFilter_Step.hpp.

CastIQMember<VectorMutable> MoochoPack::LineSearchFilter_Step::grad_obj_f_
private

ITeration quantity access for objective gradient.

Definition at line 216 of file MoochoPack_LineSearchFilter_Step.hpp.

Teuchos::RCP<NLPInterfacePack::NLP> MoochoPack::LineSearchFilter_Step::nlp_
private

Definition at line 219 of file MoochoPack_LineSearchFilter_Step.hpp.


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