Dakota  Version 6.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
VPSApproximation Class Reference

Derived approximation class for VPS implementation. More...

Inheritance diagram for VPSApproximation:
Approximation

Public Member Functions

 VPSApproximation ()
 default constructor
 
 VPSApproximation (const ProblemDescDB &problem_db, const SharedApproxData &shared_data, const String &approx_label)
 standard constructor (to call VPS from an input deck)
 
 VPSApproximation (const SharedApproxData &shared_data)
 Alternate constructor (to call VPS from another method like POF-darts)
 
 ~VPSApproximation ()
 destructor
 
bool VPS_execute ()
 
void VPS_create_containers ()
 
void VPS_retrieve_neighbors (size_t ipoint, bool update_point_neighbors)
 
void VPS_adjust_extend_neighbors_of_all_points ()
 
void VPS_extend_neighbors (size_t ipoint)
 
void VPS_build_local_surrogate (size_t cell_index)
 
double VPS_evaluate_surrogate (double *x)
 
void VPS_destroy_global_containers ()
 
void retrieve_permutations (size_t &m, size_t **&perm, size_t num_dim, size_t upper_bound, bool force_sum_constraint, size_t sum_constraint)
 
void build_radial_basis_function (size_t icell)
 
void VPS_LS_retrieve_weights (size_t cell_index)
 
double evaluate_basis_function (double *x, size_t icell, size_t ibasis)
 
int constrained_LeastSquare (size_t n, size_t m, double **H, double *w, double *f)
 
double vec_dot_vec (size_t n, double *vec_a, double *vec_b)
 
double vec_pow_vec (size_t num_dim, double *vec_a, size_t *vec_b)
 
bool Cholesky (int n, double **A, double **LD)
 
void Cholesky_solver (int n, double **LD, double *b, double *x)
 
void GMRES (size_t n, double **A, double *b, double *x, double eps)
 
void printMatrix (size_t m, size_t n, double **M)
 
void initiate_random_number_generator (unsigned long x)
 
double generate_a_random_number ()
 
size_t retrieve_closest_cell (double *x)
 
bool trim_line_using_Hyperplane (size_t num_dim, double *st, double *end, double *qH, double *nH)
 
double f_test (double *x)
 
double * grad_f_test (double *x)
 
double ** hessian_f_test (double *x)
 
void generate_poisson_disk_sample (double r)
 
void generate_MC_sample ()
 
void isocontouring (std::string file_name, bool plot_test_function, bool plot_surrogate, std::vector< double > contours)
 
void isocontouring_solid (std::string file_name, bool plot_test_function, bool plot_surrogate, std::vector< double > contours)
 
void plot_neighbors ()
 
- Public Member Functions inherited from Approximation
 Approximation ()
 default constructor More...
 
 Approximation (ProblemDescDB &problem_db, const SharedApproxData &shared_data, const String &approx_label)
 standard constructor for envelope More...
 
 Approximation (const SharedApproxData &shared_data)
 alternate constructor More...
 
 Approximation (const Approximation &approx)
 copy constructor More...
 
virtual ~Approximation ()
 destructor More...
 
Approximation operator= (const Approximation &approx)
 assignment operator More...
 
virtual void export_model (const String &fn_label="", const String &export_prefix="", const unsigned short export_format=NO_MODEL_FORMAT)
 exports the approximation More...
 
virtual void rebuild ()
 rebuilds the approximation incrementally More...
 
virtual void pop (bool save_data)
 removes entries from end of SurrogateData::{vars,resp}Data (last points appended, or as specified in args) More...
 
virtual void push ()
 restores state prior to previous pop() More...
 
virtual void finalize ()
 finalize approximation by applying all remaining trial sets More...
 
virtual void store (size_t index=_NPOS)
 store current approximation state for later combination
 
virtual void restore (size_t index=_NPOS)
 restore previous approximation state
 
virtual void remove_stored (size_t index=_NPOS)
 remove a stored approximation prior to combination
 
virtual void combine (short corr_type, size_t swap_index)
 combine current approximation with previously stored approximation
 
virtual const RealSymMatrix & hessian (const Variables &vars)
 retrieve the approximate function Hessian for a given parameter vector
 
virtual Real value (const RealVector &c_vars)
 retrieve the approximate function value for a given parameter vector
 
virtual const RealVector & gradient (const RealVector &c_vars)
 retrieve the approximate function gradient for a given parameter vector
 
virtual const RealSymMatrix & hessian (const RealVector &c_vars)
 retrieve the approximate function Hessian for a given parameter vector
 
virtual Real prediction_variance (const RealVector &c_vars)
 retrieve the variance of the predicted value for a given parameter vector
 
virtual bool diagnostics_available ()
 check if diagnostics are available for this approximation type
 
virtual Real diagnostic (const String &metric_type)
 retrieve a single diagnostic metric for the diagnostic type specified
 
virtual RealArray cv_diagnostic (const StringArray &metric_types, unsigned num_folds)
 retrieve diagnostic metrics for the diagnostic types specified, applying
 
virtual void primary_diagnostics (int fn_index)
 compute and print all requested diagnostics and cross-validation
 
virtual RealArray challenge_diagnostic (const StringArray &metric_types, const RealMatrix &challenge_points, const RealVector &challenge_responses)
 compute requested diagnostics for user provided challenge pts
 
virtual void challenge_diagnostics (const RealMatrix &challenge_points, const RealVector &challenge_responses)
 compute and print all requested diagnostics for user provided challenge pts
 
virtual RealVector approximation_coefficients (bool normalized) const
 return the coefficient array computed by build()/rebuild()
 
virtual void approximation_coefficients (const RealVector &approx_coeffs, bool normalized)
 set the coefficient array from external sources, rather than computing with build()/rebuild()
 
virtual void coefficient_labels (std::vector< std::string > &coeff_labels) const
 print the coefficient array computed in build()/rebuild()
 
virtual void print_coefficients (std::ostream &s, bool normalized)
 print the coefficient array computed in build()/rebuild()
 
virtual int recommended_coefficients () const
 return the recommended number of samples (unknowns) required to build the derived class approximation type in numVars dimensions
 
virtual void clear_current ()
 clear current build data in preparation for next build More...
 
int min_points (bool constraint_flag) const
 return the minimum number of points required to build the approximation type in numVars dimensions. Uses *_coefficients() and num_constraints().
 
int recommended_points (bool constraint_flag) const
 return the recommended number of samples to build the approximation type in numVars dimensions (default same as min_points)
 
const Pecos::SurrogateData & approximation_data () const
 return approxData
 
void add (const Pecos::SurrogateDataVars &sdv, bool anchor_flag)
 append to SurrogateData::varsData or assign to SurrogateData::anchorVars
 
void add (const Variables &vars, bool anchor_flag, bool deep_copy)
 extract the relevant vectors from Variables and invoke add(RealVector&, IntVector&, RealVector&)
 
void add (const Real *sample_c_vars, bool anchor_flag, bool deep_copy)
 create a RealVector view and invoke add(RealVector&, empty, empty)
 
void add (const RealVector &c_vars, const IntVector &di_vars, const RealVector &dr_vars, bool anchor_flag, bool deep_copy)
 shared code among add(Variables&) and add(Real*); adds a new data point by either appending to SurrogateData::varsData or assigning to SurrogateData::anchorVars, as dictated by anchor_flag. Uses add_point() and add_anchor().
 
void add (const Pecos::SurrogateDataResp &sdr, bool anchor_flag)
 append to SurrogateData::respData or assign to SurrogateData::anchorResp
 
void add (const Response &response, int fn_index, bool anchor_flag, bool deep_copy)
 adds a new data point by either appending to SurrogateData::respData or assigning to SurrogateData::anchorResp, as dictated by anchor_flag. Uses add_point() and add_anchor().
 
void add (const RealMatrix &sample_vars, const RealVector &sample_resp)
 add data from the provided samples and response matrices, assuming continuous variables and function values only
 
void pop_count (size_t count)
 appends to popCountStack (number of entries to pop from end of SurrogateData::{vars,resp}Data, based on size of last data set appended)
 
void clear_all ()
 clear all build data (current and history) to restore original state More...
 
void clear_anchor ()
 clear SurrogateData::anchor{Vars,Resp}
 
void clear_data ()
 clear SurrogateData::{vars,resp}Data
 
void clear_popped ()
 clear popCountStack and SurrogateData::popped{Vars,Resp}Trials
 
void set_bounds (const RealVector &c_l_bnds, const RealVector &c_u_bnds, const IntVector &di_l_bnds, const IntVector &di_u_bnds, const RealVector &dr_l_bnds, const RealVector &dr_u_bnds)
 set approximation lower and upper bounds (currently only used by graphics)
 
