SurrogateModel Class Reference

Base class for surrogate models (DataFitSurrModel and HierarchSurrModel). More...

Inheritance diagram for SurrogateModel:

Model DataFitSurrModel HierarchSurrModel List of all members.

Protected Member Functions

 SurrogateModel (ProblemDescDB &problem_db)
 constructor
 SurrogateModel (ParallelLibrary &parallel_lib, const pair< short, short > &view, const ActiveSet &set, const String &corr_type, const short &corr_order)
 alternate constructor
 ~SurrogateModel ()
 destructor
void compute_correction (const Response &truth_response, const Response &approx_response, const RealVector &c_vars)
 agreement with truth_response
void apply_correction (Response &approx_response, const RealVector &c_vars, bool quiet_flag=false)
 apply the correction computed in compute_correction() to approx_response
void auto_correction (bool correction_flag)
 sets autoCorrection to on (true) or off (false)
bool auto_correction ()
 returns autoCorrection setting
void check_submodel_compatibility (const Model &sub_model)
 HierarchSurrModel::highFidelityModel).
bool force_rebuild ()
 forced based on changes in the inactive data
void asv_mapping (const ShortArray &orig_asv, ShortArray &actual_asv, ShortArray &approx_asv, bool build_flag)
 distributes the incoming orig_asv among actual_asv and approx_asv
void asv_mapping (const ShortArray &actual_asv, const ShortArray &approx_asv, ShortArray &combined_asv)
 reconstitutes a combined_asv from actual_asv and approx_asv
void response_mapping (const Response &actual_response, const Response &approx_response, Response &combined_response)
 overlays actual_response and approx_response to update combined_response
void cached_mapping (const ResponseArray &orig_resp_array, IntResponseMap &cached_map, const IntIntMap &id_map, ResponseArray &merged_array)
 inserts a cached response map into a response array in order

Protected Attributes

bool mixedResponseSet
 flag for mixed approximate/actual responses
IntSet surrogateFnIndices
 subset that is approximated
ResponseArray surrResponseArray
 array of surrogate responses used in derived_synchronize() functions
IntResponseMap surrResponseMap
 map of surrogate responses used in derived_synchronize_nowait() functions
IntRealVectorMap rawCVarsMap
 not contain lower level variables sets from finite differencing.
IntIntMap truthIdMap
 DataFitSurrModel/HierarchSurrModel id.
IntIntMap surrIdMap
 DataFitSurrModel/HierarchSurrModel ids.
IntResponseMap cachedApproxRespMap
 portions were still pending.
String correctionType
 approximation correction approach to be used: additive or multiplicative
short correctionOrder
 approximation correction order to be used: 0, 1, or 2
bool autoCorrection
 and HierarchSurrModel approximate response computations
bool correctionComputed
 and is available for application
size_t approxBuilds
 number of calls to build_approximation()
bool surrogateBypass
 on the underlying truth model.
RealVector fitCLBnds
 the approximation is built; used to detect when a rebuild is required.
RealVector fitCUBnds
 the approximation is built; used to detect when a rebuild is required.
IntVector fitDLBnds
 the approximation is built; used to detect when a rebuild is required.
IntVector fitDUBnds
 the approximation is built; used to detect when a rebuild is required.
RealVector fitInactCVars
 rebuild is required.
IntVector fitInactDVars
 rebuild is required.

Private Member Functions

void apply_additive_correction (RealVector &alpha_corrected_fns, RealMatrix &alpha_corrected_grads, RealMatrixArray &alpha_corrected_hessians, const RealVector &c_vars, const ActiveSet &set)
 internal convenience function for applying additive corrections
void apply_multiplicative_correction (RealVector &beta_corrected_fns, RealMatrix &beta_corrected_grads, RealMatrixArray &beta_corrected_hessians, const RealVector &c_vars, const ActiveSet &set)
 internal convenience function for applying multiplicative corrections

Private Attributes

bool badScalingFlag
 corrections; triggers an automatic switch to additive corrections
bool combinedFlag
 flag indicating the combination of additive/multiplicative corrections
bool computeAdditive
 flag indicating the need for additive correction calculations
bool computeMultiplicative
 flag indicating the need for multiplicative correction calculations
RealVector addCorrFns
 high and low fidelity model values at x=x_center.
RealMatrix addCorrGrads
 high/low function difference at x=x_center.
RealMatrixArray addCorrHessians
 high/low function difference at x=x_center.
RealVector multCorrFns
 high fidelity to low fidelity model values at x=x_center.
RealMatrix multCorrGrads
 of the high/low function ratio at x=x_center.
RealMatrixArray multCorrHessians
 of the high/low function ratio at x=x_center.
RealVector combineFactors
 correction instead of a strictly local correction.
RealVector correctionCenterPt
 (x - x_c) terms in 1st-/2nd-order corrections.
RealVector correctionPrevCenterPt
 copy of correctionCenterPt from the previous correction cycle
RealVector approxFnsCenter
 unavailable when applying 1st-/2nd-order multiplicative corrections.
RealVector approxFnsPrevCenter
 copy of approxFnsCenter from the previous correction cycle
RealMatrix approxGradsCenter
 unavailable when applying 1st-/2nd-order multiplicative corrections.
RealVector truthFnsCenter
 Truth function values at the current correction point.
RealVector truthFnsPrevCenter
 copy of truthFnsCenter from the previous correction cycle
Variables subModelVars
 among differing variable views in force_rebuild()
Constraints subModelCons
 among differing variable views in force_rebuild()

Detailed Description

Base class for surrogate models (DataFitSurrModel and HierarchSurrModel).

The SurrogateModel class provides common functions to derived classes for computing and applying corrections to approximations.


Member Function Documentation

void compute_correction ( const Response truth_response,
const Response approx_response,
const RealVector c_vars 
) [protected, virtual]

agreement with truth_response

Compute an additive or multiplicative correction that corrects the approx_response to have 0th-order consistency (matches values), 1st-order consistency (matches values and gradients), or 2nd-order consistency (matches values, gradients, and Hessians) with the truth_response at a single point (e.g., the center of a trust region). The 0th-order, 1st-order, and 2nd-order corrections use scalar values, linear scaling functions, and quadratic scaling functions, respectively, for each response function.

Reimplemented from Model.

bool force_rebuild (  )  [protected]

forced based on changes in the inactive data

This function forces a rebuild of the approximation according to the sub-model variables view, the approximation type, and whether the active approximation bounds or inactive variable values have changed since the last approximation build.


Member Data Documentation

bool autoCorrection [protected]

and HierarchSurrModel approximate response computations

SurrBasedOptStrategy must toggle this value since compute_correction() no longer automatically backs out an old correction.

size_t approxBuilds [protected]

number of calls to build_approximation()

used as a flag to automatically build the approximation if one of the derived compute_response functions is called prior to build_approximation().


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