MOOCHO (Single Doxygen Collection) Version of the Day
Public Member Functions | Private Member Functions | Private Attributes
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]

List of all members.

Public Member Functions

 ~LineSearchFilter_Step ()
 Destructor.

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.
CastIQMember< VectorMutable > grad_obj_f_
 ITeration quantity access for objective gradient.
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.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, gamma_f)
 Optimality decrease fraction.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, f_min)
 Estimate of minimum value obtainable for the objective function.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, gamma_alpha)
 alpha_min linearization correction fraction
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, delta)
 Delta parameter for switching condition.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, s_f)
 Exponent for objective in switching condition.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, s_theta)
 Exponent for theta in switching condition.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, theta_small_fact)
 Factor to evaluate theta_small theta_small = theta_small_fact*max(1,theta_k)
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, theta_max)
 Maximum allowable theta value.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, eta_f)
 Constant for Armijo condition on objective.
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, back_track_frac)
 Backtracking fraction for 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.

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
 

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.

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.

Definition at line 219 of file MoochoPack_LineSearchFilter_Step.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines