![]() |
Dakota
Version 6.13
Explore and Predict with Confidence
|
Wrapper class for the OPT++ optimization library. More...
Public Member Functions | |
SNLLOptimizer (ProblemDescDB &problem_db, Model &model) | |
standard constructor More... | |
SNLLOptimizer (const String &method_string, Model &model) | |
alternate constructor for instantiations "on the fly" More... | |
SNLLOptimizer (const RealVector &initial_pt, const RealVector &var_l_bnds, const RealVector &var_u_bnds, const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_l_bnds, const RealVector &lin_ineq_u_bnds, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_tgts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, void(*user_obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode), void(*user_con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode)) | |
alternate constructor for instantiations "on the fly" More... | |
SNLLOptimizer (const RealVector &initial_pt, const RealVector &var_l_bnds, const RealVector &var_u_bnds, const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_l_bnds, const RealVector &lin_ineq_u_bnds, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_tgts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, void(*user_obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode), void(*user_con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode), const int max_iter, const int max_fn_evals, const Real conv_tol, const Real grad_tol, Real max_step) | |
alternate constructor for instantiations "on the fly", also specifying different optimizer properties More... | |
~SNLLOptimizer () | |
destructor | |
void | core_run () |
Performs the iterations to determine the optimal solution. | |
void | reset () |
restore initial state for repeated sub-iterator executions | |
void | declare_sources () |
Declare sources to the evaluations database. | |
![]() | |
void | get_common_stopping_criteria (int &max_fn_evals, int &max_iters, double &conv_tol, double &min_var_chg, double &obj_target) |
int | num_nonlin_ineq_constraints_found () const |
template<typename AdapterT > | |
bool | get_variable_bounds_from_dakota (typename AdapterT::VecT &lower, typename AdapterT::VecT &upper) |
template<typename VecT > | |
void | get_responses_from_dakota (const RealVector &dak_fn_vals, VecT &funs, VecT &cEqs, VecT &cIneqs) |
![]() | |
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 | |
![]() | |
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_set_communicators (ParLevLIter pl_iter) |
derived class contributions to setting the communicators associated with this Iterator instance | |
virtual void | derived_free_communicators (ParLevLIter pl_iter) |
derived class contributions to freeing the communicators associated with this Iterator instance | |
virtual void | pre_run () |
pre-run portion of run (optional); re-implemented by Iterators which can generate all Variables (parameter sets) a priori More... | |
virtual void | pre_output () |
write variables to file, following pre-run | |
virtual void | post_input () |
read tabular data for post-run mode | |
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 | 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 RealVector & | response_error_estimates () const |
return error estimates associated with the final iterator solution | |
virtual bool | accepts_multiple_points () const |
indicates if this iterator accepts multiple initial points. Default return is false. Override to return true if appropriate. | |
virtual bool | returns_multiple_points () const |
indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate. | |
virtual void | initial_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 | 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 const VariablesArray & | all_variables () |
return the complete set of evaluated variables | |
virtual const RealMatrix & | all_samples () |
return the complete set of evaluated samples | |
virtual const IntResponseMap & | all_responses () const |
return the complete set of computed responses | |
virtual int | num_samples () const |
get the current number of samples | |
virtual void | sampling_reset (int min_samples, bool all_data_flag, bool stats_flag) |
reset sampling iterator to use at least min_samples | |
virtual void | sampling_reference (int samples_ref) |
set reference number of samples, which is a lower bound during reset | |
virtual void | sampling_increment () |
increment to next in sequence of refinement samples | |
virtual void | random_seed (int seed) |
set randomSeed, if present | |
virtual unsigned short | sampling_scheme () const |
return sampling name | |
virtual bool | compact_mode () const |
returns Analyzer::compactMode | |
virtual IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
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 | |
int | maximum_iterations () const |
return the maximum iterations for this iterator | |
void | maximum_iterations (int 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. | |
![]() | |
SNLLBase () | |
default constructor | |
SNLLBase (ProblemDescDB &problem_db) | |
standard constructor | |
~SNLLBase () | |
destructor | |
Protected Member Functions | |
void | initialize_run () |
invokes Optimizer::initialize_run(), SNLLBase::snll_initialize_run(), and performs other set-up | |
void | post_run (std::ostream &s) |
performs data recovery and calls Optimizer::post_run() | |
void | finalize_run () |
performs cleanup, restores instances and calls parent finalize | |
![]() | |
Optimizer (std::shared_ptr< TraitsBase > traits) | |
default constructor | |
Optimizer (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits) | |
alternate constructor; accepts a model | |
Optimizer (unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits) | |
alternate constructor for "on the fly" instantiations | |
Optimizer (unsigned short method_name, size_t num_cv, size_t num_div, size_t num_dsv, size_t num_drv, 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) | |
alternate constructor for "on the fly" instantiations | |
~Optimizer () | |
destructor | |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
void | configure_constraint_maps () |
int | configure_inequality_constraints (CONSTRAINT_TYPE ctype) |
void | configure_equality_constraints (CONSTRAINT_TYPE ctype, size_t index_offset) |
template<typename AdapterT > | |
void | get_linear_constraints_and_bounds (typename AdapterT::VecT &lin_ineq_lower_bnds, typename AdapterT::VecT &lin_ineq_upper_bnds, typename AdapterT::VecT &lin_eq_targets, typename AdapterT::MatT &lin_ineq_coeffs, typename AdapterT::MatT &lin_eq_coeffs) |
![]() | |
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 | |
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... | |
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... | |
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 | export_final_surrogates (Model &data_fit_surr_model) |
export final surrogates generated, e.g., GP in EGO and friends More... | |
![]() | |
void | copy_con_vals_dak_to_optpp (const RealVector &local_fn_vals, RealVector &g, size_t offset) |
convenience function for copying local_fn_vals to g; used by constraint evaluator functions | |
void | copy_con_vals_optpp_to_dak (const RealVector &g, RealVector &local_fn_vals, size_t offset) |
convenience function for copying g to local_fn_vals; used in final solution logging | |
void | copy_con_grad (const RealMatrix &local_fn_grads, RealMatrix &grad_g, size_t offset) |
convenience function for copying local_fn_grads to grad_g; used by constraint evaluator functions | |
void | copy_con_hess (const RealSymMatrixArray &local_fn_hessians, OPTPP::OptppArray< RealSymMatrix > &hess_g, size_t offset) |
convenience function for copying local_fn_hessians to hess_g; used by constraint evaluator functions | |
void | snll_pre_instantiate (bool bound_constr_flag, int num_constr) |
convenience function for setting OPT++ options prior to the method instantiation | |
void | snll_post_instantiate (int num_cv, bool vendor_num_grad_flag, const String &finite_diff_type, const RealVector &fdss, int max_iter, int max_fn_evals, Real conv_tol, Real grad_tol, Real max_step, bool bound_constr_flag, int num_constr, short output_lev, OPTPP::OptimizeClass *the_optimizer, OPTPP::NLP0 *nlf_objective, OPTPP::FDNLF1 *fd_nlf1, OPTPP::FDNLF1 *fd_nlf1_con) |
convenience function for setting OPT++ options after the method instantiation | |
void | snll_initialize_run (OPTPP::NLP0 *nlf_objective, OPTPP::NLP *nlp_constraint, const RealVector &init_pt, bool bound_constr_flag, const RealVector &lower_bnds, const RealVector &upper_bnds, const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_l_bnds, const RealVector &lin_ineq_u_bnds, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_targets, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_targets) |
convenience function for OPT++ configuration prior to the method invocation | |
void | snll_post_run (OPTPP::NLP0 *nlf_objective) |
convenience function for setting OPT++ options after the method instantiations | |
void | reset_base () |
reset last{FnEvalLocn,EvalMode,EvalVars} | |
Private Member Functions | |
void | default_instantiate_q_newton (void(*obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode), void(*con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode)) |
instantiate an OPTPP_Q_NEWTON solver using standard settings | |
void | default_instantiate_newton (void(*obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, RealSymMatrix &hess_f, int &result_mode), void(*con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, OPTPP::OptppArray< RealSymMatrix > &hess_g, int &result_mode)) |
instantiate an OPTPP_NEWTON solver using standard settings | |
Static Private Member Functions | |
static void | nlf0_evaluator (int n, const RealVector &x, double &f, int &result_mode) |
objective function evaluator function for OPT++ methods which require only function values. More... | |
static void | nlf1_evaluator (int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode) |
objective function evaluator function which provides function values and gradients to OPT++ methods. More... | |
static void | nlf2_evaluator (int mode, int n, const RealVector &x, double &f, RealVector &grad_f, RealSymMatrix &hess_f, int &result_mode) |
objective function evaluator function which provides function values, gradients, and Hessians to OPT++ methods. More... | |
static void | constraint0_evaluator (int n, const RealVector &x, RealVector &g, int &result_mode) |
constraint evaluator function for OPT++ methods which require only constraint values. More... | |
static void | constraint1_evaluator (int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode) |
constraint evaluator function which provides constraint values and gradients to OPT++ methods. More... | |
static void | constraint2_evaluator (int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, OPTPP::OptppArray< RealSymMatrix > &hess_g, int &result_mode) |
constraint evaluator function which provides constraint values, gradients, and Hessians to OPT++ methods. More... | |
Private Attributes | |
SNLLOptimizer * | prevSnllOptInstance |
pointer to the previously active object instance used for restoration in the case of iterator/model recursion | |
OPTPP::NLP0 * | nlfObjective |
objective NLF base class pointer | |
OPTPP::NLP0 * | nlfConstraint |
constraint NLF base class pointer | |
OPTPP::NLP * | nlpConstraint |
constraint NLP pointer | |
OPTPP::NLF0 * | nlf0 |
pointer to objective NLF for nongradient optimizers | |
OPTPP::NLF1 * | nlf1 |
pointer to objective NLF for (analytic) gradient-based optimizers | |
OPTPP::NLF1 * | nlf1Con |
pointer to constraint NLF for (analytic) gradient-based optimizers | |
OPTPP::FDNLF1 * | fdnlf1 |
pointer to objective NLF for (finite diff) gradient-based optimizers | |
OPTPP::FDNLF1 * | fdnlf1Con |
pointer to constraint NLF for (finite diff) gradient-based optimizers | |
OPTPP::NLF2 * | nlf2 |
pointer to objective NLF for full Newton optimizers | |
OPTPP::NLF2 * | nlf2Con |
pointer to constraint NLF for full Newton optimizers | |
OPTPP::OptimizeClass * | theOptimizer |
optimizer base class pointer | |
OPTPP::OptPDS * | optpds |
PDS optimizer pointer. | |
OPTPP::OptCG * | optcg |
CG optimizer pointer. | |
OPTPP::OptLBFGS * | optlbfgs |
L-BFGS optimizer pointer. | |
OPTPP::OptNewton * | optnewton |
Newton optimizer pointer. | |
OPTPP::OptQNewton * | optqnewton |
Quasi-Newton optimizer pointer. | |
OPTPP::OptFDNewton * | optfdnewton |
Finite Difference Newton opt pointer. | |
OPTPP::OptBCNewton * | optbcnewton |
Bound constrained Newton opt pointer. | |
OPTPP::OptBCQNewton * | optbcqnewton |
Bnd constrained Quasi-Newton opt ptr. | |
OPTPP::OptBCFDNewton * | optbcfdnewton |
Bnd constrained FD-Newton opt ptr. | |
OPTPP::OptNIPS * | optnips |
NIPS optimizer pointer. | |
OPTPP::OptQNIPS * | optqnips |
Quasi-Newton NIPS optimizer pointer. | |
OPTPP::OptFDNIPS * | optfdnips |
Finite Difference NIPS opt pointer. | |
String | setUpType |
flag for iteration mode: "model" (normal usage) or "user_functions" (user-supplied functions mode for "on the fly" instantiations). NonDReliability currently uses the user_functions mode. | |
RealVector | initialPoint |
holds initial point passed in for "user_functions" mode. | |
RealVector | lowerBounds |
holds variable lower bounds passed in for "user_functions" mode. | |
RealVector | upperBounds |
holds variable upper bounds passed in for "user_functions" mode. | |
Static Private Attributes | |
static SNLLOptimizer * | snllOptInstance |
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 void | not_available (const std::string &package_name) |
Static helper function: third-party opt packages which are not available. | |
![]() | |
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... | |
![]() | |
static void | init_fn (int n, RealVector &x) |
An initialization mechanism provided by OPT++ (not currently used). | |
![]() | |
size_t | numObjectiveFns |
number of objective functions (iterator view) | |
bool | localObjectiveRecast |
flag indicating whether local recasting to a single objective is used | |
Optimizer * | prevOptInstance |
pointer containing previous value of optimizerInstance | |
int | numNonlinearIneqConstraintsFound |
number of nonlinear ineq constraints actually used (based on conditional and bigRealBoundSize | |
std::vector< int > | constraintMapIndices |
map from Dakota constraint number to APPS constraint number | |
std::vector< double > | constraintMapMultipliers |
multipliers for constraint transformations | |
std::vector< double > | constraintMapOffsets |
offsets for constraint transformations | |
![]() | |
String | searchMethod |
value_based_line_search, gradient_based_line_search, trust_region, or tr_pds | |
OPTPP::SearchStrategy | searchStrat |
enum: LineSearch, TrustRegion, or TrustPDS | |
OPTPP::MeritFcn | meritFn |
enum: NormFmu, ArgaezTapia, or VanShanno | |
Real | maxStep |
value from max_step specification | |
Real | stepLenToBndry |
value from steplength_to_boundary specification | |
Real | centeringParam |
value from centering_parameter specification | |
bool | constantASVFlag |
flags a user selection of active_set_vector == constant. By mapping this into mode override, reliance on duplicate detection can be avoided. | |
![]() | |
static Optimizer * | optimizerInstance |
pointer to Optimizer instance used in static member functions | |
![]() | |
static Minimizer * | optLSqInstance |
pointer to the active base class object instance used within the static evaluator functions in order to avoid the need for static data | |
static bool | modeOverrideFlag |
flags OPT++ mode override (for combining value, gradient, and Hessian requests) | |
static EvalType | lastFnEvalLocn |
an enum used to track whether an nlf evaluator or a constraint evaluator was the last location of a function evaluation | |
static int | lastEvalMode |
copy of mode from constraint evaluators | |
static RealVector | lastEvalVars |
copy of variables from constraint evaluators | |
Wrapper class for the OPT++ optimization library.
The SNLLOptimizer class provides a wrapper for OPT++, a C++ optimization library of nonlinear programming and pattern search techniques from the Computational Sciences and Mathematics Research (CSMR) department at Sandia's Livermore CA site. It uses a function pointer approach for which passed functions must be either global functions or static member functions. Any attribute used within static member functions must be either local to that function, a static member, or accessed by static pointer.
The user input mappings are as follows: max_iterations
, max_function_evaluations
, convergence_tolerance
, max_step
, gradient_tolerance
, search_method
, and search_scheme_size
are set using OPT++'s setMaxIter(), setMaxFeval(), setFcnTol(), setMaxStep(), setGradTol(), setSearchStrategy(), and setSSS() member functions, respectively; output
verbosity is used to toggle OPT++'s debug mode using the setDebug() member function. Internal to OPT++, there are 3 search strategies, while the DAKOTA search_method
specification supports 4 (value_based_line_search
, gradient_based_line_search
, trust_region
, or tr_pds
). The difference stems from the "is_expensive" flag in OPT++. If the search strategy is LineSearch and "is_expensive" is turned on, then the value_based_line_search
is used. Otherwise (the "is_expensive" default is off), the algorithm will use the gradient_based_line_search
. Refer to [Meza, J.C., 1994] and to the OPT++ source in the Dakota/packages/OPTPP directory for information on OPT++ class member functions.
SNLLOptimizer | ( | ProblemDescDB & | problem_db, |
Model & | model | ||
) |
standard constructor
This constructor is used for normal instantiations using data from the ProblemDescDB.
References Dakota::abort_handler(), Minimizer::boundConstraintFlag, SNLLBase::centeringParam, SNLLOptimizer::constraint0_evaluator(), SNLLOptimizer::constraint1_evaluator(), SNLLOptimizer::constraint2_evaluator(), Iterator::convergenceTol, SNLLOptimizer::default_instantiate_newton(), SNLLOptimizer::default_instantiate_q_newton(), Model::fd_gradient_step_size(), SNLLOptimizer::fdnlf1, SNLLOptimizer::fdnlf1Con, ProblemDescDB::get_int(), ProblemDescDB::get_real(), SNLLBase::init_fn(), Model::interval_type(), Iterator::iteratedModel, Dakota::LARGE_SCALE, Iterator::maxEvalConcurrency, Iterator::maxFunctionEvals, Iterator::maxIterations, SNLLBase::maxStep, SNLLBase::meritFn, Iterator::method_enum_to_string(), Iterator::methodName, SNLLOptimizer::nlf0, SNLLOptimizer::nlf0_evaluator(), SNLLOptimizer::nlf1, SNLLOptimizer::nlf1_evaluator(), SNLLOptimizer::nlf1Con, SNLLOptimizer::nlf2_evaluator(), SNLLOptimizer::nlfConstraint, SNLLOptimizer::nlfObjective, SNLLOptimizer::nlpConstraint, Minimizer::numConstraints, Minimizer::numContinuousVars, Minimizer::numNonlinearConstraints, SNLLOptimizer::optbcfdnewton, SNLLOptimizer::optbcqnewton, SNLLOptimizer::optcg, SNLLOptimizer::optfdnewton, SNLLOptimizer::optfdnips, SNLLOptimizer::optlbfgs, SNLLOptimizer::optpds, SNLLOptimizer::optqnewton, SNLLOptimizer::optqnips, Iterator::outputLevel, Iterator::probDescDB, SNLLBase::searchStrat, SNLLBase::snll_post_instantiate(), SNLLBase::snll_pre_instantiate(), SNLLBase::stepLenToBndry, SNLLOptimizer::theOptimizer, and Minimizer::vendorNumericalGradFlag.
SNLLOptimizer | ( | const String & | method_string, |
Model & | model | ||
) |
alternate constructor for instantiations "on the fly"
This is an alternate constructor for instantiations on the fly using a Model but no ProblemDescDB.
References Dakota::abort_handler(), Minimizer::boundConstraintFlag, SNLLOptimizer::constraint1_evaluator(), SNLLOptimizer::constraint2_evaluator(), Iterator::convergenceTol, SNLLOptimizer::default_instantiate_newton(), SNLLOptimizer::default_instantiate_q_newton(), Model::fd_gradient_step_size(), Model::interval_type(), Iterator::iteratedModel, Iterator::maxFunctionEvals, Iterator::maxIterations, Iterator::method_enum_to_string(), Iterator::methodName, SNLLOptimizer::nlf1_evaluator(), SNLLOptimizer::nlf2_evaluator(), SNLLOptimizer::nlfObjective, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, SNLLBase::snll_post_instantiate(), SNLLBase::snll_pre_instantiate(), SNLLOptimizer::theOptimizer, and Minimizer::vendorNumericalGradFlag.
SNLLOptimizer | ( | const RealVector & | initial_pt, |
const RealVector & | var_l_bnds, | ||
const RealVector & | var_u_bnds, | ||
const RealMatrix & | lin_ineq_coeffs, | ||
const RealVector & | lin_ineq_l_bnds, | ||
const RealVector & | lin_ineq_u_bnds, | ||
const RealMatrix & | lin_eq_coeffs, | ||
const RealVector & | lin_eq_tgts, | ||
const RealVector & | nln_ineq_l_bnds, | ||
const RealVector & | nln_ineq_u_bnds, | ||
const RealVector & | nln_eq_tgts, | ||
void(*)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode) | user_obj_eval, | ||
void(*)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode) | user_con_eval | ||
) |
alternate constructor for instantiations "on the fly"
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, SNLLOptimizer::nlpConstraint, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, SNLLBase::snll_initialize_run(), SNLLBase::snll_post_instantiate(), SNLLBase::snll_pre_instantiate(), SNLLOptimizer::theOptimizer, and SNLLOptimizer::upperBounds.
SNLLOptimizer | ( | const RealVector & | initial_pt, |
const RealVector & | var_l_bnds, | ||
const RealVector & | var_u_bnds, | ||
const RealMatrix & | lin_ineq_coeffs, | ||
const RealVector & | lin_ineq_l_bnds, | ||
const RealVector & | lin_ineq_u_bnds, | ||
const RealMatrix & | lin_eq_coeffs, | ||
const RealVector & | lin_eq_tgts, | ||
const RealVector & | nln_ineq_l_bnds, | ||
const RealVector & | nln_ineq_u_bnds, | ||
const RealVector & | nln_eq_tgts, | ||
void(*)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode) | user_obj_eval, | ||
void(*)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode) | user_con_eval, | ||
const int | max_iter, | ||
const int | max_fn_evals, | ||
const Real | conv_tol, | ||
const Real | grad_tol, | ||
Real | max_step | ||
) |
alternate constructor for instantiations "on the fly", also specifying different optimizer properties
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers additionally specifing optimizaton settings.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, SNLLOptimizer::nlpConstraint, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, SNLLBase::snll_initialize_run(), SNLLBase::snll_post_instantiate(), SNLLBase::snll_pre_instantiate(), SNLLOptimizer::theOptimizer, and SNLLOptimizer::upperBounds.
|
staticprivate |
objective function evaluator function for OPT++ methods which require only function values.
For use when DAKOTA computes f and gradients are not directly available. This is used by nongradient-based optimizers such as PDS and by gradient-based optimizers in vendor numerical gradient mode (opt++'s internal finite difference routine is used).
References Model::continuous_variables(), Model::current_response(), Model::evaluate(), Response::function_value(), Iterator::iteratedModel, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Minimizer::numNonlinearConstraints, Iterator::outputLevel, Model::primary_response_fn_sense(), and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().
|
staticprivate |
objective function evaluator function which provides function values and gradients to OPT++ methods.
For use when DAKOTA computes f and df/dX (regardless of gradient type). Vendor numerical gradient case is handled by nlf0_evaluator.
References Iterator::activeSet, Model::continuous_variables(), Model::current_response(), Model::evaluate(), Response::function_gradient_copy(), Response::function_value(), Iterator::iteratedModel, SNLLBase::lastEvalMode, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Minimizer::numNonlinearConstraints, Iterator::outputLevel, Model::primary_response_fn_sense(), ActiveSet::request_values(), and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().
|
staticprivate |
objective function evaluator function which provides function values, gradients, and Hessians to OPT++ methods.
For use when DAKOTA receives f, df/dX, & d^2f/dx^2 from the ApplicationInterface (analytic only). Finite differencing does not make sense for a full Newton approach, since lack of analytic gradients & Hessian should dictate the use of quasi-newton or fd-newton. Thus, there is no fdnlf2_evaluator for use with full Newton approaches, since it is preferable to use quasi-newton or fd-newton with nlf1. Gauss-Newton does not fit this model; it uses nlf2_evaluator_gn instead of nlf2_evaluator.
References Iterator::activeSet, Model::continuous_variables(), Model::current_response(), Model::evaluate(), Response::function_gradient_copy(), Response::function_hessian(), Response::function_value(), Iterator::iteratedModel, SNLLBase::lastEvalMode, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Minimizer::numNonlinearConstraints, Iterator::outputLevel, Model::primary_response_fn_sense(), ActiveSet::request_values(), and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().
|
staticprivate |
constraint evaluator function for OPT++ methods which require only constraint values.
For use when DAKOTA computes g and gradients are not directly available. This is used by nongradient-based optimizers and by gradient-based optimizers in vendor numerical gradient mode (opt++'s internal finite difference routine is used).
References Model::continuous_variables(), SNLLBase::copy_con_vals_dak_to_optpp(), Model::current_response(), Model::evaluate(), Response::function_values(), Iterator::iteratedModel, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Optimizer::numObjectiveFns, Iterator::outputLevel, and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().
|
staticprivate |
constraint evaluator function which provides constraint values and gradients to OPT++ methods.
For use when DAKOTA computes g and dg/dX (regardless of gradient type). Vendor numerical gradient case is handled by constraint0_evaluator.
References Iterator::activeSet, Model::continuous_variables(), SNLLBase::copy_con_grad(), SNLLBase::copy_con_vals_dak_to_optpp(), Model::current_response(), Model::evaluate(), Response::function_gradients(), Response::function_values(), Iterator::iteratedModel, SNLLBase::lastEvalMode, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Optimizer::numObjectiveFns, Iterator::outputLevel, ActiveSet::request_values(), and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().
|
staticprivate |
constraint evaluator function which provides constraint values, gradients, and Hessians to OPT++ methods.
For use when DAKOTA computes g, dg/dX, & d^2g/dx^2 (analytic only).
References Iterator::activeSet, Model::continuous_variables(), SNLLBase::copy_con_grad(), SNLLBase::copy_con_hess(), SNLLBase::copy_con_vals_dak_to_optpp(), Model::current_response(), Model::evaluate(), Response::function_gradients(), Response::function_hessians(), Response::function_values(), Iterator::iteratedModel, SNLLBase::lastEvalMode, SNLLBase::lastEvalVars, SNLLBase::lastFnEvalLocn, Optimizer::numObjectiveFns, Iterator::outputLevel, ActiveSet::request_values(), and SNLLOptimizer::snllOptInstance.
Referenced by SNLLOptimizer::SNLLOptimizer().