Dakota
Version
Explore and Predict with Confidence
|
Wrapper class for the CONMIN optimization library. More...
Public Member Functions | |
CONMINOptimizer (ProblemDescDB &problem_db, Model &model) | |
standard constructor | |
CONMINOptimizer (const String &method_string, Model &model) | |
alternate constructor; construct without ProblemDescDB | |
~CONMINOptimizer () | |
destructor | |
void | core_run () |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post More... | |
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 | reset () |
restore initial state for repeated sub-iterator executions | |
virtual void | nested_variable_mappings (const SizetArray &c_index1, const SizetArray &di_index1, const SizetArray &ds_index1, const SizetArray &dr_index1, const ShortArray &c_target2, const ShortArray &di_target2, const ShortArray &ds_target2, const ShortArray &dr_target2) |
set primaryA{CV,DIV,DRV}MapIndices, secondaryA{CV,DIV,DRV}MapTargets within derived Iterators; supports computation of higher-level sensitivities in nested contexts (e.g., derivatives of statistics w.r.t. inserted design variables) | |
virtual void | nested_response_mappings (const RealMatrix &primary_coeffs, const RealMatrix &secondary_coeffs) |
set primaryResponseCoefficients, secondaryResponseCoefficients within derived Iterators; Necessary for scalarization case in MLMC NonDMultilevelSampling to map scalarization in nested context | |
virtual void | initialize_iterator (int job_index) |
used by IteratorScheduler to set the starting data for a run | |
virtual void | pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack starting data for an iterator run | |
virtual void | unpack_parameters_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data for an iterator run | |
virtual void | unpack_parameters_initialize (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data and initialize an iterator run | |
virtual void | pack_results_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack results data from an iterator run | |
virtual void | unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack results data from an iterator run | |
virtual void | update_local_results (int job_index) |
used by IteratorScheduler to update local results arrays | |
virtual const Variables & | variables_results () const |
return a single final iterator solution (variables) | |
virtual const Response & | response_results () const |
return a single final iterator solution (response) | |
virtual const VariablesArray & | variables_array_results () |
return multiple final iterator solutions (variables). This should only be used if returns_multiple_points() returns true. | |
virtual const ResponseArray & | response_array_results () |
return multiple final iterator solutions (response). This should only be used if returns_multiple_points() returns true. | |
virtual void | response_results_active_set (const ActiveSet &set) |
set the requested data for the final iterator response results | |
virtual const RealSymMatrix & | response_error_estimates () const |
return error estimates associated with the final iterator solution | |
virtual bool | accepts_multiple_points () const |
indicates if this iterator accepts multiple initial points. Default return is false. Override to return true if appropriate. | |
virtual bool | returns_multiple_points () const |
indicates if this iterator returns multiple final points. Default return is false. Override to return true if appropriate. | |
virtual void | initial_point (const Variables &pt) |
sets the initial point for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initial_point (const RealVector &pt) |
sets the initial point (active continuous variables) for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initial_points (const VariablesArray &pts) |
sets the multiple initial points for this iterator. This should only be used if accepts_multiple_points() returns true. | |
virtual void | variable_bounds (const RealVector &cv_lower_bnds, const RealVector &cv_upper_bnds) |
assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | linear_constraints (const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_lb, const RealVector &lin_ineq_ub, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_tgt) |
assign linear inequality and linear equality constraints for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | nonlinear_constraints (const RealVector &nln_ineq_lb, const RealVector &nln_ineq_ub, const RealVector &nln_eq_tgt) |
assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initialize_graphics (int iterator_server_id=1) |
initialize the 2D graphics window and the tabular graphics data More... | |
virtual unsigned short | uses_method () const |
return name of any enabling iterator used by this iterator | |
virtual void | method_recourse () |
perform a method switch, if possible, due to a detected conflict | |
virtual const VariablesArray & | all_variables () |
return the complete set of evaluated variables | |
virtual const RealMatrix & | all_samples () |
return the complete set of evaluated samples | |
virtual const IntResponseMap & | all_responses () const |
return the complete set of computed responses | |
virtual size_t | num_samples () const |
get the current number of samples | |
virtual void | sampling_reset (size_t min_samples, bool all_data_flag, bool stats_flag) |
reset sampling iterator to use at least min_samples | |
virtual void | sampling_reference (size_t samples_ref) |
set reference number of samples, which is a lower bound during reset | |
virtual void | sampling_increment () |
increment to next in sequence of refinement samples | |
virtual void | random_seed (int seed) |
set randomSeed, if present | |
virtual unsigned short | sampling_scheme () const |
return sampling name | |
virtual bool | compact_mode () const |
returns Analyzer::compactMode | |
virtual IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
virtual void | declare_sources () |
Declare sources to the evaluations database. | |
void | init_communicators (ParLevLIter pl_iter) |
initialize the communicators associated with this Iterator instance | |
void | set_communicators (ParLevLIter pl_iter) |
set the communicators associated with this Iterator instance | |
void | free_communicators (ParLevLIter pl_iter) |
free the communicators associated with this Iterator instance | |
void | resize_communicators (ParLevLIter pl_iter, bool reinit_comms) |
Resize the communicators. This is called from the letter's resize() | |
void | parallel_configuration_iterator (ParConfigLIter pc_iter) |
set methodPCIter | |
ParConfigLIter | parallel_configuration_iterator () const |
return methodPCIter | |
void | parallel_configuration_iterator_map (std::map< size_t, ParConfigLIter > pci_map) |
set methodPCIterMap | |
std::map< size_t, ParConfigLIter > | parallel_configuration_iterator_map () const |
return methodPCIterMap | |
void | run (ParLevLIter pl_iter) |
invoke set_communicators(pl_iter) prior to run() | |
void | run () |
orchestrate initialize/pre/core/post/finalize phases More... | |
void | assign_rep (std::shared_ptr< Iterator > iterator_rep) |
replaces existing letter with a new one More... | |
void | iterated_model (const Model &model) |
set the iteratedModel (iterators and meta-iterators using a single model instance) | |
Model & | iterated_model () |
return the iteratedModel (iterators & meta-iterators using a single model instance) | |
ProblemDescDB & | problem_description_db () const |
return the problem description database (probDescDB) | |
ParallelLibrary & | parallel_library () const |
return the parallel library (parallelLib) | |
void | method_name (unsigned short m_name) |
set the method name to an enumeration value | |
unsigned short | method_name () const |
return the method name via its native enumeration value | |
void | method_string (const String &m_str) |
set the method name by string | |
String | method_string () const |
return the method name by string | |
String | method_enum_to_string (unsigned short method_enum) const |
convert a method name enumeration value to a string | |
unsigned short | method_string_to_enum (const String &method_str) const |
convert a method name string to an enumeration value | |
String | submethod_enum_to_string (unsigned short submethod_enum) const |
convert a sub-method name enumeration value to a string | |
const String & | method_id () const |
return the method identifier (methodId) | |
int | maximum_evaluation_concurrency () const |
return the maximum evaluation concurrency supported by the iterator | |
void | maximum_evaluation_concurrency (int max_conc) |
set the maximum evaluation concurrency supported by the iterator | |
size_t | maximum_iterations () const |
return the maximum iterations for this iterator | |
void | maximum_iterations (size_t max_iter) |
set the maximum iterations for this iterator | |
void | convergence_tolerance (Real conv_tol) |
set the method convergence tolerance (convergenceTol) | |
Real | convergence_tolerance () const |
return the method convergence tolerance (convergenceTol) | |
void | output_level (short out_lev) |
set the method output level (outputLevel) | |
short | output_level () const |
return the method output level (outputLevel) | |
void | summary_output (bool summary_output_flag) |
Set summary output control; true enables evaluation/results summary. | |
size_t | num_final_solutions () const |
return the number of solutions to retain in best variables/response arrays | |
void | num_final_solutions (size_t num_final) |
set the number of solutions to retain in best variables/response arrays | |
void | active_set (const ActiveSet &set) |
set the default active set (for use with iterators that employ evaluate_parameter_sets()) | |
const ActiveSet & | active_set () const |
return the default active set (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_vector (const ShortArray &asv) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
const ShortArray & | active_set_request_vector () const |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_values (short asv_val) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | sub_iterator_flag (bool si_flag) |
set subIteratorFlag (and update summaryOutputFlag if needed) | |
bool | is_null () const |
function to check iteratorRep (does this envelope contain a letter?) | |
std::shared_ptr< Iterator > | iterator_rep () const |
returns iteratorRep for access to derived class member functions that are not mapped to the top Iterator level | |
virtual void | eval_tag_prefix (const String &eval_id_str) |
set the hierarchical eval ID tag prefix More... | |
std::shared_ptr< TraitsBase > | traits () const |
returns methodTraits for access to derived class member functions that are not mapped to the top TraitsBase level | |
bool | top_level () |
Return whether the iterator is the top level iterator. | |
void | top_level (bool tflag) |
Set the iterator's top level flag. | |
Protected Member Functions | |
void | initialize_run () |
utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers More... | |
void | check_sub_iterator_conflict () |
detect any conflicts due to recursive use of the same Fortran solver More... | |
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 | initialize_run () |
void | post_run (std::ostream &s) |
void | finalize_run () |
utility function to perform common operations following post_run(); deallocation and resetting of instance pointers More... | |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
void | 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... | |
Private Member Functions | |
void | initialize () |
Shared constructor code. | |
void | allocate_workspace () |
Allocates workspace for the optimizer. | |
void | deallocate_workspace () |
Releases workspace memory. | |
void | allocate_constraints () |
Allocates constraint mappings. | |
Private Attributes | |
int | conminInfo |
INFO from CONMIN manual. More... | |
int | printControl |
IPRINT from CONMIN manual (controls output verbosity) More... | |
Real | objFnValue |
value of the objective function passed to CONMIN | |
RealVector | constraintValues |
array of nonlinear constraint values passed to CONMIN More... | |
int | numConminNlnConstr |
total number of nonlinear constraints seen by CONMIN | |
int | numConminLinConstr |
total number of linear constraints seen by CONMIN | |
int | numConminConstr |
total number of linear and nonlinear constraints seen by CONMIN | |
int | N1 |
Size variable for CONMIN arrays. See CONMIN manual. More... | |
int | N2 |
Size variable for CONMIN arrays. See CONMIN manual. More... | |
int | N3 |
Size variable for CONMIN arrays. See CONMIN manual. More... | |
int | N4 |
Size variable for CONMIN arrays. See CONMIN manual. More... | |
int | N5 |
Size variable for CONMIN arrays. See CONMIN manual. More... | |
int | NFDG |
Finite difference flag. | |
int | IPRINT |
Flag to control amount of output data. | |
int | ITMAX |
Flag to specify the maximum number of iterations. | |
double | FDCH |
Relative finite difference step size. | |
double | FDCHM |
Absolute finite difference step size. | |
double | CT |
Constraint thickness parameter. More... | |
double | CTMIN |
Minimum absolute value of CT used during optimization. | |
double | CTL |
Constraint thickness parameter for linear and side constraints. | |
double | CTLMIN |
Minimum value of CTL used during optimization. | |
double | DELFUN |
Relative convergence criterion threshold. | |
double | DABFUN |
Absolute convergence criterion threshold. | |
double * | conminDesVars |
Array of design variables used by CONMIN (length N1 = numdv+2) | |
double * | conminLowerBnds |
Array of lower bounds used by CONMIN (length N1 = numdv+2) | |
double * | conminUpperBnds |
Array of upper bounds used by CONMIN (length N1 = numdv+2) | |
double * | S |
Internal CONMIN array. More... | |
double * | G1 |
Internal CONMIN array. More... | |
double * | G2 |
Internal CONMIN array. More... | |
double * | B |
Internal CONMIN array. More... | |
double * | C |
Internal CONMIN array. More... | |
int * | MS1 |
Internal CONMIN array. More... | |
double * | SCAL |
Internal CONMIN array. More... | |
double * | DF |
Internal CONMIN array. More... | |
double * | A |
Internal CONMIN array. More... | |
int * | ISC |
Internal CONMIN array. More... | |
int * | IC |
Internal CONMIN array. More... | |
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... | |
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 | |
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 | |
Wrapper class for the CONMIN optimization library.
The CONMINOptimizer class provides a wrapper for CONMIN, a Public-domain Fortran 77 optimization library written by Gary Vanderplaats under contract to NASA Ames Research Center. The CONMIN User's Manual is contained in NASA Technical Memorandum X-62282, 1978. CONMIN uses a reverse communication mode, which avoids the static member function issues that arise with function pointer designs (see NPSOLOptimizer and SNLLOptimizer).
The user input mappings are as follows: max_iterations
is mapped into CONMIN's ITMAX
parameter, max_function_evaluations
is implemented directly in the core_run() loop since there is no CONMIN parameter equivalent, convergence_tolerance
is mapped into CONMIN's DELFUN
and DABFUN
parameters, output
verbosity is mapped into CONMIN's IPRINT
parameter (verbose: IPRINT
= 4; quiet: IPRINT
= 2), gradient mode is mapped into CONMIN's NFDG
parameter, and finite difference step size is mapped into CONMIN's FDCH
and FDCHM
parameters. Refer to [Vanderplaats, 1978] for additional information on CONMIN parameters.
|
virtual |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
Virtual run function for the iterator class hierarchy. All derived classes need to redefine it.
Reimplemented from Iterator.
References CONMINOptimizer::A, Iterator::activeSet, CONMINOptimizer::B, Iterator::bestResponseArray, Iterator::bestVariablesArray, Minimizer::bigRealBoundSize, CONMINOptimizer::C, CONMINOptimizer::conminDesVars, CONMINOptimizer::conminInfo, CONMINOptimizer::conminLowerBnds, CONMINOptimizer::conminUpperBnds, Optimizer::constraintMapIndices, Optimizer::constraintMapMultipliers, Optimizer::constraintMapOffsets, CONMINOptimizer::constraintValues, Model::continuous_variables(), Dakota::copy_data(), CONMINOptimizer::CT, CONMINOptimizer::CTL, CONMINOptimizer::CTLMIN, CONMINOptimizer::CTMIN, Model::current_response(), CONMINOptimizer::DABFUN, CONMINOptimizer::deallocate_workspace(), CONMINOptimizer::DELFUN, CONMINOptimizer::DF, Model::evaluate(), CONMINOptimizer::FDCH, CONMINOptimizer::FDCHM, Response::function_gradients(), Response::function_values(), CONMINOptimizer::G1, CONMINOptimizer::G2, Model::gradient_type(), CONMINOptimizer::IC, CONMINOptimizer::IPRINT, CONMINOptimizer::ISC, Iterator::iteratedModel, CONMINOptimizer::ITMAX, Model::linear_eq_constraint_coeffs(), Model::linear_ineq_constraint_coeffs(), Optimizer::localObjectiveRecast, Iterator::maxFunctionEvals, CONMINOptimizer::MS1, CONMINOptimizer::N1, CONMINOptimizer::N2, CONMINOptimizer::N3, CONMINOptimizer::N4, CONMINOptimizer::N5, CONMINOptimizer::NFDG, Model::num_linear_eq_constraints(), Model::num_linear_ineq_constraints(), CONMINOptimizer::numConminConstr, CONMINOptimizer::numConminNlnConstr, Minimizer::numContinuousVars, Optimizer::numObjectiveFns, Minimizer::numUserPrimaryFns, CONMINOptimizer::objFnValue, Iterator::outputLevel, Model::primary_response_fn_sense(), ActiveSet::request_value(), ActiveSet::request_values(), CONMINOptimizer::S, CONMINOptimizer::SCAL, Minimizer::speculativeFlag, and Minimizer::vendorNumericalGradFlag.
|
protectedvirtual |
utility function to perform common operations prior to pre_run(); typically memory initialization; setting of instance pointers
Perform initialization phases of run sequence, like allocating memory and setting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's initialize_run(), typically before performing its own implementation steps.
Reimplemented from Iterator.
References CONMINOptimizer::allocate_constraints(), CONMINOptimizer::allocate_workspace(), CONMINOptimizer::conminDesVars, CONMINOptimizer::conminLowerBnds, CONMINOptimizer::conminUpperBnds, Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Model::continuous_variables(), CONMINOptimizer::IC, Optimizer::initialize_run(), CONMINOptimizer::ISC, Iterator::iteratedModel, CONMINOptimizer::N1, CONMINOptimizer::numConminConstr, and Minimizer::numContinuousVars.
|
protectedvirtual |
detect any conflicts due to recursive use of the same Fortran solver
This is used to avoid clashes in state between non-object-oriented (i.e., F77, C) iterator executions, when such iterators could potentially be executing simultaneously (e.g., nested execution). It is not an issue (and a used method is not reported) in cases where a helper execution is completed before a lower level one could be initiated; an example of this is DIRECT for maximization of expected improvement: the EIF maximization is completed before a new point evaluation (which could include nested iteration) is performed.
Reimplemented from Iterator.
References Iterator::is_null(), Iterator::iteratedModel, Iterator::method_name(), Iterator::method_recourse(), Model::subordinate_iterator(), Model::subordinate_models(), and Iterator::uses_method().
|
private |
INFO from CONMIN manual.
Information requested by CONMIN: 1 = evaluate objective and constraints, 2 = evaluate gradients of objective and constraints.
Referenced by CONMINOptimizer::core_run(), and CONMINOptimizer::initialize().
|
private |
IPRINT from CONMIN manual (controls output verbosity)
Values range from 0 (nothing) to 4 (most output). 0 = nothing, 1 = initial and final function information, 2 = all of #1 plus function value and design vars at each iteration, 3 = all of #2 plus constraint values and direction vectors, 4 = all of #3 plus gradients of the objective function and constraints, 5 = all of #4 plus proposed design vector, plus objective and constraint functions from the 1-D search
Referenced by CONMINOptimizer::initialize().
|
private |
array of nonlinear constraint values passed to CONMIN
This array must be of nonzero length and must contain only one-sided inequality constraints which are <= 0 (which requires a transformation from 2-sided inequalities and equalities).
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::core_run().
|
private |
Size variable for CONMIN arrays. See CONMIN manual.
N1 = number of variables + 2
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::initialize_run().
|
private |
Size variable for CONMIN arrays. See CONMIN manual.
N2 = number of constraints + 2*(number of variables)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::core_run().
|
private |
Size variable for CONMIN arrays. See CONMIN manual.
N3 = Maximum possible number of active constraints.
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::core_run().
|
private |
Size variable for CONMIN arrays. See CONMIN manual.
N4 = Maximum(N3,number of variables)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::core_run().
|
private |
Size variable for CONMIN arrays. See CONMIN manual.
N5 = 2*(N4)
Referenced by CONMINOptimizer::allocate_workspace(), and CONMINOptimizer::core_run().
|
private |
Constraint thickness parameter.
The value of CT decreases in magnitude during optimization.
Referenced by CONMINOptimizer::core_run(), and CONMINOptimizer::initialize().
|
private |
Internal CONMIN array.
Move direction in N-dimensional space.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage of constraint values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage of constraint values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage for computations involving array S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage for use with arrays B and S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage for use with arrays B and S.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Vector of scaling parameters for design parameter values.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary storage for analytic gradient data.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Temporary 2-D array for storage of constraint gradients.
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), and CONMINOptimizer::deallocate_workspace().
|
private |
Internal CONMIN array.
Array of flags to identify linear constraints. (not used in this implementation of CONMIN)
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::initialize_run().
|
private |
Internal CONMIN array.
Array of flags to identify active and violated constraints
Referenced by CONMINOptimizer::allocate_workspace(), CONMINOptimizer::core_run(), CONMINOptimizer::deallocate_workspace(), and CONMINOptimizer::initialize_run().