Dakota
Version
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(*nlf1_obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode), void(*nlf1_con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode), size_t max_iter=100, size_t max_eval=1000, Real conv_tol=1.e-4, Real grad_tol=1.e-4, Real max_step=1000.) | |
alternate constructor for objective/constraint call-backs; analytic gradient case 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(*nlf0_obj_eval)(int n, const RealVector &x, double &f, int &result_mode), void(*nlf1_con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode), size_t max_iter=100, size_t max_eval=1000, Real conv_tol=1.e-4, Real grad_tol=1.e-4, Real max_step=1000.) | |
alternate constructor for objective/constraint call-backs; mixed gradient case: numerical objective, analytic constraints 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(*nlf1_obj_eval)(int mode, int n, const RealVector &x, double &f, RealVector &grad_f, int &result_mode), void(*nlf0_con_eval)(int n, const RealVector &x, RealVector &g, int &result_mode), size_t max_iter=100, size_t max_eval=1000, Real conv_tol=1.e-4, Real grad_tol=1.e-4, Real max_step=1000.) | |
alternate constructor for objective/constraint call-backs; mixed gradient case: analytic objective, numerical constraints 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(*nlf0_obj_eval)(int n, const RealVector &x, double &f, int &result_mode), void(*nlf0_con_eval)(int n, const RealVector &x, RealVector &g, int &result_mode), size_t max_iter=100, size_t max_eval=1000, Real conv_tol=1.e-4, Real grad_tol=1.e-4, Real max_step=1000.) | |
alternate constructor for objective/constraint call-backs; numerical gradient case 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 | 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) | |
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) | |
void | linear_constraints (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) |
assign linear inequality and linear equality constraints for this iterator (user-functions mode for which Model updating is not used) | |
void | nonlinear_constraints (const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_targets) |
assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used) | |
Public Member Functions inherited from Optimizer | |
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) |
Public Member Functions inherited from Minimizer | |
void | constraint_tolerance (Real constr_tol) |
set the method constraint tolerance (constraintTol) | |
Real | constraint_tolerance () const |
return the method constraint tolerance (constraintTol) | |
std::shared_ptr< TPLDataTransfer > | get_data_transfer_helper () const |
bool | resize () |
reinitializes iterator based on new variable size | |
Public Member Functions inherited from Iterator | |
Iterator (std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
default constructor More... | |
Iterator (ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
standard envelope constructor, which constructs its own model(s) More... | |
Iterator (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor which uses the ProblemDescDB but accepts a model from a higher level (meta-iterator) context, instead of constructing its own More... | |
Iterator (const String &method_string, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor for instantiations by name without the ProblemDescDB More... | |
Iterator (const Iterator &iterator) | |
copy constructor More... | |
virtual | ~Iterator () |
destructor | |
Iterator | operator= (const Iterator &iterator) |
assignment operator | |
virtual void | 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 | nested_response_mappings (const RealMatrix &primary_coeffs, const RealMatrix &secondary_coeffs) |
set primaryResponseCoefficients, secondaryResponseCoefficients within derived Iterators; Necessary for scalarization case in MLMC NonDMultilevelSampling to map scalarization in nested context | |
virtual void | initialize_iterator (int job_index) |
used by IteratorScheduler to set the starting data for a run | |
virtual void | pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack starting data for an iterator run | |
virtual void | unpack_parameters_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data for an iterator run | |
virtual void | unpack_parameters_initialize (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data and initialize an iterator run | |
virtual void | pack_results_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack results data from an iterator run | |
virtual void | unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack results data from an iterator run | |
virtual void | update_local_results (int job_index) |
used by IteratorScheduler to update local results arrays | |
virtual const Variables & | variables_results () const |
return a single final iterator solution (variables) | |
virtual const Response & | response_results () const |
return a single final iterator solution (response) | |
virtual const VariablesArray & | variables_array_results () |
return multiple final iterator solutions (variables). This should only be used if returns_multiple_points() returns true. | |
virtual const ResponseArray & | response_array_results () |
return multiple final iterator solutions (response). This should only be used if returns_multiple_points() returns true. | |
virtual void | response_results_active_set (const ActiveSet &set) |
set the requested data for the final iterator response results | |
virtual const RealSymMatrix & | response_error_estimates () const |
return error estimates associated with the final iterator solution | |
virtual bool | accepts_multiple_points () const |
indicates if this iterator accepts multiple initial points. Default return is false. Override to return true if appropriate. | |
virtual bool | returns_multiple_points () const |
indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate. | |
virtual void | initial_point (const Variables &pt) |
sets the initial point for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initial_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 void | check_sub_iterator_conflict () |
detect any conflicts due to recursive use of the same Fortran solver More... | |
virtual unsigned short | uses_method () const |
return name of any enabling iterator used by this iterator | |
virtual void | method_recourse () |
perform a method switch, if possible, due to a detected conflict | |
virtual const VariablesArray & | all_variables () |
return the complete set of evaluated variables | |
virtual const RealMatrix & | all_samples () |
return the complete set of evaluated samples | |
virtual const IntResponseMap & | all_responses () const |
return the complete set of computed responses | |
virtual size_t | num_samples () const |
get the current number of samples | |
virtual void | sampling_reset (size_t min_samples, bool all_data_flag, bool stats_flag) |
reset sampling iterator to use at least min_samples | |
virtual void | sampling_reference (size_t samples_ref) |
set reference number of samples, which is a lower bound during reset | |
virtual void | sampling_increment () |
increment to next in sequence of refinement samples | |
virtual void | random_seed (int seed) |
set randomSeed, if present | |
virtual unsigned short | sampling_scheme () const |
return sampling name | |
virtual bool | compact_mode () const |
returns Analyzer::compactMode | |
virtual IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
void | init_communicators (ParLevLIter pl_iter) |
initialize the communicators associated with this Iterator instance | |
void | set_communicators (ParLevLIter pl_iter) |
set the communicators associated with this Iterator instance | |
void | free_communicators (ParLevLIter pl_iter) |
free the communicators associated with this Iterator instance | |
void | resize_communicators (ParLevLIter pl_iter, bool reinit_comms) |
Resize the communicators. This is called from the letter's resize() | |
void | parallel_configuration_iterator (ParConfigLIter pc_iter) |
set methodPCIter | |
ParConfigLIter | parallel_configuration_iterator () const |
return methodPCIter | |
void | parallel_configuration_iterator_map (std::map< size_t, ParConfigLIter > pci_map) |
set methodPCIterMap | |
std::map< size_t, ParConfigLIter > | parallel_configuration_iterator_map () const |
return methodPCIterMap | |
void | run (ParLevLIter pl_iter) |
invoke set_communicators(pl_iter) prior to run() | |
void | run () |
orchestrate initialize/pre/core/post/finalize phases More... | |
void | assign_rep (std::shared_ptr< Iterator > iterator_rep) |
replaces existing letter with a new one More... | |
void | iterated_model (const Model &model) |
set the iteratedModel (iterators and meta-iterators using a single model instance) | |
Model & | iterated_model () |
return the iteratedModel (iterators & meta-iterators using a single model instance) | |
ProblemDescDB & | problem_description_db () const |
return the problem description database (probDescDB) | |
ParallelLibrary & | parallel_library () const |
return the parallel library (parallelLib) | |
void | method_name (unsigned short m_name) |
set the method name to an enumeration value | |
unsigned short | method_name () const |
return the method name via its native enumeration value | |
void | method_string (const String &m_str) |
set the method name by string | |
String | method_string () const |
return the method name by string | |
String | method_enum_to_string (unsigned short method_enum) const |
convert a method name enumeration value to a string | |
unsigned short | method_string_to_enum (const String &method_str) const |
convert a method name string to an enumeration value | |
String | submethod_enum_to_string (unsigned short submethod_enum) const |
convert a sub-method name enumeration value to a string | |
const String & | method_id () const |
return the method identifier (methodId) | |
int | maximum_evaluation_concurrency () const |
return the maximum evaluation concurrency supported by the iterator | |
void | maximum_evaluation_concurrency (int max_conc) |
set the maximum evaluation concurrency supported by the iterator | |
size_t | maximum_iterations () const |
return the maximum iterations for this iterator | |
void | maximum_iterations (size_t max_iter) |
set the maximum iterations for this iterator | |
void | convergence_tolerance (Real conv_tol) |
set the method convergence tolerance (convergenceTol) | |
Real | convergence_tolerance () const |
return the method convergence tolerance (convergenceTol) | |
void | output_level (short out_lev) |
set the method output level (outputLevel) | |
short | output_level () const |
return the method output level (outputLevel) | |
void | summary_output (bool summary_output_flag) |
Set summary output control; true enables evaluation/results summary. | |
size_t | num_final_solutions () const |
return the number of solutions to retain in best variables/response arrays | |
void | num_final_solutions (size_t num_final) |
set the number of solutions to retain in best variables/response arrays | |
void | active_set (const ActiveSet &set) |
set the default active set (for use with iterators that employ evaluate_parameter_sets()) | |
const ActiveSet & | active_set () const |
return the default active set (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_vector (const ShortArray &asv) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
const ShortArray & | active_set_request_vector () const |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_values (short asv_val) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | sub_iterator_flag (bool si_flag) |
set subIteratorFlag (and update summaryOutputFlag if needed) | |
bool | is_null () const |
function to check iteratorRep (does this envelope contain a letter?) | |
std::shared_ptr< Iterator > | iterator_rep () const |
returns iteratorRep for access to derived class member functions that are not mapped to the top Iterator level | |
virtual void | eval_tag_prefix (const String &eval_id_str) |
set the hierarchical eval ID tag prefix More... | |
std::shared_ptr< TraitsBase > | traits () const |
returns methodTraits for access to derived class member functions that are not mapped to the top TraitsBase level | |
bool | top_level () |
Return whether the iterator is the top level iterator. | |
void | top_level (bool tflag) |
Set the iterator's top level flag. | |
Public Member Functions inherited from SNLLBase | |
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 | |
Protected Member Functions inherited from Optimizer | |
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) |
Protected Member Functions inherited from Minimizer | |
Minimizer (std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
default constructor | |
Minimizer (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
standard constructor More... | |
Minimizer (unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
Minimizer (unsigned short method_name, size_t num_lin_ineq, size_t num_lin_eq, size_t num_nln_ineq, size_t num_nln_eq, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
Minimizer (Model &model, size_t max_iter, size_t max_eval, Real conv_tol, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for "on the fly" instantiations | |
~Minimizer () | |
destructor | |
void | update_from_model (const Model &model) |
set inherited data attributes based on extractions from incoming model | |
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... | |
bool | local_recast_retrieve (const Variables &vars, Response &response) const |
infers MOO/NLS solution from the solution of a single-objective optimizer and returns true if lookup succeeds More... | |
Protected Member Functions inherited from Iterator | |
Iterator (BaseConstructor, ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More... | |
Iterator (NoDBBaseConstructor, unsigned short method_name, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for base iterator classes constructed on the fly More... | |
Iterator (NoDBBaseConstructor, unsigned short method_name, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate constructor for base iterator classes constructed on the fly More... | |
Iterator (NoDBBaseConstructor, Model &model, size_t max_iter, size_t max_eval, Real conv_tol, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor for instantiations without ProblemDescDB More... | |
virtual 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 Member Functions inherited from SNLLBase | |
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, size_t max_iter, size_t max_eval, 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 managing OPT++ results after method execution | |
void | snll_finalize_run (OPTPP::NLP0 *nlf_objective) |
convenience function for clearing OPT++ data after method execution | |
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)) |
instantiate an OPTPP_Q_NEWTON solver using standard settings | |
void | default_instantiate_q_newton (void(*obj_eval)(int n, const RealVector &x, double &f, int &result_mode)) |
instantiate an OPTPP_Q_NEWTON solver using standard settings | |
void | default_instantiate_constraint (void(*con_eval)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode)) |
instantiate constraint objectives using standard settings | |
void | default_instantiate_constraint (void(*con_eval)(int n, const RealVector &x, RealVector &g, int &result_mode)) |
instantiate constraint objectives 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 |
initial point used in "user_functions" mode | |
RealVector | lowerBounds |
variable lower bounds used in "user_functions" mode | |
RealVector | upperBounds |
variable upper bounds used in "user_functions" mode | |
RealMatrix | linIneqCoeffs |
linear inequality constraint coefficients used in "user_functions" mode | |
RealVector | linIneqLowerBnds |
linear inequality constraint lower bounds used in "user_functions" mode | |
RealVector | linIneqUpperBnds |
linear inequality constraint upper bounds used in "user_functions" mode | |
RealMatrix | linEqCoeffs |
linear equality constraint coefficients used in "user_functions" mode | |
RealVector | linEqTargets |
linear equality constraint targets used in "user_functions" mode | |
RealVector | nlnIneqLowerBnds |
nonlinear inequality constraint lower bounds used in "user_functions" mode | |
RealVector | nlnIneqUpperBnds |
nonlinear inequality constraint upper bounds used in "user_functions" mode | |
RealVector | nlnEqTargets |
nonlinear equality constraint targets used in "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 Public Member Functions inherited from Optimizer | |
static void | not_available (const std::string &package_name) |
Static helper function: third-party opt packages which are not available. | |
Static Public Member Functions inherited from Minimizer | |
static Real | sum_squared_residuals (size_t num_pri_fns, const RealVector &residuals, const RealVector &weights) |
return weighted sum of squared residuals | |
static void | print_residuals (size_t num_terms, const RealVector &best_terms, const RealVector &weights, size_t num_best, size_t best_index, std::ostream &s) |
print num_terms residuals and misfit for final results | |
static void | print_model_resp (size_t num_pri_fns, const RealVector &best_fns, size_t num_best, size_t best_index, std::ostream &s) |
print the original user model resp in the case of data transformations | |
static void | print_best_eval_ids (const String &interface_id, const Variables &best_vars, const ActiveSet &active_set, std::ostream &s) |
print best evaluation matching vars and set, or partial matches with matching variables only. More... | |
Static Protected Member Functions inherited from Iterator | |
static void | gnewton_set_recast (const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set) |
conversion of request vector values for the Gauss-Newton Hessian approximation More... | |
Static Protected Member Functions inherited from SNLLBase | |
static void | init_fn (int n, RealVector &x) |
An initialization mechanism provided by OPT++ (not currently used). | |
Protected Attributes inherited from Optimizer | |
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 | |
Protected Attributes inherited from Minimizer | |
size_t | numFunctions |
number of response functions | |
size_t | numContinuousVars |
number of active continuous vars | |
size_t | numDiscreteIntVars |
number of active discrete integer vars | |
size_t | numDiscreteStringVars |
number of active discrete string vars | |
size_t | numDiscreteRealVars |
number of active discrete real vars | |
Real | constraintTol |
optimizer/least squares constraint tolerance | |
Real | bigRealBoundSize |
cutoff value for inequality constraint and continuous variable bounds | |
int | bigIntBoundSize |
cutoff value for discrete variable bounds | |
size_t | numNonlinearIneqConstraints |
number of nonlinear inequality constraints | |
size_t | numNonlinearEqConstraints |
number of nonlinear equality constraints | |
size_t | numLinearIneqConstraints |
number of linear inequality constraints | |
size_t | numLinearEqConstraints |
number of linear equality constraints | |
size_t | numNonlinearConstraints |
total number of nonlinear constraints | |
size_t | numLinearConstraints |
total number of linear constraints | |
size_t | numConstraints |
total number of linear and nonlinear constraints | |
bool | optimizationFlag |
flag for use where optimization and NLS must be distinguished | |
size_t | numUserPrimaryFns |
number of objective functions or least squares terms in the inbound model; always initialize at Minimizer, even if overridden later | |
size_t | numIterPrimaryFns |
number of objective functions or least squares terms in iterator's view, after transformations; always initialize at Minimizer, even if overridden later | |
bool | boundConstraintFlag |
convenience flag for denoting the presence of user-specified bound constraints. Used for method selection and error checking. | |
bool | speculativeFlag |
flag for speculative gradient evaluations | |
bool | calibrationDataFlag |
flag indicating whether user-supplied calibration data is active | |
ExperimentData | expData |
Container for experimental data to which to calibrate model using least squares or other formulations which minimize SSE. | |
size_t | numExperiments |
number of experiments | |
size_t | numTotalCalibTerms |
number of total calibration terms (sum over experiments of number of experimental data per experiment, including field data) | |
Model | dataTransformModel |
Shallow copy of the data transformation model, when present (cached in case further wrapped by other transformations) | |
bool | scaleFlag |
whether Iterator-level scaling is active | |
Model | scalingModel |
Shallow copy of the scaling transformation model, when present (cached in case further wrapped by other transformations) | |
Minimizer * | prevMinInstance |
pointer containing previous value of minimizerInstance | |
bool | vendorNumericalGradFlag |
convenience flag for gradient_type == numerical && method_source == vendor | |
std::shared_ptr< TPLDataTransfer > | dataTransferHandler |
Emerging helper class for handling data transfers to/from Dakota and the underlying TPL. | |
Protected Attributes inherited from Iterator | |
ProblemDescDB & | probDescDB |
class member reference to the problem description database More... | |
ParallelLibrary & | parallelLib |
class member reference to the parallel library | |
ParConfigLIter | methodPCIter |
the active ParallelConfiguration used by this Iterator instance | |
Model | iteratedModel |
the model to be iterated (for iterators and meta-iterators employing a single model instance) | |
size_t | myModelLayers |
number of Models locally (in Iterator or derived classes) wrapped around the initially passed in Model | |
unsigned short | methodName |
name of the iterator (the user's method spec) | |
Real | convergenceTol |
iteration convergence tolerance | |
size_t | maxIterations |
maximum number of iterations for the method | |
size_t | maxFunctionEvals |
maximum number of fn evaluations for the method | |
int | maxEvalConcurrency |
maximum number of concurrent model evaluations More... | |
ActiveSet | activeSet |
the response data requirements on each function evaluation | |
size_t | numFinalSolutions |
number of solutions to retain in best variables/response arrays | |
VariablesArray | bestVariablesArray |
collection of N best solution variables found during the study; always in context of Model originally passed to the Iterator (any in-flight Recasts must be undone) | |
ResponseArray | bestResponseArray |
collection of N best solution responses found during the study; always in context of Model originally passed to the Iterator (any in-flight Recasts must be undone) | |
bool | subIteratorFlag |
flag indicating if this Iterator is a sub-iterator (NestedModel::subIterator or DataFitSurrModel::daceIterator) | |
short | outputLevel |
output verbosity level: {SILENT,QUIET,NORMAL,VERBOSE,DEBUG}_OUTPUT | |
bool | summaryOutputFlag |
flag for summary output (evaluation stats, final results); default true, but false for on-the-fly (helper) iterators and sub-iterator use cases | |
ResultsManager & | resultsDB |
reference to the global iterator results database | |
EvaluationStore & | evaluationsDB |
reference to the global evaluation database | |
EvaluationsDBState | evaluationsDBState |
State of evaluations DB for this iterator. | |
ResultsNames | resultsNames |
valid names for iterator results | |
std::shared_ptr< TraitsBase > | methodTraits |
pointer that retains shared ownership of a TraitsBase object, or child thereof | |
bool | topLevel |
Whether this is the top level iterator. | |
bool | exportSurrogate = false |
whether to export final surrogates | |
String | surrExportPrefix |
base filename for exported surrogates | |
unsigned short | surrExportFormat = NO_MODEL_FORMAT |
(bitwise) format(s) to export | |
Protected Attributes inherited from SNLLBase | |
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 Protected Attributes inherited from Optimizer | |
static Optimizer * | optimizerInstance |
pointer to Optimizer instance used in static member functions | |
Static Protected Attributes inherited from Minimizer | |
static Minimizer * | minimizerInstance |
pointer to Minimizer used in static member functions | |
Static Protected Attributes inherited from SNLLBase | |
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_constraint(), 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_constraint(), 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) | nlf1_obj_eval, | ||
void(*)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode) | nlf1_con_eval, | ||
size_t | max_iter = 100 , |
||
size_t | max_eval = 1000 , |
||
Real | conv_tol = 1.e-4 , |
||
Real | grad_tol = 1.e-4 , |
||
Real | max_step = 1000. |
||
) |
alternate constructor for objective/constraint call-backs; analytic gradient case
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, Dakota::copy_data(), SNLLOptimizer::default_instantiate_constraint(), SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, 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 n, const RealVector &x, double &f, int &result_mode) | nlf0_obj_eval, | ||
void(*)(int mode, int n, const RealVector &x, RealVector &g, RealMatrix &grad_g, int &result_mode) | nlf1_con_eval, | ||
size_t | max_iter = 100 , |
||
size_t | max_eval = 1000 , |
||
Real | conv_tol = 1.e-4 , |
||
Real | grad_tol = 1.e-4 , |
||
Real | max_step = 1000. |
||
) |
alternate constructor for objective/constraint call-backs; mixed gradient case: numerical objective, analytic constraints
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, Dakota::copy_data(), SNLLOptimizer::default_instantiate_constraint(), SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, 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) | nlf1_obj_eval, | ||
void(*)(int n, const RealVector &x, RealVector &g, int &result_mode) | nlf0_con_eval, | ||
size_t | max_iter = 100 , |
||
size_t | max_eval = 1000 , |
||
Real | conv_tol = 1.e-4 , |
||
Real | grad_tol = 1.e-4 , |
||
Real | max_step = 1000. |
||
) |
alternate constructor for objective/constraint call-backs; mixed gradient case: analytic objective, numerical constraints
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, Dakota::copy_data(), SNLLOptimizer::default_instantiate_constraint(), SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, 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 n, const RealVector &x, double &f, int &result_mode) | nlf0_obj_eval, | ||
void(*)(int n, const RealVector &x, RealVector &g, int &result_mode) | nlf0_con_eval, | ||
size_t | max_iter = 100 , |
||
size_t | max_eval = 1000 , |
||
Real | conv_tol = 1.e-4 , |
||
Real | grad_tol = 1.e-4 , |
||
Real | max_step = 1000. |
||
) |
alternate constructor for objective/constraint call-backs; numerical gradient case
This is an alternate constructor for performing an optimization using the passed in objective function and constraint function pointers.
References Minimizer::bigRealBoundSize, Minimizer::boundConstraintFlag, Dakota::copy_data(), SNLLOptimizer::default_instantiate_constraint(), SNLLOptimizer::default_instantiate_q_newton(), SNLLOptimizer::initialPoint, SNLLOptimizer::lowerBounds, SNLLOptimizer::nlfObjective, Minimizer::numConstraints, Minimizer::numContinuousVars, Iterator::outputLevel, 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().