$extrastylesheet
Dakota  Version 6.2
Public Member Functions | Protected Member Functions | Protected Attributes
COLINOptimizer Class Reference

Wrapper class for optimizers defined using COLIN. More...

Inheritance diagram for COLINOptimizer:
Optimizer Minimizer Iterator

List of all members.

Public Member Functions

 COLINOptimizer (ProblemDescDB &problem_db, Model &model)
 standard constructor
 COLINOptimizer (const String &method_name, Model &model, int seed, int max_iter, int max_eval)
 alternate constructor for on-the-fly instantiations
 COLINOptimizer (const String &method_name, Model &model)
 alternate constructor for Iterator instantiations by name
 ~COLINOptimizer ()
 destructor
void reset ()
 clears internal optimizer state
void find_optimum ()
 iterates the COLIN solver to determine the optimal solution
bool returns_multiple_points () const
 some COLIN methods can return multiple points

Protected Member Functions

void solver_setup (unsigned short method_name)
 convenience function for setting up the particular COLIN solver and appropriate Application
void set_rng (int seed)
 sets up the random number generator for stochastic methods
void set_solver_parameters ()
 sets construct-time options for specific methods based on user specifications, including calling method-specific set functions
void post_run (std::ostream &s)
 Get the final set of points from the solver Look up responses and sort, first according to constraint violation, then according to function value.
std::pair< bool, bool > colin_cache_lookup (const colin::AppResponse &colinResponse, Response &tmpResponseHolder)
 Retrieve response from Colin AppResponse, return pair indicating success for <objective, constraints>
double constraint_violation (const Response &tmpResponseHolder)
 Compute constraint violation, based on nonlinear constraints in iteratedModel and provided Response data.

Protected Attributes

short solverType
 COLIN solver sub-type as enumerated in COLINOptimizer.cpp.
colin::SolverHandle colinSolver
 handle to the COLIN solver
std::pair
< colin::ApplicationHandle,
COLINApplication * > 
colinProblem
 handle and pointer to the COLINApplication object
colin::EvaluationManager_Base * colinEvalMgr
 pointer to the COLIN evalutaion manager object
utilib::RNG * rng
 random number generator pointer
bool blockingSynch
 the synchronization setting: true if blocking, false if nonblocking
Real constraint_penalty
 Buffer to hold problem constraint_penalty parameter.
bool constant_penalty
 Buffer to hold problem constant_penalty parameter.

Detailed Description

Wrapper class for optimizers defined using COLIN.

The COLINOptimizer class wraps COLIN, a Sandia-developed C++ optimization interface library. A variety of COLIN optimizers are defined in COLIN and its associated libraries, including SCOLIB which contains the optimization components from the old COLINY (formerly SGOPT) library. COLIN contains optimizers such as genetic algorithms, pattern search methods, and other nongradient-based techniques. COLINOptimizer uses a COLINApplication object to perform the function evaluations.

The user input mappings are as follows: max_iterations, max_function_evaluations, convergence_tolerance, and solution_accuracy are mapped into COLIN's max_iterations, max_function_evaluations_this_trial, function_value_tolerance, sufficient_objective_value properties. An outputLevel is mapped to COLIN's output_level property and a setting of debug activates output of method initialization and sets the COLIN debug attribute to 10000 for the DEBUG output level. Refer to [Hart, W.E., 2006] for additional information on COLIN objects and controls.


Constructor & Destructor Documentation

COLINOptimizer ( ProblemDescDB problem_db,
Model model 
)
COLINOptimizer ( const String &  method_name,
Model model,
int  seed,
int  max_iter,
int  max_eval 
)

alternate constructor for on-the-fly instantiations

Alternate constructor for on-the-fly instantiations.

References Iterator::maxFunctionEvals, Iterator::maxIterations, Iterator::method_string_to_enum(), COLINOptimizer::set_rng(), COLINOptimizer::set_solver_parameters(), and COLINOptimizer::solver_setup().

COLINOptimizer ( const String &  method_name,
Model model 
)

alternate constructor for Iterator instantiations by name

Alternate constructor for Iterator instantiations by name.

References Iterator::method_string_to_enum(), COLINOptimizer::set_solver_parameters(), and COLINOptimizer::solver_setup().


Member Function Documentation

void find_optimum ( ) [virtual]
bool returns_multiple_points ( ) const [virtual]

some COLIN methods can return multiple points

Designate which solvers can return multiple final points.

Reimplemented from Iterator.

References COLINOptimizer::solverType.

void solver_setup ( unsigned short  method_name) [protected]

convenience function for setting up the particular COLIN solver and appropriate Application

This convenience function is called by the constructors in order to instantiate the solver.

References COLINOptimizer::colinProblem, COLINOptimizer::colinSolver, COLINOptimizer::constant_penalty, COLINOptimizer::constraint_penalty, ProblemDescDB::get_string(), Iterator::method_enum_to_string(), Iterator::probDescDB, and COLINOptimizer::solverType.

Referenced by COLINOptimizer::COLINOptimizer().

void set_rng ( int  seed) [protected]

sets up the random number generator for stochastic methods

Instantiate random number generator (RNG).

References COLINOptimizer::colinSolver, and COLINOptimizer::rng.

Referenced by COLINOptimizer::COLINOptimizer().

void set_solver_parameters ( ) [protected]
void post_run ( std::ostream &  s) [protected, virtual]
std::pair< bool, bool > colin_cache_lookup ( const colin::AppResponse &  colinResponse,
Response tmpResponseHolder 
) [protected]

Retrieve response from Colin AppResponse, return pair indicating success for <objective, constraints>

Encapsulated Colin Cache response extraction, which will ultimately become the default lookup. Might want to return separate vectors of function values and constraints for use in the sort, but not for now (least change). Return true if not needed or successful lookup.

References Response::function_value(), Minimizer::numNonlinearConstraints, and Optimizer::numObjectiveFns.

Referenced by COLINOptimizer::post_run().

double constraint_violation ( const Response tmpResponseHolder) [protected]

Compute constraint violation, based on nonlinear constraints in iteratedModel and provided Response data.

BMA TODO: incorporate constraint tolerance, possibly via elevating SurrBasedMinimizer::constraint_violation(). Always use iteratedModel to get the constraints; they are in the right space.

References Response::function_values(), Iterator::iteratedModel, Model::nonlinear_eq_constraint_targets(), Model::nonlinear_ineq_constraint_lower_bounds(), Model::nonlinear_ineq_constraint_upper_bounds(), Model::num_nonlinear_eq_constraints(), Model::num_nonlinear_ineq_constraints(), and Minimizer::numIterPrimaryFns.

Referenced by COLINOptimizer::post_run().


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