Dakota  Version 6.15
Explore and Predict with Confidence
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
EmbedHybridMetaIterator Class Reference

Meta-iterator for closely-coupled hybrid iteration, typically involving the embedding of local search methods within global search methods. More...

Inheritance diagram for EmbedHybridMetaIterator:
MetaIterator Iterator

Public Member Functions

 EmbedHybridMetaIterator (ProblemDescDB &problem_db)
 standard constructor
 
 EmbedHybridMetaIterator (ProblemDescDB &problem_db, Model &model)
 alternate constructor
 
 ~EmbedHybridMetaIterator ()
 destructor
 
- Public Member Functions inherited from MetaIterator
bool resize ()
 reinitializes iterator based on new variable size
 
- Public Member Functions inherited from Iterator
 Iterator (std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 default constructor More...
 
 Iterator (ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate envelope constructor that assigns a representation pointer More...
 
 Iterator (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate envelope constructor which uses the ProblemDescDB but accepts a model from a higher level (meta-iterator) context, instead of constructing its own More...
 
 Iterator (const String &method_string, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate envelope constructor for instantiations by name without the ProblemDescDB More...
 
 Iterator (const Iterator &iterator)
 copy constructor More...
 
virtual ~Iterator ()
 destructor
 
Iterator operator= (const Iterator &iterator)
 assignment operator
 
virtual void initialize_run ()
 utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers More...
 
virtual void pre_run ()
 pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori More...
 
virtual void finalize_run ()
 utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More...
 
virtual void pre_output ()
 write variables to file, following pre-run
 
virtual void post_input ()
 read tabular data for post-run mode
 
virtual void reset ()
 restore initial state for repeated sub-iterator executions
 
virtual void nested_variable_mappings (const SizetArray &c_index1, const SizetArray &di_index1, const SizetArray &ds_index1, const SizetArray &dr_index1, const ShortArray &c_target2, const ShortArray &di_target2, const ShortArray &ds_target2, const ShortArray &dr_target2)
 set primaryA{CV,DIV,DRV}MapIndices, secondaryA{CV,DIV,DRV}MapTargets within derived Iterators; supports computation of higher-level sensitivities in nested contexts (e.g., derivatives of statistics w.r.t. inserted design variables)
 
virtual void nested_response_mappings (const RealMatrix &primary_coeffs, const RealMatrix &secondary_coeffs)
 set primaryResponseCoefficients, secondaryResponseCoefficients within derived Iterators; Necessary for scalarization case in MLMC NonDMultilevelSampling to map scalarization in nested context
 
virtual void initialize_iterator (int job_index)
 used by IteratorScheduler to set the starting data for a run
 
virtual void pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index)
 used by IteratorScheduler to pack starting data for an iterator run
 
virtual void unpack_parameters_buffer (MPIUnpackBuffer &recv_buffer, int job_index)
 used by IteratorScheduler to unpack starting data for an iterator run
 
virtual void unpack_parameters_initialize (MPIUnpackBuffer &recv_buffer, int job_index)
 used by IteratorScheduler to unpack starting data and initialize an iterator run
 
virtual void pack_results_buffer (MPIPackBuffer &send_buffer, int job_index)
 used by IteratorScheduler to pack results data from an iterator run
 
virtual void unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index)
 used by IteratorScheduler to unpack results data from an iterator run
 
virtual void update_local_results (int job_index)
 used by IteratorScheduler to update local results arrays
 
virtual const VariablesArray & variables_array_results ()
 return multiple final iterator solutions (variables). This should only be used if returns_multiple_points() returns true.
 
virtual const ResponseArray & response_array_results ()
 return multiple final iterator solutions (response). This should only be used if returns_multiple_points() returns true.
 
virtual void response_results_active_set (const ActiveSet &set)
 set the requested data for the final iterator response results
 
virtual const RealVector & response_error_estimates () const
 return error estimates associated with the final iterator solution
 
virtual bool accepts_multiple_points () const
 indicates if this iterator accepts multiple initial points. Default return is false. Override to return true if appropriate.
 
virtual bool returns_multiple_points () const
 indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate.
 
virtual void initial_point (const Variables &pt)
 sets the initial point for this iterator (user-functions mode for which Model updating is not used)
 
virtual void initial_point (const RealVector &pt)
 sets the initial point (active continuous variables) for this iterator (user-functions mode for which Model updating is not used)
 
virtual void initial_points (const VariablesArray &pts)
 sets the multiple initial points for this iterator. This should only be used if accepts_multiple_points() returns true.
 
virtual void variable_bounds (const RealVector &cv_lower_bnds, const RealVector &cv_upper_bnds)
 assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used)
 
virtual void linear_constraints (const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_lb, const RealVector &lin_ineq_ub, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_tgt)
 assign linear inequality and linear equality constraints for this iterator (user-functions mode for which Model updating is not used)
 
virtual void nonlinear_constraints (const RealVector &nln_ineq_lb, const RealVector &nln_ineq_ub, const RealVector &nln_eq_tgt)
 assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used)
 
virtual void initialize_graphics (int iterator_server_id=1)
 initialize the 2D graphics window and the tabular graphics data More...
 
