![]() |
Dakota
Version 6.15
Explore and Predict with Confidence
|
Perform Approximate Control Variate Monte Carlo sampling for UQ. More...
Public Member Functions | |
NonDMultifidelitySampling (ProblemDescDB &problem_db, Model &model) | |
standard constructor More... | |
~NonDMultifidelitySampling () | |
destructor | |
![]() | |
NonDNonHierarchSampling (ProblemDescDB &problem_db, Model &model) | |
standard constructor More... | |
~NonDNonHierarchSampling () | |
destructor | |
![]() | |
NonDEnsembleSampling (ProblemDescDB &problem_db, Model &model) | |
standard constructor More... | |
~NonDEnsembleSampling () | |
destructor (virtual declaration should be redundant with ~Iterator, but this is top of MLMF diamond so doesn't hurt to be explicit) | |
bool | resize () |
reinitializes iterator based on new variable size | |
![]() | |
NonDSampling (Model &model, const RealMatrix &sample_matrix) | |
alternate constructor for evaluating and computing statistics for the provided set of samples More... | |
~NonDSampling () | |
destructor | |
void | compute_statistics (const RealMatrix &vars_samples, const IntResponseMap &resp_samples) |
For the input sample set, computes mean, standard deviation, and probability/reliability/response levels (aleatory uncertainties) or intervals (epsitemic or mixed uncertainties) | |
void | compute_intervals (RealRealPairArray &extreme_fns) |
called by compute_statistics() to calculate min/max intervals using allResponses | |
void | compute_intervals (const IntResponseMap &samples) |
called by compute_statistics() to calculate extremeValues from samples | |
void | compute_intervals (RealRealPairArray &extreme_fns, const IntResponseMap &samples) |
called by compute_statistics() to calculate min/max intervals using samples | |
void | compute_moments (const RealVectorArray &fn_samples) |
calculates sample moments from a matrix of observations for a set of QoI | |
void | compute_moments (const IntResponseMap &samples) |
calculate sample moments and confidence intervals from a map of response observations | |
void | compute_moments (const IntResponseMap &samples, RealMatrix &moment_stats, RealMatrix &moment_grads, RealMatrix &moment_conf_ints, short moments_type, const StringArray &labels) |
convert IntResponseMap to RealVectorArray and invoke helpers | |
void | compute_moment_gradients (const RealVectorArray &fn_samples, const RealMatrixArray &grad_samples, const RealMatrix &moment_stats, RealMatrix &moment_grads, short moments_type) |
compute moment_grads from function and gradient samples | |
void | compute_moment_confidence_intervals (const RealMatrix &moment_stats, RealMatrix &moment_conf_ints, const SizetArray &sample_counts, short moments_type) |
compute moment confidence intervals from moment values | |
void | archive_moments (size_t inc_id=0) |
archive moment statistics in results DB | |
void | archive_moment_confidence_intervals (size_t inc_id=0) |
archive moment confidence intervals in results DB | |
void | archive_extreme_responses (size_t inc_id=0) |
archive extreme values (epistemic result) in results DB | |
void | compute_level_mappings (const IntResponseMap &samples) |
called by compute_statistics() to calculate CDF/CCDF mappings of z to p/beta and of p/beta to z as well as PDFs More... | |
void | print_statistics (std::ostream &s) const |
prints the statistics computed in compute_statistics() | |
void | print_intervals (std::ostream &s) const |
prints the intervals computed in compute_intervals() with default qoi_type and moment_labels | |
void | print_intervals (std::ostream &s, String qoi_type, const StringArray &interval_labels) const |
prints the intervals computed in compute_intervals() | |
void | print_moments (std::ostream &s) const |
prints the moments computed in compute_moments() with default qoi_type and moment_labels | |
void | print_moments (std::ostream &s, String qoi_type, const StringArray &moment_labels) const |
prints the moments computed in compute_moments() | |
void | print_wilks_stastics (std::ostream &s) const |
prints the Wilks stastics | |
void | update_final_statistics () |
update finalStatistics from minValues/maxValues, momentStats, and computedProbLevels/computedRelLevels/computedRespLevels | |
void | transform_samples (Pecos::ProbabilityTransformation &nataf, bool x_to_u=true) |
transform allSamples imported by alternate constructor. This is needed since random variable distribution parameters are not updated until run time and an imported sample_matrix is typically in x-space. More... | |
void | transform_samples (Pecos::ProbabilityTransformation &nataf, RealMatrix &sample_matrix, int num_samples=0, bool x_to_u=true) |
transform the specified samples matrix from x to u or u to x | |
unsigned short | sampling_scheme () const |
return sampleType | |
const String & | random_number_generator () const |
return rngName | |
![]() | |
void | requested_levels (const RealVectorArray &req_resp_levels, const RealVectorArray &req_prob_levels, const RealVectorArray &req_rel_levels, const RealVectorArray &req_gen_rel_levels, short resp_lev_tgt, short resp_lev_tgt_reduce, bool cdf_flag, bool pdf_output) |
set requestedRespLevels, requestedProbLevels, requestedRelLevels, requestedGenRelLevels, respLevelTarget, cdfFlag, and pdfOutput (used in combination with alternate ctors) | |
void | print_level_mappings (std::ostream &s) const |
prints the z/p/beta/beta* mappings reflected in {requested,computed}{Resp,Prob,Rel,GenRel}Levels for default qoi_type and qoi_labels | |
void | print_level_mappings (std::ostream &s, String qoi_type, const StringArray &qoi_labels) const |
prints the z/p/beta/beta* mappings reflected in {requested,computed}{Resp,Prob,Rel,GenRel}Levels More... | |
void | print_level_mappings (std::ostream &s, const RealVector &level_maps, bool moment_offset, const String &prepend="") |
print level mapping statistics using optional pre-pend More... | |
bool | pdf_output () const |
get pdfOutput | |
void | pdf_output (bool output) |
set pdfOutput | |
short | final_moments_type () const |
get finalMomentsType | |
void | final_moments_type (short type) |
set finalMomentsType | |
![]() | |
const VariablesArray & | all_variables () |
return the complete set of evaluated variables | |
const RealMatrix & | all_samples () |
return the complete set of evaluated samples | |
const IntResponseMap & | all_responses () const |
return the complete set of computed responses | |
![]() | |
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 | derived_free_communicators (ParLevLIter pl_iter) |
derived class contributions to freeing the communicators associated with this Iterator instance | |
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 bool | accepts_multiple_points () const |
indicates if this iterator accepts multiple initial 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 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 void | sampling_increment () |
increment to next in sequence of refinement samples | |
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 | 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 (const bool &tflag) |
Set the iterator's top level flag. | |
Protected Member Functions | |
void | core_run () |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
print the final iterator results More... | |
void | print_variance_reduction (std::ostream &s) |
void | multifidelity_mc () |
void | multifidelity_mc_offline_pilot () |
void | multifidelity_mc_pilot_projection () |
void | approx_increments (IntRealMatrixMap &sum_L_baseline, IntRealVectorMap &sum_H, IntRealMatrixMap &sum_LL, IntRealMatrixMap &sum_LH, const Sizet2DArray &N_L_baseline, const Sizet2DArray &N_LH, const RealMatrix &eval_ratios, const RealVector &hf_targets) |
bool | approx_increment (const RealMatrix &eval_ratios, const Sizet2DArray &N_L_refined, const RealVector &hf_targets, size_t iter, size_t start, size_t end) |
void | update_hf_targets (const RealMatrix &eval_ratios, const RealVector &cost, RealVector &hf_targets) |
void | update_hf_targets (const RealMatrix &rho2_LH, const RealMatrix &eval_ratios, const RealVector &var_H, const RealVector &mse_iter0, RealVector &mse_ratios, RealVector &hf_targets) |
void | update_projected_samples (const RealVector &hf_targets, const RealMatrix &eval_ratios, SizetArray &N_H_projected, Sizet2DArray &N_L_projected) |
void | compute_mse_ratios (const RealMatrix &rho2_LH, const RealMatrix &eval_ratios, RealVector &mse_ratios) |
void | compute_mse_ratios (const RealMatrix &rho2_LH, const SizetArray &N_H, const RealVector &hf_targets, const RealMatrix &eval_ratios, RealVector &mse_ratios) |
![]() | |
void | pre_run () |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori More... | |
void | shared_increment (size_t iter) |
void | shared_approx_increment (size_t iter) |
void | assign_active_key (size_t num_steps, size_t secondary_index, bool multilev) |
void | initialize_sums (IntRealMatrixMap &sum_L_baseline, IntRealVectorMap &sum_H, IntRealMatrixMap &sum_LH, RealVector &sum_HH) |
void | initialize_counts (Sizet2DArray &num_L_baseline, SizetArray &num_H, Sizet2DArray &num_LH) |
void | finalize_counts (Sizet2DArray &N_L) |
void | ensemble_sample_increment (size_t iter, size_t step) |
void | increment_samples (SizetArray &N_l, size_t num_samples) |
void | increment_equivalent_cost (size_t new_samp, const RealVector &cost, size_t start, size_t end) |
void | compute_variance (Real sum_Q, Real sum_QQ, size_t num_Q, Real &var_Q) |
void | compute_variance (const RealVector &sum_Q, const RealVector &sum_QQ, const SizetArray &num_Q, RealVector &var_Q) |
void | compute_correlation (Real sum_Q1, Real sum_Q2, Real sum_Q1Q1, Real sum_Q1Q2, Real sum_Q2Q2, size_t num_Q1, size_t num_Q2, size_t num_Q1Q2, Real &var_Q2, Real &rho2_Q1Q2) |
void | compute_covariance (Real sum_Q1, Real sum_Q2, Real sum_Q1Q2, size_t num_Q1, size_t num_Q2, size_t num_Q1Q2, Real &cov_Q1Q2) |
void | mfmc_eval_ratios (const RealMatrix &rho2_LH, const RealVector &cost, RealMatrix &eval_ratios) |
void | apply_control (Real sum_L_shared, size_t num_shared, Real sum_L_refined, size_t num_refined, Real beta, Real &H_raw_mom) |
![]() | |
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 | aggregated_models_mode () |
synchronize iteratedModel and activeSet on AGGREGATED_MODELS mode | |
void | bypass_surrogate_mode () |
synchronize iteratedModel and activeSet on BYPASS_SURROGATE mode | |
void | assign_specification_sequence (size_t index) |
advance any sequence specifications | |
int | random_seed (size_t index) const |
extract current random seed from randomSeedSeqSpec More... | |
void | compute_mc_estimator_variance (const RealVector &var_l, const SizetArray &N_l, RealVector &mc_est_var) |
compute the variance of the mean estimator (Monte Carlo sample average) | |
void | project_mc_estimator_variance (const RealVector &var_l, const SizetArray &N_l, size_t new_samp, RealVector &mc_est_var) |
compute the variance of the mean estimator (Monte Carlo sample average) after projection with additional samples (var_l remains fixed) | |
void | export_all_samples (String root_prepend, const Model &model, size_t iter, size_t step) |
export allSamples to tagged tabular file | |
void | convert_moments (const RealMatrix &raw_mom, RealMatrix &final_mom) |
convert uncentered raw moments (multilevel expectations) to standardized moments | |
Real | sum (const Real *vec, size_t vec_len) const |
compute sum of a set of observations | |
Real | average (const Real *vec, size_t vec_len) const |
compute average of a set of observations | |
Real | average (const RealVector &vec) const |
compute average of a set of observations | |
Real | average (const SizetArray &sa) const |
compute average of a set of observations | |
void | average (const RealMatrix &mat, size_t avg_index, RealVector &avg_vec) const |
compute row-averages for each column or column-averages for each row | |
![]() | |
NonDSampling (ProblemDescDB &problem_db, Model &model) | |
constructor More... | |
NonDSampling (unsigned short method_name, Model &model, unsigned short sample_type, int samples, int seed, const String &rng, bool vary_pattern, short sampling_vars_mode) | |
alternate constructor for sample generation and evaluation "on the fly" More... | |
NonDSampling (unsigned short sample_type, int samples, int seed, const String &rng, const RealVector &lower_bnds, const RealVector &upper_bnds) | |
alternate constructor for sample generation "on the fly" More... | |
NonDSampling (unsigned short sample_type, int samples, int seed, const String &rng, const RealVector &means, const RealVector &std_devs, const RealVector &lower_bnds, const RealVector &upper_bnds, RealSymMatrix &correl) | |
alternate constructor for sample generation of correlated normals "on the fly" More... | |
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 () |
int | num_samples () const |
void | sampling_reset (int min_samples, bool all_data_flag, bool stats_flag) |
resets number of samples and sampling flags More... | |
void | sampling_reference (int samples_ref) |
set reference number of samples, which is a lower bound during reset | |
void | random_seed (int seed) |
assign randomSeed | |
void | vary_pattern (bool pattern_flag) |
set varyPattern | |
void | get_parameter_sets (Model &model) |
Uses lhsDriver to generate a set of samples from the distributions/bounds defined in the incoming model. More... | |
void | get_parameter_sets (Model &model, const int num_samples, RealMatrix &design_matrix) |
Uses lhsDriver to generate a set of samples from the distributions/bounds defined in the incoming model and populates the specified design matrix. More... | |
void | get_parameter_sets (Model &model, const int num_samples, RealMatrix &design_matrix, bool write_msg) |
core of get_parameter_sets that accepts message print control | |
void | get_parameter_sets (const RealVector &lower_bnds, const RealVector &upper_bnds) |
Uses lhsDriver to generate a set of uniform samples over lower_bnds/upper_bnds. More... | |
void | get_parameter_sets (const RealVector &means, const RealVector &std_devs, const RealVector &lower_bnds, const RealVector &upper_bnds, RealSymMatrix &correl) |
Uses lhsDriver to generate a set of normal samples. More... | |
void | update_model_from_sample (Model &model, const Real *sample_vars) |
Override default update of continuous vars only. | |
void | sample_to_variables (const Real *sample_vars, Variables &vars) |
override default mapping of continuous variables only | |
void | variables_to_sample (const Variables &vars, Real *sample_vars) |
override default mapping of continuous variables only | |
const RealVector & | response_error_estimates () const |
return error estimates associated with each of the finalStatistics | |
void | initialize_lhs (bool write_message, int num_samples) |
increments numLHSRuns, sets random seed, and initializes lhsDriver | |
void | active_set_mapping () |
in the case of sub-iteration, map from finalStatistics.active_set() requests to activeSet used in evaluate_parameter_sets() More... | |
void | mode_counts (const Variables &vars, size_t &cv_start, size_t &num_cv, size_t &div_start, size_t &num_div, size_t &dsv_start, size_t &num_dsv, size_t &drv_start, size_t &num_drv) const |
compute sampled subsets (all, active, uncertain) within all variables (acv/adiv/adrv) from samplingVarsMode and model More... | |
void | mode_bits (const Variables &vars, BitArray &active_vars, BitArray &active_corr) const |
define subset views for sampling modes | |
![]() | |
NonD (ProblemDescDB &problem_db, Model &model) | |
constructor | |
NonD (unsigned short method_name, Model &model) | |
alternate constructor for sample generation and evaluation "on the fly" | |
NonD (unsigned short method_name, const RealVector &lower_bnds, const RealVector &upper_bnds) | |
alternate constructor for sample generation "on the fly" | |
~NonD () | |
destructor | |
void | derived_set_communicators (ParLevLIter pl_iter) |
derived class contributions to setting the communicators associated with this Iterator instance | |
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... | |
const Response & | response_results () const |
return the final statistics from the nondeterministic iteration | |
void | response_results_active_set (const ActiveSet &set) |
set the active set within finalStatistics | |
virtual void | initialize_response_covariance () |
initializes respCovariance | |
virtual void | initialize_final_statistics () |
initializes finalStatistics for storing NonD final results More... | |
void | pull_level_mappings (RealVector &level_maps, size_t offset) |
concatenate computed{Resp,Prob,Rel,GenRel}Levels into level_maps | |
void | push_level_mappings (const RealVector &level_maps, size_t offset) |
update computed{Resp,Prob,Rel,GenRel}Levels from level_maps | |
void | configure_sequence (size_t &num_steps, size_t &fixed_index, short &seq_type) |
configure fidelity/level counts from model hierarchy More... | |
void | configure_cost (unsigned short num_steps, bool multilevel, RealVector &cost) |
extract cost estimates from model hierarchy (forms or resolutions) | |
bool | query_cost (unsigned short num_steps, bool multilevel, RealVector &cost) |
extract cost estimates from model hierarchy, if available | |
void | load_pilot_sample (const SizetArray &pilot_spec, size_t num_steps, SizetArray &delta_N_l) |
distribute pilot sample specification across model forms or levels | |
void | load_pilot_sample (const SizetArray &pilot_spec, const Sizet3DArray &N_l, Sizet2DArray &delta_N_l) |
distribute pilot sample specification across model forms and levels | |
void | inflate_final_samples (const Sizet2DArray &N_l_2D, bool multilev, size_t fixed_index, Sizet3DArray &N_l_3D) |
update the relevant slice of N_l_3D from the final 2D multilevel or 2D multifidelity sample profile | |
void | resize_final_statistics_gradients () |
resizes finalStatistics::functionGradients based on finalStatistics ASV | |
void | update_aleatory_final_statistics () |
update finalStatistics::functionValues from momentStats and computed{Prob,Rel,GenRel,Resp}Levels | |
void | update_system_final_statistics () |
update system metrics from component metrics within finalStatistics | |
void | update_system_final_statistics_gradients () |
update finalStatistics::functionGradients | |
void | initialize_level_mappings () |
size computed{Resp,Prob,Rel,GenRel}Levels | |
void | compute_densities (const RealRealPairArray &min_max_fns, bool prob_refinement=false, bool all_levels_computed=false) |
compute the PDF bins from the CDF/CCDF values and store in computedPDF{Abscissas,Ordinates} More... | |
void | print_densities (std::ostream &s) const |
output the PDFs reflected in computedPDF{Abscissas,Ordinates} using default qoi_type and pdf_labels | |
void | print_densities (std::ostream &s, String qoi_type, const StringArray &pdf_labels) const |
output the PDFs reflected in computedPDF{Abscissas,Ordinates} | |
void | print_system_mappings (std::ostream &s) const |
print system series/parallel mappings for response levels | |
void | print_multilevel_evaluation_summary (std::ostream &s, const SizetArray &N_samp) |
print evaluation summary for multilevel sampling across 1D profile | |
void | print_multilevel_evaluation_summary (std::ostream &s, const Sizet2DArray &N_samp) |
print evaluation summary for multilevel sampling across 2D profile | |
void | print_multilevel_evaluation_summary (std::ostream &s, const Sizet3DArray &N_samp, String type="Final") |
print evaluation summary for multilevel sampling across 3D profile | |
void | construct_lhs (Iterator &u_space_sampler, Model &u_model, unsigned short sample_type, int num_samples, int seed, const String &rng, bool vary_pattern, short sampling_vars_mode=ACTIVE) |
assign a NonDLHSSampling instance within u_space_sampler | |
unsigned short | sub_optimizer_select (unsigned short requested_sub_method, unsigned short default_sub_method=SUBMETHOD_SQP) |
utility for vetting sub-method request against optimizers within the package configuration | |
size_t | one_sided_delta (Real current, Real target) |
compute a one-sided sample increment for multilevel methods to move current sampling level to a new target | |
size_t | one_sided_delta (const SizetArray ¤t, const RealVector &targets, size_t power) |
compute a one-sided sample increment for multilevel methods to move current sampling level to a new target | |
void | archive_allocate_mappings () |
allocate results array storage for distribution mappings | |
void | archive_from_resp (size_t fn_index, size_t inc_id=0) |
archive the mappings from specified response levels for specified fn | |
void | archive_to_resp (size_t fn_index, size_t inc_id=0) |
archive the mappings to computed response levels for specified fn and (optional) increment id. | |
void | archive_allocate_pdf () |
allocate results array storage for pdf histograms | |
void | archive_pdf (size_t fn_index, size_t inc_id=0) |
archive a single pdf histogram for specified function | |
void | archive_equiv_hf_evals (const Real equiv_hf_evals) |
archive the equivalent number of HF evals (used by ML/MF methods) | |
![]() | |
Analyzer () | |
default constructor | |
Analyzer (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
Analyzer (unsigned short method_name, Model &model) | |
alternate constructor for instantiations "on the fly" with a Model | |
Analyzer (unsigned short method_name) | |
alternate constructor for instantiations "on the fly" without a Model | |
~Analyzer () | |
destructor | |
virtual void | update_model_from_variables (Model &model, const Variables &vars) |
update model's current variables with data from vars | |
void | update_from_model (const Model &model) |
set inherited data attributes based on extractions from incoming model | |
void | pre_output () |
const Model & | algorithm_space_model () const |
const Variables & | variables_results () const |
return a single final iterator solution (variables) | |
const VariablesArray & | variables_array_results () |
return multiple final iterator solutions (variables). This should only be used if returns_multiple_points() returns true. | |
const ResponseArray & | response_array_results () |
return multiple final iterator solutions (response). This should only be used if returns_multiple_points() returns true. | |
bool | compact_mode () const |
returns Analyzer::compactMode | |
bool | returns_multiple_points () const |
indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate. | |
void | evaluate_parameter_sets (Model &model, bool log_resp_flag, bool log_best_flag) |
perform function evaluations to map parameter sets (allVariables) into response sets (allResponses) More... | |
void | get_vbd_parameter_sets (Model &model, int num_samples) |
generate replicate parameter sets for use in variance-based decomposition More... | |
void | compute_vbd_stats (const int num_samples, const IntResponseMap &resp_samples) |
compute VBD-based Sobol indices More... | |
void | archive_sobol_indices () const |
archive VBD-based Sobol indices More... | |
virtual void | archive_model_variables (const Model &, size_t idx) const |
archive model evaluation points | |
virtual void | archive_model_response (const Response &, size_t idx) const |
archive model evaluation responses | |
void | read_variables_responses (int num_evals, size_t num_vars) |
convenience function for reading variables/responses (used in derived classes post_input) More... | |
void | print_sobol_indices (std::ostream &s) const |
Printing of VBD results. More... | |
void | samples_to_variables_array (const RealMatrix &sample_matrix, VariablesArray &vars_array) |
convert samples array to variables array; e.g., allSamples to allVariables | |
void | variables_array_to_samples (const VariablesArray &vars_array, RealMatrix &sample_matrix) |
convert variables array to samples array; e.g., allVariables to allSamples | |
![]() | |
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 | derived_init_communicators (ParLevLIter pl_iter) |
derived class contributions to initializing the communicators associated with this Iterator instance | |
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 Member Functions | |
void | initialize_mf_sums (IntRealMatrixMap &sum_L_baseline, IntRealVectorMap &sum_H, IntRealMatrixMap &sum_LL, IntRealMatrixMap &sum_LH, RealVector &sum_HH) |
void | accumulate_mf_sums (IntRealMatrixMap &sum_L_baseline, IntRealVectorMap &sum_H, IntRealMatrixMap &sum_LL, IntRealMatrixMap &sum_LH, RealVector &sum_HH, Sizet2DArray &num_L_baseline, SizetArray &num_H, Sizet2DArray &num_LH) |
void | accumulate_mf_sums (RealMatrix &sum_L_baseline, RealVector &sum_H, RealMatrix &sum_LL, RealMatrix &sum_LH, RealVector &sum_HH, Sizet2DArray &num_L_baseline, SizetArray &num_H, Sizet2DArray &num_LH) |
void | accumulate_mf_sums (IntRealMatrixMap &sum_L_shared, IntRealMatrixMap &sum_L_refined, Sizet2DArray &num_L_shared, Sizet2DArray &num_L_refined, size_t approx_start, size_t approx_end) |
void | compute_LH_correlation (const RealMatrix &sum_L_shared, const RealVector &sum_H, const RealMatrix &sum_LL, const RealMatrix &sum_LH, const RealVector &sum_HH, const Sizet2DArray &num_L, const SizetArray &num_H, const Sizet2DArray &num_LH, RealVector &var_H, RealMatrix &rho2_LH) |
void | mf_raw_moments (IntRealMatrixMap &sum_L_baseline, IntRealMatrixMap &sum_L_shared, IntRealMatrixMap &sum_L_refined, IntRealVectorMap &sum_H, IntRealMatrixMap &sum_LL, IntRealMatrixMap &sum_LH, const Sizet2DArray &num_L_baseline, const Sizet2DArray &num_L_shared, const Sizet2DArray &num_L_refined, const SizetArray &num_H, const Sizet2DArray &num_LH, RealMatrix &H_raw_mom) |
void | compute_mf_control (Real sum_L, Real sum_H, Real sum_LL, Real sum_LH, size_t num_L, size_t num_H, size_t num_LH, Real &beta) |
Private Attributes | |
RealVector | mseRatios |
ratio of MFMC estimator variance to mseIter0, one per QoI | |
Additional Inherited Members | |
![]() | |
static void | compute_moments (const RealVectorArray &fn_samples, SizetArray &sample_counts, RealMatrix &moment_stats, short moments_type, const StringArray &labels) |
core compute_moments() implementation with all data as inputs | |
static void | compute_moments (const RealVectorArray &fn_samples, RealMatrix &moment_stats, short moments_type) |
core compute_moments() implementation with all data as inputs | |
static void | compute_moments (const RealMatrix &fn_samples, RealMatrix &moment_stats, short moments_type) |
alternate RealMatrix samples API for use by external clients | |
static void | print_moments (std::ostream &s, const RealMatrix &moment_stats, const RealMatrix moment_cis, String qoi_type, short moments_type, const StringArray &moment_labels, bool print_cis) |
core print moments that can be called without object | |
static int | compute_wilks_sample_size (unsigned short order, Real alpha, Real beta, bool twosided=false) |
calculates the number of samples using the Wilks formula Static so I can test without instantiating a NonDSampling object - RWH | |
static Real | compute_wilks_residual (unsigned short order, int nsamples, Real alpha, Real beta, bool twosided) |
Helper function - calculates the Wilks residual. | |
static Real | compute_wilks_alpha (unsigned short order, int nsamples, Real beta, bool twosided=false) |
calculates the alpha paramter given number of samples using the Wilks formula Static so I can test without instantiating a NonDSampling object - RWH | |
static Real | compute_wilks_beta (unsigned short order, int nsamples, Real alpha, bool twosided=false) |
calculates the beta paramter given number of samples using the Wilks formula Static so I can test without instantiating a NonDSampling object - RWH | |
static Real | get_wilks_alpha_min () |
Get the lower and upper bounds supported by Wilks bisection solves. | |
static Real | get_wilks_alpha_max () |
static Real | get_wilks_beta_min () |
static Real | get_wilks_beta_max () |
![]() | |
static void | uncentered_to_centered (Real rm1, Real rm2, Real rm3, Real rm4, Real &cm1, Real &cm2, Real &cm3, Real &cm4, size_t Nlq) |
convert uncentered (raw) moments to centered moments; biased estimators More... | |
static void | uncentered_to_centered (Real rm1, Real rm2, Real rm3, Real rm4, Real &cm1, Real &cm2, Real &cm3, Real &cm4) |
convert uncentered (raw) moments to centered moments; unbiased estimators More... | |
static void | centered_to_standard (Real cm1, Real cm2, Real cm3, Real cm4, Real &sm1, Real &sm2, Real &sm3, Real &sm4) |
convert centered moments to standardized moments | |
static void | check_negative (Real &cm) |
detect, warn, and repair a negative central moment (for even orders) | |
![]() | |
size_t | numApprox |
number of approximation models managed by non-hierarchical iteratedModel | |
short | solutionMode |
enumeration for solution modes: ONLINE_PILOT (default), OFFLINE_PILOT, PILOT_PROJECTION | |
short | sequenceType |
type of model sequence enumerated with primary MF/ACV loop over steps | |
size_t | secondaryIndex |
setting for the inactive model dimension not traversed by primary MF/ACV loop over steps | |
RealVector | sequenceCost |
relative costs of models within sequence of steps | |
RealVector | varH |
variances for HF truth (length numFunctions) | |
SizetArray | numH |
number of evaluations of HF truth model (length numFunctions) | |
RealVector | mseIter0 |
initial estimator variance from shared pilot (no CV reduction) | |
![]() | |
static NonD * | nondInstance |
pointer to the active object instance used within static evaluator functions in order to avoid the need for static data | |
Perform Approximate Control Variate Monte Carlo sampling for UQ.
Multifidelity Monte Carlo (MFMC) is a variance-reduction technique that utilitizes lower fidelity simulations that have response QoI that are correlated with the high-fidelity response QoI.
NonDMultifidelitySampling | ( | ProblemDescDB & | problem_db, |
Model & | model | ||
) |
standard constructor
This constructor is called for a standard letter-envelope iterator instantiation. In this case, set_db_list_nodes has been called and probDescDB can be queried for settings from the method specification.
|
protectedvirtual |
The primary run function manages the general case: a hierarchy of model forms (from the ordered model fidelities within a HierarchSurrModel), each of which may contain multiple discretization levels.
Reimplemented from Iterator.
References NonDMultifidelitySampling::multifidelity_mc(), NonDMultifidelitySampling::multifidelity_mc_offline_pilot(), NonDMultifidelitySampling::multifidelity_mc_pilot_projection(), and NonDNonHierarchSampling::solutionMode.
|
protectedvirtual |
print the final iterator results
This virtual function provides additional iterator-specific final results outputs beyond the function evaluation summary printed in finalize_run().
Reimplemented from NonDEnsembleSampling.
References NonDEnsembleSampling::NLev, NonD::print_multilevel_evaluation_summary(), NonDEnsembleSampling::print_results(), and NonDNonHierarchSampling::solutionMode.
|
protected |
This is the standard MFMC version that integrates the pilot alongside the sample adaptation and iterates to determine numH.
References NonDMultifidelitySampling::accumulate_mf_sums(), NonDEnsembleSampling::compute_mc_estimator_variance(), NonD::initialize_counts(), Iterator::maxFunctionEvals, Iterator::maxIterations, NonDEnsembleSampling::mlmfIter, NonDNonHierarchSampling::mseIter0, NonDMultifidelitySampling::mseRatios, NonDNonHierarchSampling::numApprox, NonDNonHierarchSampling::numH, NonDSampling::numSamples, NonD::one_sided_delta(), NonDEnsembleSampling::pilotSamples, NonDNonHierarchSampling::sequenceCost, Dakota::SZ_MAX, and NonDNonHierarchSampling::varH.
Referenced by NonDMultifidelitySampling::core_run().
|
protected |
This MFMC version treats the pilot sample as a separate offline process.
References Dakota::abort_handler(), NonDMultifidelitySampling::accumulate_mf_sums(), NonD::initialize_counts(), Iterator::maxFunctionEvals, NonDEnsembleSampling::mlmfIter, NonDMultifidelitySampling::mseRatios, NonDNonHierarchSampling::numApprox, Analyzer::numFunctions, NonDNonHierarchSampling::numH, NonDSampling::numSamples, NonD::one_sided_delta(), NonDEnsembleSampling::pilotSamples, NonDNonHierarchSampling::sequenceCost, Dakota::SZ_MAX, and NonDNonHierarchSampling::varH.
Referenced by NonDMultifidelitySampling::core_run().
|
protected |
This MFMC version is for algorithm selection; it estimates the variance reduction from pilot-only sampling.
References NonDMultifidelitySampling::accumulate_mf_sums(), NonDEnsembleSampling::compute_mc_estimator_variance(), NonD::initialize_counts(), Iterator::maxFunctionEvals, NonDEnsembleSampling::mlmfIter, NonDNonHierarchSampling::mseIter0, NonDMultifidelitySampling::mseRatios, NonDNonHierarchSampling::numApprox, Analyzer::numFunctions, NonDNonHierarchSampling::numH, NonDSampling::numSamples, NonDEnsembleSampling::pilotSamples, NonDNonHierarchSampling::sequenceCost, Dakota::SZ_MAX, and NonDNonHierarchSampling::varH.
Referenced by NonDMultifidelitySampling::core_run().
|
private |
This version used by MFMC following shared_increment()
References Analyzer::allResponses, Response::function_values(), NonDNonHierarchSampling::numApprox, Analyzer::numFunctions, and Iterator::outputLevel.
Referenced by NonDMultifidelitySampling::multifidelity_mc(), NonDMultifidelitySampling::multifidelity_mc_offline_pilot(), and NonDMultifidelitySampling::multifidelity_mc_pilot_projection().
|
private |
This version used by MFMC following shared_increment()
References Analyzer::allResponses, Response::function_values(), NonDNonHierarchSampling::numApprox, Analyzer::numFunctions, and Iterator::outputLevel.
|
private |
This version used by MFMC following approx_increment()
References Analyzer::allResponses, Response::function_values(), and Analyzer::numFunctions.