Approximationapprox_rep () const
 returns approxRep for access to derived class member functions that are not mapped to the top Approximation level
 

Protected Member Functions

int min_coefficients () const
 return the minimum number of samples (unknowns) required to build the derived class approximation type in numVars dimensions
 
int num_constraints () const
 return the number of constraints to be enforced via an anchor point
 
void build ()
 builds the approximation from scratch
 
Real value (const Variables &vars)
 retrieve the predicted function value for a given parameter set
 
const RealVector & gradient (const Variables &vars)
 retrieve the function gradient at the predicted value for a given parameter set
 
Real prediction_variance (const Variables &vars)
 retrieve the variance of the predicted value for a given parameter set
 
- Protected Member Functions inherited from Approximation
 Approximation (BaseConstructor, const ProblemDescDB &problem_db, const SharedApproxData &shared_data, const String &approx_label)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 
 Approximation (NoDBBaseConstructor, const SharedApproxData &shared_data)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More...
 

Private Types

enum  subsurrogate { LS, GP }
 
enum  subsurrogate_basis { polynomial, radial }
 
enum  testfunction {
  SmoothHerbie, Herbie, Cone, Cross,
  UnitSphere, Linear34
}
 

Private Member Functions

void VPSmodel_build ()
 Function to compute coefficients governing the VPS surrogates.
 
void VPSmodel_apply (const RealVector &new_x, bool variance_flag, bool gradients_flag)
 Function returns a response value using the VPS surface. More...
 

Private Attributes

Real approxValue
 value of the approximation returned by value()
 
Real approxVariance
 value of the approximation returned by prediction_variance()
 
RealMatrix trainPoints
 A 2-D array (num sample sites = rows, num vars = columns) used to create the Gaussian process.
 
RealMatrix trainValues
 An array of response values; one response value per sample site.
 
size_t numObs
 The number of observations on which the GP surface is built.
 
int surrogateOrder
 The order of the polynomial in each Voronoi cell.
 
subsurrogate _vps_subsurrogate
 
subsurrogate_basis _vps_subsurrogate_basis
 
testfunction _vps_test_function
 
double Q [1220]
 
int indx
 
double cc
 
double c
 
double zc
 
double zx
 
double zy
 
size_t qlen
 
size_t _n_dim
 
double * _xmin
 
double * _xmax
 
double _diag
 
size_t _num_inserted_points
 
double ** _sample_points
 
double * _fval
 
double ** _fgrad
 
double *** _fhess
 
size_t ** _sample_neighbors
 
size_t ** _vps_ext_neighbors
 
size_t _vps_order
 
size_t _num_GMRES
 
size_t * _num_cell_basis_functions
 
double * _sample_vsize
 
double * _vps_dfar
 
double *** _sample_basis
 
double _max_vsize
 
double _disc_min_jump
 
double _disc_min_grad
 
double _f_min
 
double _f_max
 
size_t *** _vps_t
 
double ** _vps_w
 
SharedApproxData sharedData
 
std::vector< ApproximationgpApproximations
 
Variables gpEvalVars
 
bool _use_derivatives
 
bool _use_gradient
 
bool _use_hessian
 

Static Private Attributes

static VPSApproximationVPSinstance
 pointer to the active object instance used within the static evaluator More...
 

Additional Inherited Members

- Protected Attributes inherited from Approximation
RealVector approxGradient
 gradient of the approximation returned by gradient()
 
RealSymMatrix approxHessian
 Hessian of the approximation returned by hessian()
 
Pecos::SurrogateData approxData
 contains the variables/response data for constructing a single approximation model (one response function)
 
SharedApproxDatasharedDataRep
 contains the approximation data that is shared among the response set
 
String approxLabel
 label for approximation, if applicable
 

Detailed Description

Derived approximation class for VPS implementation.

The VPSApproximation class provides a set of piecewise surrogate approximations

each of which is valid within a Voronoi cell.

Member Function Documentation

void VPSmodel_apply ( const RealVector &  new_x,
bool  variance_flag,
bool  gradients_flag 
)
private

Function returns a response value using the VPS surface.

The response value is computed at the design point specified by the RealVector function argument.

References VPSApproximation::approxValue.

Referenced by VPSApproximation::gradient(), VPSApproximation::prediction_variance(), and VPSApproximation::value().

Member Data Documentation

VPSApproximation * VPSinstance
staticprivate

pointer to the active object instance used within the static evaluator

default constructor


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