SurrBasedLocalMinimizer Class Reference

and nonlinear least squares. More...

Inheritance diagram for SurrBasedLocalMinimizer:

SurrBasedMinimizer Minimizer Iterator List of all members.

Public Member Functions

 SurrBasedLocalMinimizer (Model &model)
 constructor
 ~SurrBasedLocalMinimizer ()
 destructor

Private Member Functions

void minimize_surrogates ()
 global, or hierarchical surrogates over a series of trust regions.
void reset ()
 reset convergence controls in case of multiple SBLM executions
bool tr_bounds (const RealVector &global_lower_bnds, const RealVector &global_upper_bnds, RealVector &tr_lower_bnds, RealVector &tr_upper_bnds)
 compute current trust region bounds
void find_center_truth (const Iterator &dace_iterator, Model &truth_model)
 retrieve responseCenterTruth if possible, evaluate it if not
void find_center_approx ()
 retrieve responseCenter_approx if possible, evaluate it if not
void hard_convergence_check (const Response &response_truth, const RealVector &c_vars, const RealVector &lower_bnds, const RealVector &upper_bnds)
 merit function near zero)
void tr_ratio_check (const RealVector &c_vars_star, const RealVector &tr_lower_bounds, const RealVector &tr_upper_bounds)
 region resizing) and check for soft convergence (diminishing returns)
void update_penalty (const RealVector &fns_center_truth, const RealVector &fns_star_truth)
 initialize and update the penaltyParameter
void relax_constraints (const RealVector &lower_bnds, const RealVector &upper_bnds)
 relax constraints by updating bounds when current iterate is infeasible

Static Private Member Functions

static void approx_subprob_objective_eval (const Variables &surrogate_vars, const Variables &recast_vars, const Response &surrogate_response, Response &recast_response)
 static function used to define the approximate subproblem objective.
static void approx_subprob_constraint_eval (const Variables &surrogate_vars, const Variables &recast_vars, const Response &surrogate_response, Response &recast_response)
 static function used to define the approximate subproblem constraints.
static void hom_objective_eval (int &mode, int &n, double *tau_and_x, double &f, double *grad_f, int &)
 homotopy constraint relaxation formulation.
static void hom_constraint_eval (int &mode, int &ncnln, int &n, int &nrowj, int *needc, double *tau_and_x, double *c, double *cjac, int &nstate)
 homotopy constraint relaxation formulation.

Private Attributes

Real origTrustRegionFactor
 original user specification for trustRegionFactor
Real trustRegionFactor
 bound - lower bound for each design variable).
Real minTrustRegionFactor
 factor is reduced below the value of minTrustRegionFactor
Real trRatioContractValue
 trust region ratio min value: contract tr if ratio below this value
Real trRatioExpandValue
 trust region ratio sufficient value: expand tr if ratio above this value
Real gammaContract
 trust region contraction factor
Real gammaExpand
 trust region expansion factor
short approxSubProbObj
 or AUGMENTED_LAGRANGIAN_OBJ
short approxSubProbCon
 ORIGINAL_CON.
Model approxSubProbModel
 involve a RecastModel recursion applied to iteratedModel
bool recastSubProb
 flag to indicate when approxSubProbModel involves a RecastModel recursion
short trConstraintRelax
 points: NO_RELAX or HOMOTOPY
short meritFnType
 ADAPTIVE_PENALTY_MERIT, LAGRANGIAN_MERIT, or AUGMENTED_LAGRANGIAN_MERIT.
short acceptLogic
 type of iterate acceptance test logic: FILTER or TR_RATIO
int penaltyIterOffset
 for adaptive_penalty merit functions
short convergenceFlag
 code indicating satisfaction of hard or soft convergence conditions
short softConvCount
 count reaches softConvLimit, stop SBLM.
short softConvLimit
 exceeded by softConvCount, stop SBLM.
bool truthGradientFlag
 flags the use/availability of truth gradients within the SBLM process
bool approxGradientFlag
 flags the use/availability of surrogate gradients within the SBLM process
bool truthHessianFlag
 flags the use/availability of truth Hessians within the SBLM process
bool approxHessianFlag
 flags the use/availability of surrogate Hessians within the SBLM process
bool correctionFlag
 of each trust region
bool globalApproxFlag
 flags the use of a global data fit surrogate (rsm, ann, mars, kriging)
bool multiptApproxFlag
 flags the use of a multipoint data fit surrogate (TANA)
bool localApproxFlag
 flags the use of a local data fit surrogate (Taylor series)
bool hierarchApproxFlag
 flags the use of a model hierarchy/multifidelity surrogate
bool newCenterFlag
 a new trust region center
