![]() |
Dakota
Version 6.15
Explore and Predict with Confidence
|
Base class for the nonlinear least squares branch of the iterator hierarchy. More...
Protected Member Functions | |
LeastSq (std::shared_ptr< TraitsBase > traits) | |
default constructor | |
LeastSq (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits) | |
standard constructor More... | |
LeastSq (unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits) | |
alternate "on the fly" constructor | |
~LeastSq () | |
destructor | |
void | initialize_run () |
void | post_run (std::ostream &s) |
void | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More... | |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
void | get_confidence_intervals (const Variables &native_vars, const Response &iter_resp) |
Calculate confidence intervals on estimated parameters. More... | |
![]() | |
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 () | |
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 | 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 | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More... | |
const Model & | algorithm_space_model () const |
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... | |
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... | |
void | local_recast_retrieve (const Variables &vars, Response &response) const |
infers MOO/NLS solution from the solution of a single-objective optimizer More... | |
![]() | |
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... | |
Protected Attributes | |
size_t | numLeastSqTerms |
number of least squares terms | |
LeastSq * | prevLSqInstance |
pointer containing previous value of leastSqInstance | |
bool | weightFlag |
flag indicating whether weighted least squares is active | |
RealVector | confBoundsLower |
lower bounds for confidence intervals on calibration parameters | |
RealVector | confBoundsUpper |
upper bounds for confidence intervals on calibration parameters | |
RealVector | bestIterPriFns |
storage for iterator best primary functions (which shouldn't be stored in bestResponseArray when there are transformations) | |
bool | retrievedIterPriFns |
whether final primary iterator space functions have been retrieved (possibly by a derived class) | |
![]() | |
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. | |
![]() | |
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 | |
static LeastSq * | leastSqInstance |
pointer to LeastSq instance used in static member functions | |
![]() | |
static Minimizer * | minimizerInstance |
pointer to Minimizer used in static member functions | |
Private Member Functions | |
void | weight_model () |
Wrap iteratedModel in a RecastModel that weights the residuals. More... | |
void | archive_best_results () |
top-level archival method | |
Additional Inherited Members | |
![]() | |
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 | |
![]() | |
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 | 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... | |
Base class for the nonlinear least squares branch of the iterator hierarchy.
The LeastSq class provides common data and functionality for least squares solvers (including NL2OL, NLSSOLLeastSq, and SNLLLeastSq.
|
protected |
standard constructor
This constructor extracts the inherited data for the least squares branch and performs sanity checking on gradient and constraint settings.
References Dakota::abort_handler(), Iterator::bestVariablesArray, Minimizer::calibrationDataFlag, Variables::copy(), Model::current_variables(), Minimizer::data_transform_model(), Iterator::iteratedModel, Iterator::methodName, LeastSq::numLeastSqTerms, Minimizer::numTotalCalibTerms, Minimizer::optimizationFlag, Model::primary_fn_type(), Minimizer::scale_model(), Minimizer::scaleFlag, LeastSq::weight_model(), and LeastSq::weightFlag.
|
protectedvirtual |
This function should be invoked (or reimplemented) by any derived implementations of initialize_run() (which would otherwise hide it).
Reimplemented from Iterator.
Reimplemented in SNLLLeastSq.
References LeastSq::bestIterPriFns, Minimizer::initialize_run(), Iterator::iteratedModel, LeastSq::leastSqInstance, Iterator::myModelLayers, LeastSq::prevLSqInstance, LeastSq::retrievedIterPriFns, and Model::update_from_subordinate_model().
Referenced by SNLLLeastSq::initialize_run().
|
protectedvirtual |
Implements portions of post_run specific to LeastSq for scaling back to native variables and functions. This function should be invoked (or reimplemented) by any derived implementations of post_run() (which would otherwise hide it).
Reimplemented from Iterator.
References Dakota::abort_handler(), Iterator::activeSet, LeastSq::bestIterPriFns, Iterator::bestResponseArray, Iterator::bestVariablesArray, Minimizer::calibrationDataFlag, Variables::continuous_variables(), Model::continuous_variables(), Response::copy(), Variables::copy(), Dakota::copy_data_partial(), Model::current_response(), Model::db_lookup(), Model::evaluate(), Response::function_gradients(), Response::function_values(), Response::function_values_view(), LeastSq::get_confidence_intervals(), Iterator::iteratedModel, Model::model_rep(), Minimizer::numContinuousVars, LeastSq::numLeastSqTerms, Minimizer::numNonlinearConstraints, Minimizer::numUserPrimaryFns, Minimizer::original_model(), Iterator::outputLevel, Minimizer::post_run(), ActiveSet::request_value(), ActiveSet::request_values(), ActiveSet::request_vector(), LeastSq::retrievedIterPriFns, Minimizer::scaleFlag, Minimizer::scalingModel, Minimizer::vendorNumericalGradFlag, and LeastSq::weightFlag.
|
inlineprotectedvirtual |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers
Optional: perform finalization phases of run sequence, like deallocating memory and resetting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's finalize_run(), typically after performing its own implementation steps.
Reimplemented from Iterator.
Reimplemented in SNLLLeastSq.
References Minimizer::finalize_run(), LeastSq::leastSqInstance, and LeastSq::prevLSqInstance.
Referenced by SNLLLeastSq::finalize_run().
|
protectedvirtual |
Redefines default iterator results printing to include nonlinear least squares results (residual terms and constraints).
Reimplemented from Iterator.
References Iterator::activeSet, Iterator::bestResponseArray, Iterator::bestVariablesArray, Minimizer::calibrationDataFlag, LeastSq::confBoundsLower, LeastSq::confBoundsUpper, Model::continuous_variable_labels(), Dakota::data_pairs, Minimizer::dataTransformModel, Minimizer::expData, Model::interface_id(), Iterator::iteratedModel, Dakota::lookup_by_val(), Model::model_rep(), ExperimentData::num_config_vars(), ExperimentData::num_experiments(), Minimizer::numContinuousVars, Minimizer::numNonlinearConstraints, Minimizer::numUserPrimaryFns, Minimizer::original_model(), DataTransformModel::print_best_responses(), Minimizer::print_residuals(), ActiveSet::request_values(), Model::response_size(), Minimizer::scaleFlag, LeastSq::weightFlag, Variables::write(), and Dakota::write_precision.
|
protected |
Calculate confidence intervals on estimated parameters.
Calculate individual confidence intervals for each parameter, based on a linear approximation of the nonlinear model. native_cv are needed for transformations and final reporting. iter_resp must contain the final differenced, scaled, weighted residuals and gradients.
References LeastSq::confBoundsLower, LeastSq::confBoundsUpper, Variables::continuous_variables(), Response::copy(), Response::function_gradients_view(), Response::function_values(), Model::model_rep(), Minimizer::numContinuousVars, LeastSq::numLeastSqTerms, ScalingModel::response_modify_s2n(), Minimizer::scaleFlag, Minimizer::scalingModel, and Minimizer::vendorNumericalGradFlag.
Referenced by LeastSq::post_run().
|
private |
Wrap iteratedModel in a RecastModel that weights the residuals.
Setup Recast for weighting model. The weighting transformation doesn't resize, and makes no vars, active set or secondary mapping. All indices are one-to-one mapped (no change in counts).
References Dakota::abort_handler(), Model::assign_rep(), Iterator::iteratedModel, Iterator::myModelLayers, Iterator::outputLevel, and Model::primary_response_fn_weights().
Referenced by LeastSq::LeastSq().