virtual void print_results (std::ostream &s, short results_state=FINAL_RESULTS)
 print the final iterator results More...
 
virtual const Modelalgorithm_space_model () const
 return the result of any recasting or surrogate model recursion layered on top of iteratedModel by the derived Iterator ctor chain
 
virtual unsigned short uses_method () const
 return name of any enabling iterator used by this iterator More...
 
virtual void method_recourse ()
 perform a method switch, if possible, due to a detected conflict
 
virtual const VariablesArray & all_variables ()
 return the complete set of evaluated variables
 
virtual const RealMatrix & all_samples ()
 return the complete set of evaluated samples
 
virtual const IntResponseMap & all_responses () const
 return the complete set of computed responses
 
virtual int num_samples () const
 get the current number of samples
 
virtual void sampling_reset (int min_samples, bool all_data_flag, bool stats_flag)
 reset sampling iterator to use at least min_samples
 
virtual void sampling_reference (int samples_ref)
 set reference number of samples, which is a lower bound during reset
 
virtual void sampling_increment ()
 increment to next in sequence of refinement samples
 
virtual void random_seed (int seed)
 set randomSeed, if present
 
virtual unsigned short sampling_scheme () const
 return sampling name
 
virtual bool compact_mode () const
 returns Analyzer::compactMode
 
virtual void declare_sources ()
 Declare sources to the evaluations database.
 
void init_communicators (ParLevLIter pl_iter)
 initialize the communicators associated with this Iterator instance
 
void set_communicators (ParLevLIter pl_iter)
 set the communicators associated with this Iterator instance
 
void free_communicators (ParLevLIter pl_iter)
 free the communicators associated with this Iterator instance
 
void resize_communicators (ParLevLIter pl_iter, bool reinit_comms)
 Resize the communicators. This is called from the letter's resize()
 
void parallel_configuration_iterator (ParConfigLIter pc_iter)
 set methodPCIter
 
ParConfigLIter parallel_configuration_iterator () const
 return methodPCIter
 
void run (ParLevLIter pl_iter)
 invoke set_communicators(pl_iter) prior to run()
 
void run ()
 orchestrate initialize/pre/core/post/finalize phases More...
 
void assign_rep (std::shared_ptr< Iterator > iterator_rep)
 replaces existing letter with a new one More...
 
void iterated_model (const Model &model)
 set the iteratedModel (iterators and meta-iterators using a single model instance)
 
Modeliterated_model ()
 return the iteratedModel (iterators & meta-iterators using a single model instance)
 
ProblemDescDBproblem_description_db () const
 return the problem description database (probDescDB)
 
ParallelLibraryparallel_library () const
 return the parallel library (parallelLib)
 
void method_name (unsigned short m_name)
 set the method name to an enumeration value
 
unsigned short method_name () const
 return the method name via its native enumeration value
 
void method_string (const String &m_str)
 set the method name by string
 
String method_string () const
 return the method name by string
 
String method_enum_to_string (unsigned short method_enum) const
 convert a method name enumeration value to a string
 
unsigned short method_string_to_enum (const String &method_str) const
 convert a method name string to an enumeration value
 
String submethod_enum_to_string (unsigned short submethod_enum) const
 convert a sub-method name enumeration value to a string
 
const String & method_id () const
 return the method identifier (methodId)
 
int maximum_evaluation_concurrency () const
 return the maximum evaluation concurrency supported by the iterator
 
void maximum_evaluation_concurrency (int max_conc)
 set the maximum evaluation concurrency supported by the iterator
 
size_t maximum_iterations () const
 return the maximum iterations for this iterator
 
void maximum_iterations (size_t max_iter)
 set the maximum iterations for this iterator
 
void convergence_tolerance (Real conv_tol)
 set the method convergence tolerance (convergenceTol)
 
Real convergence_tolerance () const
 return the method convergence tolerance (convergenceTol)
 
void output_level (short out_lev)
 set the method output level (outputLevel)
 
short output_level () const
 return the method output level (outputLevel)
 
void summary_output (bool summary_output_flag)
 Set summary output control; true enables evaluation/results summary.
 
size_t num_final_solutions () const
 return the number of solutions to retain in best variables/response arrays
 
void num_final_solutions (size_t num_final)
 set the number of solutions to retain in best variables/response arrays
 
void active_set (const ActiveSet &set)
 set the default active set (for use with iterators that employ evaluate_parameter_sets())
 
const ActiveSetactive_set () const
 return the default active set (used by iterators that employ evaluate_parameter_sets())
 
void active_set_request_vector (const ShortArray &asv)
 return the default active set request vector (used by iterators that employ evaluate_parameter_sets())
 
const ShortArray & active_set_request_vector () const
 return the default active set request vector (used by iterators that employ evaluate_parameter_sets())
 
void active_set_request_values (short asv_val)
 return the default active set request vector (used by iterators that employ evaluate_parameter_sets())
 
void sub_iterator_flag (bool si_flag)
 set subIteratorFlag (and update summaryOutputFlag if needed)
 
bool is_null () const
 function to check iteratorRep (does this envelope contain a letter?)
 