bool daceCenterPtFlag
 evaluations for global approximations (CCD, Box-Behnken)
bool multiLayerBypassFlag
 (responseCenterTruth and responseStarTruth).
bool useGradsFlag
 to be evaluated for each DACE point in global surrogate builds.
RealVector nonlinIneqLowerBndsSlack
 individual violations of nonlinear inequality constraint lower bounds
RealVector nonlinIneqUpperBndsSlack
 individual violations of nonlinear inequality constraint upper bounds
RealVector nonlinEqTargetsSlack
 individual violations of nonlinear equality constraint targets
Real tau
 constraint relaxation parameter
Real alpha
 constraint relaxation parameter backoff parameter (multiplier)
Variables varsCenter
 variables at the trust region center
Response responseCenterApprox
 approx response at trust region center
Response responseStarApprox
 approx response at SBLM cycle minimum
Response responseCenterTruth
 truth response at trust region center
Response responseStarTruth
 truth response at SBLM cycle minimum

Static Private Attributes

static SurrBasedLocalMinimizersblmInstance
 pointer to SBLM instance used in static member functions

Detailed Description

and nonlinear least squares.

This minimizer uses a SurrogateModel to perform minimization based on local, global, or hierarchical surrogates. It achieves provable convergence through the use of a sequence of trust regions and the application of surrogate corrections at the trust region centers.


Member Function Documentation

void minimize_surrogates (  )  [private, virtual]

global, or hierarchical surrogates over a series of trust regions.

Trust region-based strategy to perform surrogate-based optimization in subregions (trust regions) of the parameter space. The minimizer operates on approximations in lieu of the more expensive simulation-based response functions. The size of the trust region is varied according to the goodness of the agreement between the approximations and the true response functions.

Implements SurrBasedMinimizer.

void hard_convergence_check ( const Response response_truth,
const RealVector c_vars,
const RealVector lower_bnds,
const RealVector upper_bnds 
) [private]

merit function near zero)

The hard convergence check computes the gradient of the merit function at the trust region center, performs a projection for active bound constraints (removing any gradient component directed into an active bound), and signals convergence if the 2-norm of this projected gradient is less than convergenceTol.

void tr_ratio_check ( const RealVector c_vars_star,
const RealVector tr_lower_bnds,
const RealVector tr_upper_bnds 
) [private]

region resizing) and check for soft convergence (diminishing returns)

Assess acceptance of SBLM iterate (trust region ratio or filter) and compute soft convergence metrics (number of consecutive failures, min trust region size, etc.) to assess whether the convergence rate has decreased to a point where the process should be terminated (diminishing returns).

void update_penalty ( const RealVector fns_center_truth,
const RealVector fns_star_truth 
) [private]

initialize and update the penaltyParameter

Scaling of the penalty value is important to avoid rejecting SBLM iterates which must increase the objective to achieve a reduction in constraint violation. In the basic penalty case, the penalty is ramped exponentially based on the iteration counter. In the adaptive case, the ratio of relative change between center and star points for the objective and constraint violation values is used to rescale penalty values.

void approx_subprob_objective_eval ( const Variables surrogate_vars,
const Variables recast_vars,
const Response surrogate_response,
Response recast_response 
) [static, private]

static function used to define the approximate subproblem objective.

Objective functions evaluator for solution of approximate subproblem using a RecastModel.

void approx_subprob_constraint_eval ( const Variables surrogate_vars,
const Variables recast_vars,
const Response surrogate_response,
Response recast_response 
) [static, private]

static function used to define the approximate subproblem constraints.

Constraint functions evaluator for solution of approximate subproblem using a RecastModel.

void hom_objective_eval ( int &  mode,
int &  n,
double *  tau_and_x,
double &  f,
double *  grad_f,
int &   
) [static, private]

homotopy constraint relaxation formulation.

NPSOL objective functions evaluator for solution of homotopy constraint relaxation parameter optimization. This constrained optimization problem performs the update of the tau parameter in the homotopy heuristic approach used to relax the constraints in the original problem .

void hom_constraint_eval ( int &  mode,
int &  ncnln,
int &  n,
int &  nrowj,
int *  needc,
double *  tau_and_x,
double *  c,
double *  cjac,
int &  nstate 
) [static, private]

homotopy constraint relaxation formulation.

NPSOL constraint functions evaluator for solution of homotopy constraint relaxation parameter optimization. This constrained optimization problem performs the update of the tau parameter in the homotopy heuristic approach used to relax the constraints in the original problem.


The documentation for this class was generated from the following files:
Generated on Wed Nov 5 19:54:07 2008 for DAKOTA by  doxygen 1.5.1