$extrastylesheet
Dakota  Version 6.2
Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes | Private Member Functions | Static Private Member Functions
Optimizer Class Reference

Base class for the optimizer branch of the iterator hierarchy. More...

Inheritance diagram for Optimizer:
Minimizer Iterator APPSOptimizer COLINOptimizer CONMINOptimizer DOTOptimizer JEGAOptimizer NCSUOptimizer NLPQLPOptimizer NomadOptimizer NonlinearCGOptimizer NPSOLOptimizer OptDartsOptimizer SNLLOptimizer

List of all members.

Static Public Member Functions

static void not_available (const std::string &package_name)
 Static helper function: third-party opt packages which are not available.

Protected Member Functions

 Optimizer ()
 default constructor
 Optimizer (ProblemDescDB &problem_db, Model &model)
 alternate constructor; accepts a model
 Optimizer (unsigned short method_name, Model &model)
 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)
 alternate constructor for "on the fly" instantiations
 ~Optimizer ()
 destructor
void initialize_run ()
void core_run ()
 core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
void post_run (std::ostream &s)
void finalize_run ()
 utility function to perform common operations following post_run(); deallocation and resetting of instance pointers
void print_results (std::ostream &s)
virtual void find_optimum ()=0
 Used within the optimizer branch for computing the optimal solution. Redefines the run virtual function for the optimizer branch.

Protected Attributes

size_t numObjectiveFns
 number of objective functions (iterator view)
bool localObjectiveRecast
 flag indicating whether local recasting to a single objective is used
OptimizerprevOptInstance
 pointer containing previous value of optimizerInstance

Static Protected Attributes

static OptimizeroptimizerInstance
 pointer to Optimizer instance used in static member functions

Private Member Functions

void reduce_model (bool local_nls_recast, bool require_hessians)
 Wrap iteratedModel in a RecastModel that performs (weighted) multi-objective or sum-of-squared residuals transformation.
void objective_reduction (const Response &full_response, const BoolDeque &sense, const RealVector &full_wts, Response &reduced_response) const
 forward mapping: maps multiple primary response functions to a single weighted objective for single-objective optimizers

Static Private Member Functions

static void primary_resp_reducer (const Variables &full_vars, const Variables &reduced_vars, const Response &full_response, Response &reduced_response)
 Recast callback to reduce multiple objectives or residuals to a single objective, with gradients and Hessians as needed.

Detailed Description

Base class for the optimizer branch of the iterator hierarchy.

The Optimizer class provides common data and functionality for DOTOptimizer, CONMINOptimizer, NPSOLOptimizer, SNLLOptimizer, NLPQLPOptimizer, COLINOptimizer, and JEGAOptimizer.


Member Function Documentation

void initialize_run ( ) [protected, virtual]

Implements portions of initialize_run specific to Optimizers. This function should be invoked (or reimplemented) by any derived implementations of initialize_run() (which would otherwise hide it).

Reimplemented from Minimizer.

Reimplemented in SNLLOptimizer, NLPQLPOptimizer, CONMINOptimizer, and DOTOptimizer.

References Iterator::iteratedModel, Minimizer::minimizerRecasts, Optimizer::optimizerInstance, Optimizer::prevOptInstance, and Model::update_from_subordinate_model().

void core_run ( ) [inline, protected, 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 Optimizer::find_optimum().

void post_run ( std::ostream &  s) [protected, virtual]
void finalize_run ( ) [inline, protected, virtual]

utility function to perform common operations following post_run(); deallocation and resetting of instance pointers

Optional: perform finalization phases of run sequence, like deallocating memory and resetting instance pointers. Commonly used in sub-iterator executions. This is a virtual function; when re-implementing, a derived class must call its nearest parent's finalize_run(), typically _after_ performing its own implementation steps.

Reimplemented from Minimizer.

Reimplemented in SNLLOptimizer.

References Optimizer::optimizerInstance, and Optimizer::prevOptInstance.

void print_results ( std::ostream &  s) [protected, virtual]
void reduce_model ( bool  local_nls_recast,
bool  require_hessians 
) [private]
void primary_resp_reducer ( const Variables full_vars,
const Variables reduced_vars,
const Response full_response,
Response reduced_response 
) [static, private]

Recast callback to reduce multiple objectives or residuals to a single objective, with gradients and Hessians as needed.

Objective function map from multiple primary responses (objective or residuals) to a single objective. Currently supports weighted sum; may later want more general transformations, e.g., goal-oriented

References Iterator::iteratedModel, Optimizer::objective_reduction(), Optimizer::optimizerInstance, Iterator::outputLevel, Model::primary_response_fn_sense(), Model::primary_response_fn_weights(), and Model::subordinate_model().

Referenced by Optimizer::reduce_model().

void objective_reduction ( const Response full_response,
const BoolDeque &  sense,
const RealVector &  full_wts,
Response reduced_response 
) const [private]

forward mapping: maps multiple primary response functions to a single weighted objective for single-objective optimizers

This function is responsible for the mapping of multiple objective functions into a single objective for publishing to single-objective optimizers. Used in DOTOptimizer, NPSOLOptimizer, SNLLOptimizer, and SGOPTApplication on every function evaluation. The simple weighting approach (using primaryRespFnWts) is the only technique supported currently. The weightings are used to scale function values, gradients, and Hessians as needed.

References Response::active_set_request_vector(), Response::function_gradient_view(), Response::function_gradients(), Response::function_hessian_view(), Response::function_hessians(), Response::function_value(), Response::function_values(), Response::num_functions(), Minimizer::numConstraints, Minimizer::objective(), Minimizer::objective_gradient(), Minimizer::objective_hessian(), Iterator::outputLevel, and Dakota::write_precision.

Referenced by Optimizer::primary_resp_reducer().


The documentation for this class was generated from the following files: