Dakota
Version
Explore and Predict with Confidence
|
Public Member Functions | |
EffGlobalMinimizer (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
EffGlobalMinimizer (Model &model, const String &approx_type, int samples, int seed, bool use_derivs, size_t max_iter, size_t max_eval, Real conv_tol) | |
alternate constructor for instantiations "on the fly" | |
~EffGlobalMinimizer () | |
destructor | |
void | pre_run () |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori More... | |
void | core_run () |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post More... | |
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... | |
const Model & | algorithm_space_model () const |
Public Member Functions inherited from Minimizer | |
void | constraint_tolerance (Real constr_tol) |
set the method constraint tolerance (constraintTol) | |
Real | constraint_tolerance () const |
return the method constraint tolerance (constraintTol) | |
std::shared_ptr< TPLDataTransfer > | get_data_transfer_helper () const |
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())) | |
standard envelope constructor, which constructs its own model(s) 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 | 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 Variables & | variables_results () const |
return a single final iterator solution (variables) | |
virtual const Response & | response_results () const |
return a single final iterator solution (response) | |
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 RealSymMatrix & | 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 | check_sub_iterator_conflict () |
detect any conflicts due to recursive use of the same Fortran solver More... | |
virtual unsigned short | uses_method () const |
return name of any enabling iterator used by this iterator | |
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 size_t | num_samples () const |
get the current number of samples | |
virtual void | sampling_reset (size_t min_samples, bool all_data_flag, bool stats_flag) |
reset sampling iterator to use at least min_samples | |
virtual void | sampling_reference (size_t 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 IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
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 | parallel_configuration_iterator_map (std::map< size_t, ParConfigLIter > pci_map) |
set methodPCIterMap | |
std::map< size_t, ParConfigLIter > | parallel_configuration_iterator_map () const |
return methodPCIterMap | |
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) | |
Model & | iterated_model () |
return the iteratedModel (iterators & meta-iterators using a single model instance) | |
ProblemDescDB & | problem_description_db () const |
return the problem description database (probDescDB) | |
ParallelLibrary & | parallel_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 ActiveSet & | active_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< Iterator > | iterator_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< TraitsBase > | traits () 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 (bool tflag) |
Set the iterator's top level flag. | |
Private Member Functions | |
void | initialize_sub_problem (const String &approx_type, int samples, int seed, bool use_derivs, const String &sample_reuse, const String &import_build_points_file=String(), unsigned short import_build_format=TABULAR_ANNOTATED, bool import_build_active_only=false, const String &export_approx_points_file=String(), unsigned short export_approx_format=TABULAR_ANNOTATED) |
shared ctor code for initializing Models and Minimizers for solving an approximate sub-problem | |
void | initialize_multipliers () |
initialize Lagrange multipliers in the case of nonlinear constraints | |
void | check_parallelism () |
function that checks if model supports asynchronous parallelism | |
void | build_gp () |
build initial GP approximations after initial sampling | |
void | batch_synchronous_ego () |
synchronous batch-sequential implementation: main function | |
void | batch_asynchronous_ego () |
synchronous batch-sequential implementation: main function | |
void | construct_batch_acquisition (size_t new_acq, size_t new_batch) |
construct a batch of points from performing acquisition cycles | |
void | construct_batch_exploration (size_t new_expl, size_t new_batch) |
construct a batch of points from performing exploration cycles | |
void | evaluate_batch (bool rebuild) |
evaluate batch in parallel and replace liar responses | |
bool | query_batch (bool rebuild) |
perform nonblocking synchronization for parallel evaluation of truth responses and replace liar responses for any completions More... | |
void | backfill_batch (size_t new_acq, size_t new_expl) |
backfill any completed truth response evaluations in case of nonblocking synchronization | |
void | launch_batch () |
launch all jobs in the variables map queues | |
void | launch_single (const Variables &vars_star) |
launch a single job | |
void | process_truth_response_map (const IntResponseMap &truth_resp_map, bool rebuild) |
update approximation data and constraint penalties/multipliers based on new truth data | |
void | update_variable_maps (const IntResponseMap &truth_resp_map) |
update variable map queues based on completed jobs | |
bool | converged () |
check convergence indicators to assess if EGO has converged | |
void | retrieve_final_results () |
post-processing: retrieve and export best samples and responses | |
void | initialize_counters_limits () |
initialize counters and limits used for assessing convergence | |
void | update_convergence_counters (const Variables &vars_star, const Response &resp_star) |
update counters used for assessing convergence | |
void | update_convergence_counters (const Variables &vars_star) |
update counters used for assessing convergence in variables | |
void | update_convergence_counters (const Response &resp_star) |
update counters used for assessing convergence in response | |
void | pop_liar_responses () |
delete all liar responses | |
void | append_liar (const Variables &vars_star, int liar_id, bool rebuild) |
evaluate and append a liar response | |
int | extract_id (IntVarsMCIter it, const IntVariablesMap &map) |
manage special value when iterator has advanced to end | |
void | compute_best_sample () |
determine meritFnStar from among the GP build data for use in EIF More... | |
void | extract_best_sample () |
extract best solution from among the GP build data for final results More... | |
void | extract_qoi_build_data (size_t data_index, RealVector &fn_vals) |
extra response function build data from across the set of QoI | |
Real | augmented_lagrangian (const RealVector &mean) |
helper for evaluating the value of the augmented Lagrangian merit fn | |
void | update_constraints (const RealVector &fn_vals) |
update constraint penalties and multipliers for a single response | |
void | update_constraints (const IntResponseMap &truth_resp_map) |
update constraint penalties and multipliers for a set of responses | |
bool | empty_queues () const |
helper for checking queued jobs in vars{Acquisition,Exploration}Map | |
Real | compute_probability_improvement (const RealVector &means, const RealVector &variances) |
probability improvement (PI) function for the EGO PI acquisition function implementation More... | |
Real | compute_expected_improvement (const RealVector &means, const RealVector &variances) |
expected improvement (EI) function for the EGO EI acquisition function implementation More... | |
Real | compute_lower_confidence_bound (const RealVector &means, const RealVector &variances) |
lower confidence bound (LCB) function for the EGO LCB acquisition function implementation More... | |
Real | compute_variances (const RealVector &variances) |
variance function for the EGO MSE acquisition implementation More... | |
RealVector | expected_violation (const RealVector &means, const RealVector &variances) |
expected violation function for the constraint functions More... | |
void | update_penalty () |
initialize and update the penaltyParameter | |
void | debug_print_values (const Variables &vars) |
print mean and variance if debug flag is ON | |
void | debug_print_dist_counters (Real dist_cv_star) |
print counters if debug flag is ON | |
void | debug_print_eif_counters (Real eif_star) |
print counters if debug flag is ON | |
void | debug_plots () |
DEBUG_PLOTS conditional - output set of samples used to build the GP if problem is 2D. | |
Static Private Member Functions | |
static void | PIF_objective_eval (const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response) |
static function used as the objective function in the Expected Improvement (EIF) problem formulation for EGO More... | |
static void | EIF_objective_eval (const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response) |
static function used as the objective function in the Expected Improvement (EIF) problem formulation for EGO More... | |
static void | LCB_objective_eval (const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response) |
static function used as the objective function in the Lower-Confidence Bound (LCB) problem formulation for EGO More... | |
static void | Variances_objective_eval (const Variables &sub_model_vars, const Variables &recast_vars, const Response &sub_model_response, Response &recast_response) |
Variance formulation for primary. More... | |
Private Attributes | |
Model | fHatModel |
GP model of response, one approximation per response function. | |
Model | approxSubProbModel |
recast model which assimilates either (a) mean and variance to solve the max(EIF) sub-problem (used by EIF_objective_eval()) or (b) variance alone for pure exploration (used by Variances_objective_eval()) | |
Real | meritFnStar |
minimum penalized response from among truth build data | |
RealVector | prevSubProbSoln |
previous solution to EIF approximation sub-problem | |
short | dataOrder |
order of the data used for surrogate construction, in ActiveSet request vector 3-bit format; user may override responses spec | |
int | batchSize |
total batch size for parallel EGO | |
int | batchSizeAcquisition |
number of new sampling points defined from maximizing acquisition function | |
int | batchSizeExploration |
number of new sampling points defined from maximizing posterior variance | |
int | batchEvalId |
counter for incrementing evaluation ids to allow synchronization with iteratedModel ids across acquisition and exploration job queues | |
IntVariablesMap | varsAcquisitionMap |
variable sets for batch evaluation of truth model, accumulated by construct_batch_acquisition() | |
IntVariablesMap | varsExplorationMap |
variable sets for batch evaluation of truth model, accumulated by construct_batch_exploration() | |
bool | parallelFlag |
bool flag if model supports asynchronous parallelism | |
bool | batchAsynch |
algorithm option for fully asynchronous batch updating of the GP | |
Real | distanceTol |
tolerance on distance between consecutive iterates | |
unsigned short | distConvergenceCntr |
counter for consecutive iterates with variable distance < distanceTol | |
unsigned short | distConvergenceLimit |
limit for distance convergence counter | |
unsigned short | eifConvergenceCntr |
counter for consecutive iterates with EIF value < convergenceTol | |
unsigned short | eifConvergenceLimit |
limit for EIF convergence counter | |
unsigned short | globalIterCount |
counter for global iteration | |
Static Private Attributes | |
static EffGlobalMinimizer * | effGlobalInstance |
pointer to the active object instance used within the static evaluator functions in order to avoid the need for static data | |
Additional Inherited Members | |
Static Public Member Functions inherited from Minimizer | |
static Real | sum_squared_residuals (size_t num_pri_fns, const RealVector &residuals, const RealVector &weights) |
return weighted sum of squared residuals | |
static void | print_residuals (size_t num_terms, const RealVector &best_terms, const RealVector &weights, size_t num_best, size_t best_index, std::ostream &s) |
print num_terms residuals and misfit for final results | |
static void | print_model_resp (size_t num_pri_fns, const RealVector &best_fns, size_t num_best, size_t best_index, std::ostream &s) |
print the original user model resp in the case of data transformations | |
static void | print_best_eval_ids (const String &interface_id, const Variables &best_vars, const ActiveSet &active_set, std::ostream &s) |
print best evaluation matching vars and set, or partial matches with matching variables only. More... | |
Protected Member Functions inherited from SurrBasedMinimizer | |
SurrBasedMinimizer (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits) | |
constructor | |
SurrBasedMinimizer (Model &model, size_t max_iter, size_t max_eval, Real conv_tol, std::shared_ptr< TraitsBase > traits) | |
alternate constructor for instantiations "on the fly" | |
~SurrBasedMinimizer () | |
destructor | |
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 | |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
void | initialize_from_model (Model &model) |
helper for shared ctor code | |
void | update_lagrange_multipliers (const RealVector &fn_vals, const RealMatrix &fn_grads, SurrBasedLevelData &tr_data) |
initialize and update Lagrange multipliers for basic Lagrangian More... | |
void | update_augmented_lagrange_multipliers (const RealVector &fn_vals) |
initialize and update the Lagrange multipliers for augmented Lagrangian More... | |
void | initialize_filter (SurrBasedLevelData &tr_data, const RealVector &fn_vals) |
(re-)initialize filter from a set of function values | |
bool | update_filter (SurrBasedLevelData &tr_data, const RealVector &fn_vals) |
update filter using a new set of function values More... | |
Real | lagrangian_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts) |
compute a Lagrangian function from a set of function values More... | |
void | lagrangian_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealVector &lag_grad) |
compute the gradient of the Lagrangian function | |
void | lagrangian_hessian (const RealVector &fn_vals, const RealMatrix &fn_grads, const RealSymMatrixArray &fn_hessians, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealSymMatrix &lag_hess) |
compute the Hessian of the Lagrangian function | |
Real | augmented_lagrangian_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts) |
compute an augmented Lagrangian function from a set of function values More... | |
void | augmented_lagrangian_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealVector &alag_grad) |
compute the gradient of the augmented Lagrangian function | |
void | augmented_lagrangian_hessian (const RealVector &fn_vals, const RealMatrix &fn_grads, const RealSymMatrixArray &fn_hessians, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealSymMatrix &alag_hess) |
compute the Hessian of the augmented Lagrangian function | |
Real | penalty_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts) |
compute a penalty function from a set of function values More... | |
void | penalty_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, RealVector &pen_grad) |
compute the gradient of the penalty function | |
Real | constraint_violation (const RealVector &fn_vals, const Real &constraint_tol) |
compute the constraint violation from a set of function values More... | |
Protected Member Functions inherited from Minimizer | |
Minimizer (std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
default constructor | |
Minimizer (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
standard constructor More... | |
Minimizer (unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
Minimizer (unsigned short method_name, size_t num_lin_ineq, size_t num_lin_eq, size_t num_nln_ineq, size_t num_nln_eq, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
Minimizer (Model &model, size_t max_iter, size_t max_eval, Real conv_tol, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
~Minimizer () | |
destructor | |
void | update_from_model (const Model &model) |
set inherited data attributes based on extractions from incoming model | |
void | initialize_run () |
utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers More... | |
void | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More... | |
Model | original_model (unsigned short recasts_left=0) const |
Return a shallow copy of the original model this Iterator was originally passed, optionally leaving recasts_left on top of it. | |
void | data_transform_model () |
Wrap iteratedModel in a RecastModel that subtracts provided observed data from the primary response functions (variables and secondary responses are unchanged) More... | |
void | scale_model () |
Wrap iteratedModel in a RecastModel that performs variable and/or response scaling. More... | |
Real | objective (const RealVector &fn_vals, const BoolDeque &max_sense, const RealVector &primary_wts) const |
compute a composite objective value from one or more primary functions More... | |
Real | objective (const RealVector &fn_vals, size_t num_fns, const BoolDeque &max_sense, const RealVector &primary_wts) const |
compute a composite objective with specified number of source primary functions, instead of userPrimaryFns More... | |
void | objective_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &max_sense, const RealVector &primary_wts, RealVector &obj_grad) const |
compute the gradient of the composite objective function | |
void | objective_gradient (const RealVector &fn_vals, size_t num_fns, const RealMatrix &fn_grads, const BoolDeque &max_sense, const RealVector &primary_wts, RealVector &obj_grad) const |
compute the gradient of the composite objective function More... | |
void | objective_hessian (const RealVector &fn_vals, const RealMatrix &fn_grads, const RealSymMatrixArray &fn_hessians, const BoolDeque &max_sense, const RealVector &primary_wts, RealSymMatrix &obj_hess) const |
compute the Hessian of the composite objective function | |
void | objective_hessian (const RealVector &fn_vals, size_t num_fns, const RealMatrix &fn_grads, const RealSymMatrixArray &fn_hessians, const BoolDeque &max_sense, const RealVector &primary_wts, RealSymMatrix &obj_hess) const |
compute the Hessian of the composite objective function More... | |
virtual void | archive_best_results () |
top-level archival method | |
void | archive_best_variables (const bool active_only=false) const |
archive best variables for the index'th final solution | |
void | archive_best_objective_functions () const |
archive the index'th set of objective functions | |
void | archive_best_constraints () const |
archive the index'th set of constraints | |
void | archive_best_residuals () const |
Archive residuals when calibration terms are used. | |
void | resize_best_vars_array (size_t newsize) |
Safely resize the best variables array to newsize taking into account the envelope-letter design pattern and any recasting. More... | |
void | resize_best_resp_array (size_t newsize) |
Safely resize the best response array to newsize taking into account the envelope-letter design pattern and any recasting. More... | |
bool | local_recast_retrieve (const Variables &vars, Response &response) const |
infers MOO/NLS solution from the solution of a single-objective optimizer and returns true if lookup succeeds More... | |
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... | |
Iterator (NoDBBaseConstructor, Model &model, size_t max_iter, size_t max_eval, Real conv_tol, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor for instantiations without ProblemDescDB More... | |
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... | |
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 SurrBasedMinimizer | |
Iterator | approxSubProbMinimizer |
the minimizer used on the surrogate model to solve the approximate subproblem on each surrogate-based iteration | |
size_t | globalIterCount |
global iteration counter corresponding to number of surrogate-based minimizations | |
RealVector | lagrangeMult |
Lagrange multipliers for basic Lagrangian calculations. | |
RealVector | augLagrangeMult |
Lagrange multipliers for augmented Lagrangian calculations. | |
Real | penaltyParameter |
the penalization factor for violated constraints used in quadratic penalty calculations; increased in update_penalty() | |
RealVector | origNonlinIneqLowerBnds |
original nonlinear inequality constraint lower bounds (no relaxation) | |
RealVector | origNonlinIneqUpperBnds |
original nonlinear inequality constraint upper bounds (no relaxation) | |
RealVector | origNonlinEqTargets |
original nonlinear equality constraint targets (no relaxation) | |
Real | eta |
constant used in etaSequence updates | |
Real | alphaEta |
power for etaSequence updates when updating penalty | |
Real | betaEta |
power for etaSequence updates when updating multipliers | |
Real | etaSequence |
decreasing sequence of allowable constraint violation used in augmented Lagrangian updates (refer to Conn, Gould, and Toint, section 14.4) | |
size_t | miPLIndex |
index for the active ParallelLevel within ParallelConfiguration::miPLIters | |
Protected Attributes inherited from Minimizer | |
size_t | numFunctions |
number of response functions | |
size_t | numContinuousVars |
number of active continuous vars | |
size_t | numDiscreteIntVars |
number of active discrete integer vars | |
size_t | numDiscreteStringVars |
number of active discrete string vars | |
size_t | numDiscreteRealVars |
number of active discrete real vars | |
Real | constraintTol |
optimizer/least squares constraint tolerance | |
Real | bigRealBoundSize |
cutoff value for inequality constraint and continuous variable bounds | |
int | bigIntBoundSize |
cutoff value for discrete variable bounds | |
size_t | numNonlinearIneqConstraints |
number of nonlinear inequality constraints | |
size_t | numNonlinearEqConstraints |
number of nonlinear equality constraints | |
size_t | numLinearIneqConstraints |
number of linear inequality constraints | |
size_t | numLinearEqConstraints |
number of linear equality constraints | |
size_t | numNonlinearConstraints |
total number of nonlinear constraints | |
size_t | numLinearConstraints |
total number of linear constraints | |
size_t | numConstraints |
total number of linear and nonlinear constraints | |
bool | optimizationFlag |
flag for use where optimization and NLS must be distinguished | |
size_t | numUserPrimaryFns |
number of objective functions or least squares terms in the inbound model; always initialize at Minimizer, even if overridden later | |
size_t | numIterPrimaryFns |
number of objective functions or least squares terms in iterator's view, after transformations; always initialize at Minimizer, even if overridden later | |
bool | boundConstraintFlag |
convenience flag for denoting the presence of user-specified bound constraints. Used for method selection and error checking. | |
bool | speculativeFlag |
flag for speculative gradient evaluations | |
bool | calibrationDataFlag |
flag indicating whether user-supplied calibration data is active | |
ExperimentData | expData |
Container for experimental data to which to calibrate model using least squares or other formulations which minimize SSE. | |
size_t | numExperiments |
number of experiments | |
size_t | numTotalCalibTerms |
number of total calibration terms (sum over experiments of number of experimental data per experiment, including field data) | |
Model | dataTransformModel |
Shallow copy of the data transformation model, when present (cached in case further wrapped by other transformations) | |
bool | scaleFlag |
whether Iterator-level scaling is active | |
Model | scalingModel |
Shallow copy of the scaling transformation model, when present (cached in case further wrapped by other transformations) | |
Minimizer * | prevMinInstance |
pointer containing previous value of minimizerInstance | |
bool | vendorNumericalGradFlag |
convenience flag for gradient_type == numerical && method_source == vendor | |
std::shared_ptr< TPLDataTransfer > | dataTransferHandler |
Emerging helper class for handling data transfers to/from Dakota and the underlying TPL. | |
Protected Attributes inherited from Iterator | |
ProblemDescDB & | probDescDB |
class member reference to the problem description database More... | |
ParallelLibrary & | parallelLib |
class member reference to the parallel library | |
ParConfigLIter | methodPCIter |
the active ParallelConfiguration used by this Iterator instance | |
Model | iteratedModel |
the model to be iterated (for iterators and meta-iterators employing a single model instance) | |
size_t | myModelLayers |
number of Models locally (in Iterator or derived classes) wrapped around the initially passed in Model | |
unsigned short | methodName |
name of the iterator (the user's method spec) | |
Real | convergenceTol |
iteration convergence tolerance | |
size_t | maxIterations |
maximum number of iterations for the method | |
size_t | maxFunctionEvals |
maximum number of fn evaluations for the method | |
int | maxEvalConcurrency |
maximum number of concurrent model evaluations More... | |
ActiveSet | activeSet |
the response data requirements on each function evaluation | |
size_t | numFinalSolutions |
number of solutions to retain in best variables/response arrays | |
VariablesArray | bestVariablesArray |
collection of N best solution variables found during the study; always in context of Model originally passed to the Iterator (any in-flight Recasts must be undone) | |
ResponseArray | bestResponseArray |
collection of N best solution responses found during the study; always in context of Model originally passed to the Iterator (any in-flight Recasts must be undone) | |
bool | subIteratorFlag |
flag indicating if this Iterator is a sub-iterator (NestedModel::subIterator or DataFitSurrModel::daceIterator) | |
short | outputLevel |
output verbosity level: {SILENT,QUIET,NORMAL,VERBOSE,DEBUG}_OUTPUT | |
bool | summaryOutputFlag |
flag for summary output (evaluation stats, final results); default true, but false for on-the-fly (helper) iterators and sub-iterator use cases | |
ResultsManager & | resultsDB |
reference to the global iterator results database | |
EvaluationStore & | evaluationsDB |
reference to the global evaluation database | |
EvaluationsDBState | evaluationsDBState |
State of evaluations DB for this iterator. | |
ResultsNames | resultsNames |
valid names for iterator results | |
std::shared_ptr< TraitsBase > | methodTraits |
pointer that retains shared ownership of a TraitsBase object, or child thereof | |
bool | topLevel |
Whether this is the top level iterator. | |
bool | exportSurrogate = false |
whether to export final surrogates | |
String | surrExportPrefix |
base filename for exported surrogates | |
unsigned short | surrExportFormat = NO_MODEL_FORMAT |
(bitwise) format(s) to export | |
Static Protected Attributes inherited from Minimizer | |
static Minimizer * | minimizerInstance |
pointer to Minimizer used in static member functions | |
The EffGlobalMinimizer class provides an implementation of the Efficient Global Optimization algorithm developed by Jones, Schonlau, & Welch as well as adaptation of the concept to nonlinear least squares.
|
virtual |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori
pre-run phase, which a derived iterator may optionally reimplement; when not present, pre-run is likely integrated into the derived run function. This is a virtual function; when re-implementing, a derived class must call its nearest parent's pre_run(), if implemented, typically before performing its own implementation steps.
Reimplemented from Iterator.
References EffGlobalMinimizer::approxSubProbModel, EffGlobalMinimizer::check_parallelism(), EffGlobalMinimizer::initialize_counters_limits(), Model::initialize_mapping(), Iterator::methodPCIter, and SurrBasedMinimizer::miPLIndex.
|
virtual |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
Virtual run function for the iterator class hierarchy. All derived classes need to redefine it.
Reimplemented from Iterator.
References EffGlobalMinimizer::batch_asynchronous_ego(), EffGlobalMinimizer::batch_synchronous_ego(), EffGlobalMinimizer::batchAsynch, EffGlobalMinimizer::build_gp(), and EffGlobalMinimizer::effGlobalInstance.
|
virtual |
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
Post-run phase, which a derived iterator may optionally reimplement; when not present, post-run is likely integrated into run. This is a virtual function; when re-implementing, a derived class must call its nearest parent's post_run(), typically after performing its own implementation steps.
Reimplemented from Minimizer.
References EffGlobalMinimizer::approxSubProbModel, Model::finalize_mapping(), Minimizer::post_run(), and EffGlobalMinimizer::retrieve_final_results().
|
inlinevirtual |
default definition that gets redefined in selected derived Minimizers
Reimplemented from Minimizer.
References EffGlobalMinimizer::fHatModel.
|
private |
perform nonblocking synchronization for parallel evaluation of truth responses and replace liar responses for any completions
query running jobs and process any new completions
References Model::component_parallel_mode(), EffGlobalMinimizer::empty_queues(), EffGlobalMinimizer::fHatModel, Iterator::iteratedModel, EffGlobalMinimizer::process_truth_response_map(), Model::synchronize_nowait(), and EffGlobalMinimizer::update_variable_maps().
Referenced by EffGlobalMinimizer::batch_asynchronous_ego().
|
private |
determine meritFnStar from among the GP build data for use in EIF
Extract the best merit function from build data through evaluaton of points on fHatModel. This merit fn value is used within the EIF during an approximate sub-problem solve.
References Model::approximation_data(), EffGlobalMinimizer::augmented_lagrangian(), Model::continuous_variables(), Model::current_response(), Model::evaluate(), EffGlobalMinimizer::fHatModel, Response::function_values(), EffGlobalMinimizer::meritFnStar, and Minimizer::numFunctions.
Referenced by EffGlobalMinimizer::construct_batch_acquisition().
|
private |
extract best solution from among the GP build data for final results
Extract the best point from the build data for final results reporting.
References Model::approximation_data(), EffGlobalMinimizer::augmented_lagrangian(), Iterator::bestResponseArray, Iterator::bestVariablesArray, EffGlobalMinimizer::extract_qoi_build_data(), EffGlobalMinimizer::fHatModel, and Minimizer::numFunctions.
Referenced by EffGlobalMinimizer::retrieve_final_results().
|
private |
probability improvement (PI) function for the EGO PI acquisition function implementation
Compute the PI acquisition function
References SurrBasedMinimizer::augLagrangeMult, EffGlobalMinimizer::expected_violation(), Iterator::iteratedModel, EffGlobalMinimizer::meritFnStar, Minimizer::numNonlinearConstraints, Minimizer::objective(), SurrBasedMinimizer::penaltyParameter, Model::primary_response_fn_sense(), and Model::primary_response_fn_weights().
Referenced by EffGlobalMinimizer::PIF_objective_eval().
|
private |
expected improvement (EI) function for the EGO EI acquisition function implementation
Compute the EI acquisition function
References SurrBasedMinimizer::augLagrangeMult, EffGlobalMinimizer::expected_violation(), Iterator::iteratedModel, EffGlobalMinimizer::meritFnStar, Minimizer::numNonlinearConstraints, Minimizer::objective(), SurrBasedMinimizer::penaltyParameter, Model::primary_response_fn_sense(), and Model::primary_response_fn_weights().
Referenced by EffGlobalMinimizer::debug_plots(), and EffGlobalMinimizer::EIF_objective_eval().
|
private |
lower confidence bound (LCB) function for the EGO LCB acquisition function implementation
Compute the LCB acquisition function
References SurrBasedMinimizer::augLagrangeMult, EffGlobalMinimizer::expected_violation(), Iterator::iteratedModel, Minimizer::numNonlinearConstraints, Minimizer::objective(), SurrBasedMinimizer::penaltyParameter, Model::primary_response_fn_sense(), and Model::primary_response_fn_weights().
Referenced by EffGlobalMinimizer::LCB_objective_eval().
|
private |
variance function for the EGO MSE acquisition implementation
Compute the variances
Referenced by EffGlobalMinimizer::Variances_objective_eval().
|
private |
expected violation function for the constraint functions
Compute the expected violation for constraints
References Minimizer::bigRealBoundSize, Minimizer::numNonlinearConstraints, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, SurrBasedMinimizer::origNonlinEqTargets, SurrBasedMinimizer::origNonlinIneqLowerBnds, and SurrBasedMinimizer::origNonlinIneqUpperBnds.
Referenced by EffGlobalMinimizer::compute_expected_improvement(), EffGlobalMinimizer::compute_lower_confidence_bound(), EffGlobalMinimizer::compute_probability_improvement(), and EffGlobalMinimizer::debug_print_values().
|
staticprivate |
static function used as the objective function in the Expected Improvement (EIF) problem formulation for EGO
To maximize expected improvement (PI), the approxSubProbMinimizer will minimize -(compute_probability_improvement).
References Response::active_set_request_vector(), Model::approximation_variances(), EffGlobalMinimizer::compute_probability_improvement(), EffGlobalMinimizer::effGlobalInstance, EffGlobalMinimizer::fHatModel, Response::function_value(), and Response::function_values().
|
staticprivate |
static function used as the objective function in the Expected Improvement (EIF) problem formulation for EGO
To maximize expected improvement (EI), the approxSubProbMinimizer will minimize -(compute_expected_improvement).
References Response::active_set_request_vector(), Model::approximation_variances(), EffGlobalMinimizer::compute_expected_improvement(), EffGlobalMinimizer::effGlobalInstance, EffGlobalMinimizer::fHatModel, Response::function_value(), and Response::function_values().
Referenced by EffGlobalMinimizer::construct_batch_acquisition().
|
staticprivate |
static function used as the objective function in the Lower-Confidence Bound (LCB) problem formulation for EGO
To maximize lower confidence bound (LCB), the approxSubProbMinimizer will minimize -(compute_lower_confidence_bound).
References Response::active_set_request_vector(), Model::approximation_variances(), EffGlobalMinimizer::compute_lower_confidence_bound(), EffGlobalMinimizer::effGlobalInstance, EffGlobalMinimizer::fHatModel, Response::function_value(), and Response::function_values().
|
staticprivate |
Variance formulation for primary.
To maximize variances, the approxSubProbMinimizer will minimize -(variances).
References Response::active_set_request_vector(), Model::approximation_variances(), EffGlobalMinimizer::compute_variances(), EffGlobalMinimizer::effGlobalInstance, EffGlobalMinimizer::fHatModel, and Response::function_value().
Referenced by EffGlobalMinimizer::construct_batch_exploration().