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

Base class for local/global surrogate-based optimization/least squares. More...

Inheritance diagram for SurrBasedMinimizer:
Minimizer Iterator EffGlobalMinimizer SurrBasedGlobalMinimizer SurrBasedLocalMinimizer

List of all members.

Protected Member Functions

 SurrBasedMinimizer (ProblemDescDB &problem_db, Model &model)
 constructor
 ~SurrBasedMinimizer ()
 destructor
void derived_init_communicators (ParLevLIter pl_iter)
 derived class contributions to initializing the communicators associated with this Iterator instance
void derived_set_communicators (ParLevLIter pl_iter)
 derived class contributions to setting the communicators associated with this Iterator instance
void derived_free_communicators (ParLevLIter pl_iter)
 derived class contributions to freeing the communicators associated with this Iterator instance
void initialize_graphics (int iterator_server_id=1)
 initialize graphics customized for surrogate-based iteration
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 print_results (std::ostream &s)
virtual void minimize_surrogates ()=0
 Used for computing the optimal solution using a surrogate-based approach. Redefines the Iterator::core_run() virtual function.
void update_lagrange_multipliers (const RealVector &fn_vals, const RealMatrix &fn_grads)
 initialize and update Lagrange multipliers for basic Lagrangian
void update_augmented_lagrange_multipliers (const RealVector &fn_vals)
 initialize and update the Lagrange multipliers for augmented Lagrangian
bool update_filter (const RealVector &fn_vals)
 update a filter from a set of function values
Real lagrangian_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts)
 compute a Lagrangian function from a set of function values
void lagrangian_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealVector &lag_grad)
 compute the gradient of the Lagrangian function
Real augmented_lagrangian_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts)
 compute an augmented Lagrangian function from a set of function values
void augmented_lagrangian_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, const RealVector &nln_ineq_l_bnds, const RealVector &nln_ineq_u_bnds, const RealVector &nln_eq_tgts, RealVector &alag_grad)
 compute the gradient of the augmented Lagrangian function
Real penalty_merit (const RealVector &fn_vals, const BoolDeque &sense, const RealVector &primary_wts)
 compute a penalty function from a set of function values
void penalty_gradient (const RealVector &fn_vals, const RealMatrix &fn_grads, const BoolDeque &sense, const RealVector &primary_wts, RealVector &pen_grad)
 compute the gradient of the penalty function
Real constraint_violation (const RealVector &fn_vals, const Real &constraint_tol)
 compute the constraint violation from a set of function values

Protected Attributes

Iterator approxSubProbMinimizer
 the minimizer used on the surrogate model to solve the approximate subproblem on each surrogate-based iteration
int sbIterNum
 surrogate-based minimization iteration number
RealVectorList sbFilter
 Set of response function vectors defining a filter (objective vs. constraint violation) for iterate selection/rejection.
RealVector lagrangeMult
 Lagrange multipliers for basic Lagrangian calculations.
RealVector augLagrangeMult
 Lagrange multipliers for augmented Lagrangian calculations.
Real penaltyParameter
 the penalization factor for violated constraints used in quadratic penalty calculations; increased in update_penalty()
RealVector origNonlinIneqLowerBnds
 original nonlinear inequality constraint lower bounds (no relaxation)
RealVector origNonlinIneqUpperBnds
 original nonlinear inequality constraint upper bounds (no relaxation)
RealVector origNonlinEqTargets
 original nonlinear equality constraint targets (no relaxation)
Real eta
 constant used in etaSequence updates
Real alphaEta
 power for etaSequence updates when updating penalty
Real betaEta
 power for etaSequence updates when updating multipliers
Real etaSequence
 decreasing sequence of allowable constraint violation used in augmented Lagrangian updates (refer to Conn, Gould, and Toint, section 14.4)
size_t miPLIndex
 index for the active ParallelLevel within ParallelConfiguration::miPLIters

Detailed Description

Base class for local/global surrogate-based optimization/least squares.

These minimizers use a SurrogateModel to perform optimization based either on local trust region methods or global updating methods.


Member Function Documentation

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 SurrBasedMinimizer::minimize_surrogates().

void print_results ( std::ostream &  s) [protected, virtual]
void update_lagrange_multipliers ( const RealVector &  fn_vals,
const RealMatrix &  fn_grads 
) [protected]

initialize and update Lagrange multipliers for basic Lagrangian

For the Rockafellar augmented Lagrangian, simple Lagrange multiplier updates are available which do not require the active constraint gradients. For the basic Lagrangian, Lagrange multipliers are estimated through solution of a nonnegative linear least squares problem.

References Dakota::abort_handler(), Minimizer::bigRealBoundSize, Minimizer::constraintTol, Iterator::iteratedModel, SurrBasedMinimizer::lagrangeMult, Minimizer::numContinuousVars, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, Minimizer::objective_gradient(), SurrBasedMinimizer::origNonlinIneqLowerBnds, SurrBasedMinimizer::origNonlinIneqUpperBnds, Model::primary_response_fn_sense(), and Model::primary_response_fn_weights().

