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::CheckDecompositionFromPy_Step Class Reference

Check if the decomposition is going singular and if it is select a new decomposition. More...

#include <MoochoPack_CheckDecompositionFromPy_Step.hpp>

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

Public Member Functions

 STANDARD_COMPOSITION_MEMBERS (NewDecompositionSelection_Strategy, new_decomp_strategy)
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_decomposition_cond_change_frac)
 
 STANDARD_MEMBER_COMPOSITION_MEMBERS (value_type, max_cond)
 
 CheckDecompositionFromPy_Step (const new_decomp_strategy_ptr_t &new_decomp_strategy, value_type max_decomposition_cond_change_frac=100.0)
 
void reset ()
 Call the reset initialization of all defaults. 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

 CheckDecompositionFromPy_Step ()
 

Private Attributes

value_type beta_min_
 

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

Check if the decomposition is going singular and if it is select a new decomposition.

This steps checks if the decomposition is going singular by looking to see if the computation for the range space step looks bad.

In particular we want to know how cond(R) is changing. We know that:

py = -inv(R) * c
--> ||py|| <= ||inv(R)|| * ||c||
--> ||py|| / ||c|| <= ||inv(R)||
--> ( ||py|| / ||c|| ) * ||R|| <= ||inv(R)|| * ||R|| = cond(R)

If we assume ||R|| > 1 we know that cond(R) > beta = ||py||/||c|| so if beta is very large then cond(R) is even larger. Since the best decomposition we can find may be fairly illconditioned we may not want to use and absolute measure of beta to determine if the decomposition is illconditioned. Instead we will look at the change in beta between iterations and if beta gets very much larger than its minimum value (i.e. beta / beta_min > max_cond_change ( default = 10000 ) ) then we will select a new decomposition. Also if beta > max_cond ( default = 0.01 / mach_eps ) then we know we will be computing inacurate solutions so we must select a new decomposition.

Definition at line 76 of file MoochoPack_CheckDecompositionFromPy_Step.hpp.

Constructor & Destructor Documentation

MoochoPack::CheckDecompositionFromPy_Step::CheckDecompositionFromPy_Step ( const new_decomp_strategy_ptr_t &  new_decomp_strategy,
value_type  max_decomposition_cond_change_frac = 100.0 
)

Definition at line 53 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.

MoochoPack::CheckDecompositionFromPy_Step::CheckDecompositionFromPy_Step ( )
private

Member Function Documentation

MoochoPack::CheckDecompositionFromPy_Step::STANDARD_COMPOSITION_MEMBERS ( NewDecompositionSelection_Strategy  ,
new_decomp_strategy   
)

MoochoPack::CheckDecompositionFromPy_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
max_decomposition_cond_change_frac   
)

MoochoPack::CheckDecompositionFromPy_Step::STANDARD_MEMBER_COMPOSITION_MEMBERS ( value_type  ,
max_cond   
)

void MoochoPack::CheckDecompositionFromPy_Step::reset ( )

Call the reset initialization of all defaults.

Definition at line 64 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.

bool MoochoPack::CheckDecompositionFromPy_Step::do_step ( Algorithm algo,
poss_type  step_poss,
IterationPack::EDoStepType  type,
poss_type  assoc_step_poss 
)
virtual
void MoochoPack::CheckDecompositionFromPy_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 141 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.

Member Data Documentation

value_type MoochoPack::CheckDecompositionFromPy_Step::beta_min_
private

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