$extrastylesheet
Dakota
Version 6.2
|
Wrapper class for HOPSPACK. More...
Public Member Functions | |
APPSOptimizer (ProblemDescDB &problem_db, Model &model) | |
constructor | |
APPSOptimizer (Model &model) | |
alternate constructor for on-the-fly instantiation without ProblemDescDB | |
~APPSOptimizer () | |
destructor | |
void | find_optimum () |
Performs the iterations to determine the optimal solution. | |
Protected Member Functions | |
void | set_apps_parameters () |
sets options for specific methods based on user specifications | |
void | initialize_variables_and_constraints () |
initializes problem variables and constraints | |
Protected Attributes | |
HOPSPACK::ParameterList | params |
Pointer to APPS parameter list. | |
HOPSPACK::ParameterList * | problemParams |
Pointer to APPS problem parameter sublist. | |
HOPSPACK::ParameterList * | linearParams |
Pointer to APPS linear constraint parameter sublist. | |
HOPSPACK::ParameterList * | mediatorParams |
Pointer to APPS mediator parameter sublist. | |
HOPSPACK::ParameterList * | citizenParams |
Pointer to APPS citizen/algorithm parameter sublist. | |
APPSEvalMgr * | evalMgr |
Pointer to the APPS evaluation manager object. | |
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 |
Wrapper class for HOPSPACK.
The APPSOptimizer class provides a wrapper for HOPSPACK, a Sandia-developed C++ library for generalized pattern search. HOPSPACK defaults to a coordinate pattern search but also allows for augmented search patterns. It can solve problems with bounds, linear constraints, and general nonlinear constraints. APPSOptimizer uses an APPSEvalMgr object to manage the function evaluations.
The user input mappings are as follows: output
max_function_evaluations
, constraint_tol
initial_delta
, contraction_factor
, threshold_delta
, solution_target
, synchronization
, merit_function
, constraint_penalty
, and smoothing_factor
are mapped into HOPS's "Display"
, "Maximum
Evaluations", "Active Tolerance"/"Nonlinear Active Tolerance", "Initial Step", "Contraction Factor", "Step Tolerance", "Objective
Target", "Synchronous Evaluations", "Penalty Function", "Penalty
Parameter", and "Penalty Smoothing Value" data attributes. Refer to the HOPS web site (https://software.sandia.gov/trac/hopspack) for additional information on HOPS objects and controls.
void find_optimum | ( | ) | [virtual] |
Performs the iterations to determine the optimal solution.
find_optimum redefines the Optimizer virtual function to perform the optimization using HOPS. It first sets up the problem data, then executes minimize() on the HOPS optimizer, and finally catalogues the results.
Implements Optimizer.
References Model::asynch_flag(), Iterator::bestResponseArray, Iterator::bestVariablesArray, APPSOptimizer::constraintMapIndices, APPSOptimizer::constraintMapMultipliers, APPSOptimizer::constraintMapOffsets, APPSOptimizer::evalMgr, Model::evaluation_capacity(), APPSOptimizer::initialize_variables_and_constraints(), Iterator::iteratedModel, Optimizer::localObjectiveRecast, Minimizer::numContinuousVars, Minimizer::numFunctions, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, APPSOptimizer::params, Model::primary_response_fn_sense(), APPSEvalMgr::set_asynch_flag(), and APPSEvalMgr::set_total_workers().
void set_apps_parameters | ( | ) | [protected] |
sets options for specific methods based on user specifications
Set all of the HOPS algorithmic parameters as specified in the DAKOTA input deck. This is called at construction time.
References APPSOptimizer::citizenParams, Minimizer::constraintTol, APPSOptimizer::evalMgr, ProblemDescDB::get_real(), ProblemDescDB::get_string(), ProblemDescDB::is_null(), APPSOptimizer::linearParams, Iterator::maxEvalConcurrency, Iterator::maxFunctionEvals, APPSOptimizer::mediatorParams, Minimizer::numContinuousVars, Minimizer::numNonlinearConstraints, Iterator::outputLevel, APPSOptimizer::params, Iterator::probDescDB, APPSOptimizer::problemParams, and APPSEvalMgr::set_blocking_synch().
Referenced by APPSOptimizer::APPSOptimizer().
void initialize_variables_and_constraints | ( | ) | [protected] |
initializes problem variables and constraints
Set the variables and constraints as specified in the DAKOTA input deck. This is done at run time.
References Minimizer::bigRealBoundSize, APPSOptimizer::constraintMapIndices, APPSOptimizer::constraintMapMultipliers, APPSOptimizer::constraintMapOffsets, Model::continuous_lower_bounds(), Model::continuous_upper_bounds(), Model::continuous_variables(), APPSOptimizer::evalMgr, Iterator::iteratedModel, Model::linear_eq_constraint_coeffs(), Model::linear_eq_constraint_targets(), Model::linear_ineq_constraint_coeffs(), Model::linear_ineq_constraint_lower_bounds(), Model::linear_ineq_constraint_upper_bounds(), APPSOptimizer::linearParams, Model::nonlinear_eq_constraint_targets(), Model::nonlinear_ineq_constraint_lower_bounds(), Model::nonlinear_ineq_constraint_upper_bounds(), Minimizer::numContinuousVars, Minimizer::numLinearEqConstraints, Minimizer::numLinearIneqConstraints, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, APPSOptimizer::problemParams, and APPSEvalMgr::set_constraint_map().
Referenced by APPSOptimizer::find_optimum().