std::shared_ptr< Iteratoriterator_rep () const
 returns iteratorRep for access to derived class member functions that are not mapped to the top Iterator level
 
virtual void eval_tag_prefix (const String &eval_id_str)
 set the hierarchical eval ID tag prefix More...
 
std::shared_ptr< TraitsBasetraits () const
 returns methodTraits for access to derived class member functions that are not mapped to the top TraitsBase level
 
bool top_level ()
 Return whether the iterator is the top level iterator.
 
void top_level (const bool &tflag)
 Set the iterator's top level flag.
 

Protected Member Functions

void core_run ()
 Performs the hybrid iteration by executing global and local iterators, using a set of models that may vary in fidelity.
 
void derived_init_communicators (ParLevLIter pl_iter)
 derived class contributions to initializing the communicators associated with this Iterator instance
 
void derived_set_communicators (ParLevLIter pl_iter)
 derived class contributions to setting the communicators associated with this Iterator instance
 
void derived_free_communicators (ParLevLIter pl_iter)
 derived class contributions to freeing the communicators associated with this Iterator instance
 
IntIntPair estimate_partition_bounds ()
 estimate the minimum and maximum partition sizes that can be utilized by this Iterator
 
const Variablesvariables_results () const
 return the final solution from the embedded hybrid (variables)
 
const Responseresponse_results () const
 return the final solution from the embedded hybrid (response)
 
- Protected Member Functions inherited from MetaIterator
 MetaIterator (ProblemDescDB &problem_db)
 standard constructor
 
 MetaIterator (ProblemDescDB &problem_db, Model &model)
 alternate constructor
 
 ~MetaIterator ()
 destructor
 
void post_run (std::ostream &s)
 post-run portion of run (optional); verbose to print results; re-implemented by Iterators that can read all Variables/Responses and perform final analysis phase in a standalone way More...
 
void check_model (const String &method_ptr, const String &model_ptr)
 check that a model identified by pointer has the same id as the iteratedModel passed through the ctor chain
 
void allocate_by_pointer (const String &method_ptr, Iterator &the_iterator, Model &the_model)
 initialize the_iterator and the_model based on method_ptr
 
void allocate_by_name (const String &method_string, const String &model_ptr, Iterator &the_iterator, Model &the_model)
 initialize the_iterator based on method_string
 
std::pair< int, int > estimate_by_pointer (const String &method_ptr, Iterator &the_iterator, Model &the_model)
 estimate minimum and maximum processors per iterator needed for init_iterator_parallelism(); instantiates the_iterator and the_model as needed, but on minimal processor ranks (is later augmented by allocate_by_pointer())
 
std::pair< int, int > estimate_by_name (const String &method_string, const String &model_ptr, Iterator &the_iterator, Model &the_model)
 estimate minimum and maximum processors per iterator needed for init_iterator_parallelism(); instantiates the_iterator and the_model as needed, but on minimal processor ranks (is later augmented by allocate_by_name())
 
- Protected Member Functions inherited from Iterator
 Iterator (BaseConstructor, ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 
 Iterator (NoDBBaseConstructor, unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate constructor for base iterator classes constructed on the fly More...
 
 Iterator (NoDBBaseConstructor, unsigned short method_name, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase()))
 alternate constructor for base iterator classes constructed on the fly More...
 
virtual void update_from_model (const Model &model)
 set inherited data attributes based on extractions from incoming model
 
virtual const VariablesArray & initial_points () const
 gets the multiple initial points for this iterator. This will only be meaningful after a call to initial_points mutator.
 
StrStrSizet run_identifier () const
 get the unique run identifier based on method name, id, and number of executions
 
void initialize_model_graphics (Model &model, int iterator_server_id)
 helper function that encapsulates initialization operations, modular on incoming Model instance More...
 
void export_final_surrogates (Model &data_fit_surr_model)
 export final surrogates generated, e.g., GP in EGO and friends More...
 

Private Attributes

Iterator globalIterator
 the top-level outer iterator (e.g., global minimizer)
 
Model globalModel
 the model employed by the top-level outer iterator
 
Iterator localIterator
 the inner iterator (e.g., local minimizer)
 
Model localModel
 the model employed by the inner iterator
 
bool singlePassedModel
 use of constructor that enforces use of a single passed Model
 
Real localSearchProb
 the probability of running a local search refinement within phases of the global minimization for tightly-coupled hybrids
 

Additional Inherited Members

- Static Protected Member Functions inherited from Iterator
static void gnewton_set_recast (const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set)
 conversion of request vector values for the Gauss-Newton Hessian approximation More...
 
- Protected Attributes inherited from MetaIterator
IteratorScheduler iterSched
 scheduler for concurrent execution of Iterators
 
int maxIteratorConcurrency
 maximum number of concurrent sub-iterator executions
 

Detailed Description

Meta-iterator for closely-coupled hybrid iteration, typically involving the embedding of local search methods within global search methods.

This meta-iterator uses multiple methods in close coordination, generally using a local search minimizer repeatedly within a global minimizer (the local search minimizer refines candidate minima which are fed back to the global minimizer).


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