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]
List of all members.

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
 

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.

Private Member Functions

 CheckDecompositionFromPy_Step ()

Private Attributes

value_type beta_min_

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 63 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 40 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 51 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 
)

Definition at line 57 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.

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

Definition at line 128 of file MoochoPack_CheckDecompositionFromPy_Step.cpp.


Member Data Documentation

value_type MoochoPack::CheckDecompositionFromPy_Step::beta_min_ [private]

Definition at line 96 of file MoochoPack_CheckDecompositionFromPy_Step.hpp.


The documentation for this class was generated from the following files:
Generated on Wed May 12 21:57:22 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7