Referenced by SurrBasedLocalMinimizer::hard_convergence_check().

void update_augmented_lagrange_multipliers ( const RealVector &  fn_vals) [protected]

initialize and update the Lagrange multipliers for augmented Lagrangian

For the Rockafellar augmented Lagrangian, simple Lagrange multiplier updates are available which do not require the active constraint gradients. For the basic Lagrangian, Lagrange multipliers are estimated through solution of a nonnegative linear least squares problem.

References SurrBasedMinimizer::augLagrangeMult, SurrBasedMinimizer::betaEta, Minimizer::bigRealBoundSize, SurrBasedMinimizer::etaSequence, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, SurrBasedMinimizer::origNonlinEqTargets, SurrBasedMinimizer::origNonlinIneqLowerBnds, SurrBasedMinimizer::origNonlinIneqUpperBnds, and SurrBasedMinimizer::penaltyParameter.

Referenced by SurrBasedLocalMinimizer::hard_convergence_check(), EffGlobalMinimizer::minimize_surrogates_on_model(), and SurrBasedLocalMinimizer::tr_ratio_check().

bool update_filter ( const RealVector &  fn_vals) [protected]
Real lagrangian_merit ( const RealVector &  fn_vals,
const BoolDeque &  sense,
const RealVector &  primary_wts,
const RealVector &  nln_ineq_l_bnds,
const RealVector &  nln_ineq_u_bnds,
const RealVector &  nln_eq_tgts 
) [protected]

compute a Lagrangian function from a set of function values

The Lagrangian function computation sums the objective function and the Lagrange multipler terms for inequality/equality constraints. This implementation follows the convention in Vanderplaats with g<=0 and h=0. The bounds/targets passed in may reflect the original constraints or the relaxed constraints.

References Minimizer::bigRealBoundSize, Minimizer::constraintTol, SurrBasedMinimizer::lagrangeMult, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, and Minimizer::objective().

Referenced by SurrBasedLocalMinimizer::approx_subprob_objective_eval(), and SurrBasedLocalMinimizer::tr_ratio_check().

Real augmented_lagrangian_merit ( const RealVector &  fn_vals,
const BoolDeque &  sense,
const RealVector &  primary_wts,
const RealVector &  nln_ineq_l_bnds,
const RealVector &  nln_ineq_u_bnds,
const RealVector &  nln_eq_tgts 
) [protected]

compute an augmented Lagrangian function from a set of function values

The Rockafellar augmented Lagrangian function sums the objective function, Lagrange multipler terms for inequality/equality constraints, and quadratic penalty terms for inequality/equality constraints. This implementation follows the convention in Vanderplaats with g<=0 and h=0. The bounds/targets passed in may reflect the original constraints or the relaxed constraints.

References SurrBasedMinimizer::augLagrangeMult, Minimizer::bigRealBoundSize, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, Minimizer::objective(), and SurrBasedMinimizer::penaltyParameter.

Referenced by SurrBasedLocalMinimizer::approx_subprob_objective_eval(), EffGlobalMinimizer::get_best_sample(), EffGlobalMinimizer::minimize_surrogates_on_model(), and SurrBasedLocalMinimizer::tr_ratio_check().

Real penalty_merit ( const RealVector &  fn_vals,
const BoolDeque &  sense,
const RealVector &  primary_wts 
) [protected]

compute a penalty function from a set of function values

The penalty function computation applies a quadratic penalty to any constraint violations and adds this to the objective function(s) p = f + r_p cv.

References SurrBasedMinimizer::constraint_violation(), Minimizer::constraintTol, Minimizer::objective(), and SurrBasedMinimizer::penaltyParameter.

Referenced by SurrBasedLocalMinimizer::tr_ratio_check().

Real constraint_violation ( const RealVector &  fn_vals,
const Real &  constraint_tol 
) [protected]

compute the constraint violation from a set of function values

Compute the quadratic constraint violation defined as cv = g+^T g+ + h+^T h+. This implementation supports equality constraints and 2-sided inequalities. The constraint_tol allows for a small constraint infeasibility (used for penalty methods, but not Lagrangian methods).

References Minimizer::bigRealBoundSize, Minimizer::numNonlinearEqConstraints, Minimizer::numNonlinearIneqConstraints, Minimizer::numUserPrimaryFns, SurrBasedMinimizer::origNonlinEqTargets, SurrBasedMinimizer::origNonlinIneqLowerBnds, and SurrBasedMinimizer::origNonlinIneqUpperBnds.

Referenced by SurrBasedLocalMinimizer::hard_convergence_check(), EffGlobalMinimizer::minimize_surrogates_on_model(), SurrBasedMinimizer::penalty_merit(), SurrBasedLocalMinimizer::relax_constraints(), SurrBasedLocalMinimizer::tr_ratio_check(), SurrBasedMinimizer::update_filter(), and SurrBasedLocalMinimizer::update_penalty().


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