Dakota  Version
Explore and Predict with Confidence
Public Member Functions | Protected Member Functions | List of all members
RelaxedVariables Class Reference

Derived class within the Variables hierarchy which employs the relaxation of discrete variables. More...

Inheritance diagram for RelaxedVariables:
Variables

Public Member Functions

 RelaxedVariables (const ProblemDescDB &problem_db, const ShortShortPair &view)
 standard constructor More...
 
 RelaxedVariables (const SharedVariablesData &svd)
 lightweight constructor
 
 ~RelaxedVariables ()
 destructor
 
- Public Member Functions inherited from Variables
 Variables ()
 default constructor
 
 Variables (const ProblemDescDB &problem_db)
 standard constructor (explicit disallows its use for implicit type conversion)
 
 Variables (const SharedVariablesData &svd)
 alternate constructor for instantiations on the fly (explicit disallows its use for implicit type conversion)
 
 Variables (const Variables &vars)
 copy constructor
 
virtual ~Variables ()
 destructor
 
Variables operator= (const Variables &vars)
 assignment operator
 
virtual void read_annotated (std::istream &s)
 read a variables object in annotated format from an istream
 
virtual void write_annotated (std::ostream &s) const
 write a variables object in annotated format to an std::ostream
 
virtual void read (MPIUnpackBuffer &s)
 read a variables object from a packed MPI buffer
 
virtual void write (MPIPackBuffer &s) const
 write a variables object to a packed MPI buffer
 
size_t tv () const
 total number of vars
 
size_t total_active () const
 total number of active vars
 
size_t cv () const
 number of active continuous vars
 
size_t cv_start () const
 start index of active continuous vars
 
size_t div () const
 number of active discrete int vars
 
size_t div_start () const
 start index of active discrete int vars
 
size_t dsv () const
 number of active discrete string vars
 
size_t dsv_start () const
 start index of active discrete string vars
 
size_t drv () const
 number of active discrete real vars
 
size_t drv_start () const
 start index of active discrete real vars
 
size_t icv () const
 number of inactive continuous vars
 
size_t icv_start () const
 start index of inactive continuous vars
 
size_t idiv () const
 number of inactive discrete int vars
 
size_t idiv_start () const
 start index of inactive discrete int vars
 
size_t idsv () const
 number of inactive discrete string vars
 
size_t idsv_start () const
 start index of inactive discrete string vars
 
size_t idrv () const
 number of inactive discrete real vars
 
size_t idrv_start () const
 start index of inactive discrete real vars
 
size_t acv () const
 total number of continuous vars
 
size_t adiv () const
 total number of discrete integer vars
 
size_t adsv () const
 total number of discrete string vars
 
size_t adrv () const
 total number of discrete real vars
 
const SharedVariablesDatashared_data () const
 return sharedVarsData
 
SharedVariablesDatashared_data ()
 return sharedVarsData
 
void shape ()
 shape a Variables object based on sharedVarsData
 
void reshape ()
 reshape an existing Variables object based on updated sharedVarsData
 
Real continuous_variable (size_t index) const
 return an active continuous variable
 
const RealVector & continuous_variables () const
 return the active continuous variables (Note: returns a view by const reference, but initializing a RealVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use continuous_variables_view())
 
void continuous_variable (Real c_var, size_t index)
 set an active continuous variable
 
void continuous_variables (const RealVector &c_vars)
 set the active continuous variables
 
int discrete_int_variable (size_t index) const
 return an active discrete integer variable
 
const IntVector & discrete_int_variables () const
 return the active discrete integer variables (Note: returns a view by const reference, but initializing an IntVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_int_variables_view())
 
void discrete_int_variable (int di_var, size_t index)
 set an active discrete integer variable
 
void discrete_int_variables (const IntVector &di_vars)
 set the active discrete integer variables
 
const String & discrete_string_variable (size_t index) const
 return an active discrete string variable
 
StringMultiArrayConstView discrete_string_variables () const
 return the active discrete string variables (Note: returns a view by const reference, but initializing a StringArray from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_string_variables_view())
 
void discrete_string_variable (const String &ds_var, size_t index)
 set an active discrete string variable
 
void discrete_string_variables (StringMultiArrayConstView ds_vars)
 set the active discrete string variables
 
Real discrete_real_variable (size_t index) const
 return an active discrete real variable
 
const RealVector & discrete_real_variables () const
 return the active discrete real variables (Note: returns a view by const reference, but initializing a RealVector from this reference invokes the Teuchos matrix copy constructor to create a Teuchos::Copy instance; to obtain a mutable view, use discrete_real_variables_view())
 
void discrete_real_variable (Real dr_var, size_t index)
 set an active discrete real variable
 
void discrete_real_variables (const RealVector &dr_vars)
 set the active discrete real variables
 
void active_variables (const Variables &vars)
 copy the active cv/div/dsv/drv variables from vars
 
void all_variables (const Variables &vars)
 copy all cv/div/dsv/drv variables from vars
 
void active_to_all_variables (const Variables &vars)
 copy the active cv/div/dsv/drv variables from incoming vars to all variables in this instance
 
void all_to_active_variables (const Variables &vars)
 copy all cv/div/dsv/drv variables from incoming vars to active variables in this instance
 
void inactive_variables (const Variables &vars)
 copy the inactive cv/div/dsv/drv variables from vars
 
void active_to_inactive_variables (const Variables &vars)
 copy the active cv/div/dsv/drv variables from vars to inactive on this
 
void inactive_into_all_variables (const Variables &vars)
 insert the inactive cv/div/dsv/drv variables from vars into all arrays
 
RealVector & continuous_variables_view ()
 return a mutable view of the active continuous variables
 
IntVector & discrete_int_variables_view ()
 return a mutable view of the active discrete integer variables
 
StringMultiArrayView discrete_string_variables_view ()
 return a mutable view of the active discrete string variables More...
 
RealVector & discrete_real_variables_view ()
 return a mutable view of the active discrete real variables
 
StringMultiArrayConstView continuous_variable_labels () const
 return the active continuous variable labels
 
void continuous_variable_labels (StringMultiArrayConstView cv_labels)
 set the active continuous variable labels
 
void continuous_variable_label (const String &cv_label, size_t index)
 set an active continuous variable label
 
StringMultiArrayConstView discrete_int_variable_labels () const
 return the active discrete integer variable labels
 
void discrete_int_variable_labels (StringMultiArrayConstView div_labels)
 set the active discrete integer variable labels
 
void discrete_int_variable_label (const String &div_label, size_t index)
 set an active discrete integer variable label
 
StringMultiArrayConstView discrete_string_variable_labels () const
 return the active discrete string variable labels
 
void discrete_string_variable_labels (StringMultiArrayConstView dsv_labels)
 set the active discrete string variable labels
 
void discrete_string_variable_label (const String &dsv_label, size_t index)
 set an active discrete string variable label
 
StringMultiArrayConstView discrete_real_variable_labels () const
 return the active discrete real variable labels
 
void discrete_real_variable_labels (StringMultiArrayConstView drv_labels)
 set the active discrete real variable labels
 
void discrete_real_variable_label (const String &drv_label, size_t index)
 set an active discrete real variable label
 
void active_labels (const Variables &vars)
 copy all cv/div/dsv/drv variable labels from vars
 
void all_labels (const Variables &vars)
 copy all cv/div/dsv/drv variable labels from vars
 
void active_to_all_labels (const Variables &vars)
 copy the active cv/div/dsv/drv variable labels from incoming vars to all variables in this instance
 
void all_to_active_labels (const Variables &vars)
 copy all cv/div/dsv/drv variable labels from incoming vars to active variables in this instance
 
void inactive_labels (const Variables &vars)
 copy the inactive cv/div/dsv/drv variable labels from vars
 
UShortMultiArrayConstView continuous_variable_types () const
 return the active continuous variable types
 
void continuous_variable_types (UShortMultiArrayConstView cv_types)
 set the active continuous variable types
 
void continuous_variable_type (unsigned short cv_type, size_t index)
 set an active continuous variable type
 
UShortMultiArrayConstView discrete_int_variable_types () const
 return the active discrete integer variable types
 
void discrete_int_variable_types (UShortMultiArrayConstView div_types)
 set the active discrete integer variable types
 
void discrete_int_variable_type (unsigned short div_type, size_t index)
 set an active discrete integer variable type
 
UShortMultiArrayConstView discrete_string_variable_types () const
 return the active discrete string variable types
 
void discrete_string_variable_types (UShortMultiArrayConstView dsv_types)
 set the active discrete string variable types
 
void discrete_string_variable_type (unsigned short dsv_type, size_t index)
 set an active discrete string variable type
 
UShortMultiArrayConstView discrete_real_variable_types () const
 return the active discrete real variable types
 
void discrete_real_variable_types (UShortMultiArrayConstView drv_types)
 set the active discrete real variable types
 
void discrete_real_variable_type (unsigned short drv_type, size_t index)
 set an active discrete real variable type
 
SizetMultiArrayConstView continuous_variable_ids () const
 return the active continuous variable position identifiers
 
void continuous_variable_ids (SizetMultiArrayConstView cv_ids)
 set the active continuous variable position identifiers
 
void continuous_variable_id (size_t cv_id, size_t index)
 set an active continuous variable position identifier
 
const RealVector & inactive_continuous_variables () const
 return the inactive continuous variables
 
void inactive_continuous_variables (const RealVector &ic_vars)
 set the inactive continuous variables
 
void inactive_continuous_variable (Real ic_var, size_t index)
 set an inactive continuous variable
 
const IntVector & inactive_discrete_int_variables () const
 return the inactive discrete int variables
 
void inactive_discrete_int_variables (const IntVector &idi_vars)
 set the inactive discrete int variables
 
void inactive_discrete_int_variable (int idi_var, size_t index)
 set an inactive discrete int variable
 
StringMultiArrayConstView inactive_discrete_string_variables () const
 return the inactive discrete string variables
 
void inactive_discrete_string_variables (StringMultiArrayConstView ids_vars)
 set the inactive discrete string variables
 
void inactive_discrete_string_variable (const String &ids_var, size_t index)
 set an inactive discrete string variable
 
const RealVector & inactive_discrete_real_variables () const
 return the inactive discrete real variables
 
void inactive_discrete_real_variables (const RealVector &idr_vars)
 set the inactive discrete real variables
 
void inactive_discrete_real_variable (Real idr_var, size_t index)
 set an inactive discrete real variable
 
StringMultiArrayConstView inactive_continuous_variable_labels () const
 return the inactive continuous variable labels
 
void inactive_continuous_variable_labels (StringMultiArrayConstView ic_vars)
 set the inactive continuous variable labels
 
StringMultiArrayConstView inactive_discrete_int_variable_labels () const
 return the inactive discrete variable labels
 
void inactive_discrete_int_variable_labels (StringMultiArrayConstView idi_vars)
 set the inactive discrete variable labels
 
StringMultiArrayConstView inactive_discrete_string_variable_labels () const
 return the inactive discrete variable labels
 
void inactive_discrete_string_variable_labels (StringMultiArrayConstView ids_vars)
 set the inactive discrete variable labels
 
StringMultiArrayConstView inactive_discrete_real_variable_labels () const
 return the inactive discrete variable labels
 
void inactive_discrete_real_variable_labels (StringMultiArrayConstView idr_vars)
 set the inactive discrete variable labels
 
UShortMultiArrayConstView inactive_continuous_variable_types () const
 return the inactive continuous variable types
 
UShortMultiArrayConstView inactive_discrete_int_variable_types () const
 return the inactive discrete integer variable types
 
UShortMultiArrayConstView inactive_discrete_string_variable_types () const
 return the inactive discrete string variable types
 
UShortMultiArrayConstView inactive_discrete_real_variable_types () const
 return the inactive discrete real variable types
 
SizetMultiArrayConstView inactive_continuous_variable_ids () const
 return the inactive continuous variable position identifiers
 
const RealVector & all_continuous_variables () const
 returns a single array with all continuous variables
 
void all_continuous_variables (const RealVector &ac_vars)
 sets all continuous variables using a single array
 
void all_continuous_variable (Real ac_var, size_t index)
 set a variable within the all continuous array
 
const IntVector & all_discrete_int_variables () const
 returns a single array with all discrete variables
 
void all_discrete_int_variables (const IntVector &adi_vars)
 sets all discrete variables using a single array
 
void all_discrete_int_variable (int adi_var, size_t index)
 set a variable within the all discrete array
 
StringMultiArrayConstView all_discrete_string_variables () const
 returns a single array with all discrete variables
 
void all_discrete_string_variables (StringMultiArrayConstView ads_vars)
 sets all discrete variables using a single array
 
void all_discrete_string_variable (const String &ads_var, size_t index)
 set a variable within the all discrete array
 
const RealVector & all_discrete_real_variables () const
 returns a single array with all discrete variables
 
void all_discrete_real_variables (const RealVector &adr_vars)
 sets all discrete variables using a single array
 
void all_discrete_real_variable (Real adr_var, size_t index)
 set a variable within the all discrete array
 
void as_vector (const StringSetArray &dss_vals, RealVector &var_values) const
 get the active variables as a vector of reals, converting string values to zero-based set indices
 
StringMultiArrayView all_continuous_variable_labels () const
 returns a single array with all continuous variable labels
 
void all_continuous_variable_labels (StringMultiArrayConstView acv_labels)
 sets all continuous variable labels using a single array
 
void all_continuous_variable_label (const String &acv_label, size_t index)
 set a label within the all continuous label array
 
StringMultiArrayView all_discrete_int_variable_labels () const
 returns a single array with all discrete variable labels
 
void all_discrete_int_variable_labels (StringMultiArrayConstView adiv_labels)
 sets all discrete variable labels using a single array
 
void all_discrete_int_variable_label (const String &adiv_label, size_t index)
 set a label within the all discrete label array
 
StringMultiArrayView all_discrete_string_variable_labels () const
 returns a single array with all discrete variable labels
 
void all_discrete_string_variable_labels (StringMultiArrayConstView adsv_labels)
 sets all discrete variable labels using a single array
 
void all_discrete_string_variable_label (const String &adsv_label, size_t index)
 set a label within the all discrete label array
 
StringMultiArrayView all_discrete_real_variable_labels () const
 returns a single array with all discrete variable labels
 
void all_discrete_real_variable_labels (StringMultiArrayConstView adrv_labels)
 sets all discrete variable labels using a single array
 
void all_discrete_real_variable_label (const String &adrv_label, size_t index)
 set a label within the all discrete label array
 
UShortMultiArrayConstView all_continuous_variable_types () const
 return all continuous variable types
 
UShortMultiArrayConstView all_discrete_int_variable_types () const
 return all discrete variable types
 
UShortMultiArrayConstView all_discrete_string_variable_types () const
 return all discrete variable types
 
UShortMultiArrayConstView all_discrete_real_variable_types () const
 return all discrete variable types
 
SizetMultiArrayConstView all_continuous_variable_ids () const
 return all continuous variable position identifiers
 
SizetMultiArrayConstView all_discrete_int_variable_ids () const
 return all discrete integer variable position identifiers
 
SizetMultiArrayConstView all_discrete_string_variable_ids () const
 return all discrete string variable position identifiers
 
SizetMultiArrayConstView all_discrete_real_variable_ids () const
 return all discrete real variable position identifiers
 
StringArray ordered_labels (unsigned short vars_part=ALL_VARS) const
 get all or active labels in input spec order
 
Variables copy (bool deep_svd=false) const
 a deep variables copy for use in history mechanisms (SharedVariablesData uses a shallow copy by default)
 
Variables copy (const SharedVariablesData &svd) const
 a deep variables copy that shares an incoming SharedVariablesData
 
void copy_rep (std::shared_ptr< Variables > source_vars_rep)
 copy attributes from source to target representation (shared code among copy() implementations)
 
const ShortShortPair & view () const
 returns variablesView
 
ShortShortPair get_view (const ProblemDescDB &problem_db) const
 defines variablesView from problem_db attributes
 
void active_view (short view1)
 overrides the active view
 
void inactive_view (short view2)
 sets the inactive view based on higher level (nested) context
 
const String & variables_id () const
 returns the variables identifier string
 
const SizetArray & variables_components_totals () const
 returns the number of variables for each of the constitutive components
 
bool is_null () const
 function to check variablesRep (does this envelope contain a letter)
 

Protected Member Functions

void read (std::istream &s)
 read a variables object from an std::istream
 
void read_tabular (std::istream &s, unsigned short vars_part=ALL_VARS)
 
void write (std::ostream &s, unsigned short vars_part=ALL_VARS) const
 write a variables object to an std::ostream, e.g., the console, optionally specifying which partition (all/active/inactive)
 
void write_aprepro (std::ostream &s) const
 write a variables object to an std::ostream in aprepro format, e.g., a parameters file
 
void write_tabular (std::ostream &s, unsigned short vars_part=ALL_VARS) const
 write a variables object in tabular format to an std::ostream, optionally specifying which partition (all/active/inactive)
 
void write_tabular_partial (std::ostream &s, size_t start_index, size_t num_items) const
 write range of variables in tabular format to an std::ostream
 
void write_tabular_labels (std::ostream &s, unsigned short vars_part=ALL_VARS) const
 write the labels in input spec order to a std::ostream, optionally specifying which partition (all/active/inactive)
 
void write_tabular_partial_labels (std::ostream &s, size_t start_index, size_t num_items) const
 write range of variable labels in input spec order to a std::ostream
 
template<typename Reader >
void read_core (std::istream &s, Reader read_handler, unsigned short vars_part)
 Implementation of reading various formats using the specified read handler, accounting for reordering due to relaxation. More...
 
template<typename Writer >
void write_core (std::ostream &s, Writer write_handler, unsigned short vars_part) const
 Implementation of writing various formats using the specified write handler, accounting for reordering due to relaxation.
 
template<typename Writer >
bool write_partial_core (std::ostream &s, Writer write_handler, size_t start_index, size_t end_index, size_t &acv_offset, size_t &adiv_offset, size_t &adsv_offset, size_t &adrv_offset, size_t &av_cntr, size_t num_cv, size_t num_div, size_t num_dsv, size_t num_drv) const
 Implementation for partial writing in various formats using the specified write handler.
 
- Protected Member Functions inherited from Variables
 Variables (BaseConstructor, const ProblemDescDB &problem_db, const ShortShortPair &view)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139)
 
 Variables (BaseConstructor, const SharedVariablesData &svd)
 constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139)
 
void build_views ()
 construct active/inactive views of all variables arrays
 
void build_active_views ()
 construct active views of all variables arrays
 
void build_inactive_views ()
 construct inactive views of all variables arrays
 

Additional Inherited Members

- Protected Attributes inherited from Variables
SharedVariablesData sharedVarsData
 reference-counted instance of shared variables data: id's, labels, counts
 
RealVector allContinuousVars
 array combining all of the continuous variables
 
IntVector allDiscreteIntVars
 array combining all of the discrete integer variables
 
StringMultiArray allDiscreteStringVars
 array combining all of the discrete string variables
 
RealVector allDiscreteRealVars
 array combining all of the discrete real variables
 
RealVector continuousVars
 the active continuous variables array view
 
IntVector discreteIntVars
 the active discrete integer variables array view
 
RealVector discreteRealVars
 the active discrete real variables array view
 
RealVector inactiveContinuousVars
 the inactive continuous variables array view
 
IntVector inactiveDiscreteIntVars
 the inactive discrete integer variables array view
 
RealVector inactiveDiscreteRealVars
 the inactive discrete real variables array view
 

Detailed Description

Derived class within the Variables hierarchy which employs the relaxation of discrete variables.

Derived variables classes take different views of the design, uncertain, and state variable types and the continuous and discrete domain types. The RelaxedVariables derived class combines continuous and discrete domain types but separates design, uncertain, and state variable types. The branch and bound method uses this approach (see Variables::get_variables(problem_db)).

Constructor & Destructor Documentation

◆ RelaxedVariables()

RelaxedVariables ( const ProblemDescDB problem_db,
const ShortShortPair &  view 
)

standard constructor

In this class, a relaxed data approach is used in which continuous and discrete arrays are combined into a single continuous array (integrality is relaxed; the converse of truncating reals is not currently supported but could be in the future if needed). Iterators/strategies which use this class include: BranchBndOptimizer. Extract fundamental variable types and labels and merge continuous and discrete domains to create aggregate arrays and views.

References SharedVariablesData::all_relaxed_discrete_int(), SharedVariablesData::all_relaxed_discrete_real(), Variables::allContinuousVars, Variables::allDiscreteIntVars, Variables::allDiscreteRealVars, Variables::allDiscreteStringVars, Dakota::copy_data_partial(), ProblemDescDB::get_iv(), ProblemDescDB::get_rv(), ProblemDescDB::get_sa(), and Variables::sharedVarsData.

Member Function Documentation

◆ read_tabular()

void read_tabular ( std::istream &  s,
unsigned short  vars_part = ALL_VARS 
)
protectedvirtual

Presumes variables object is appropriately sized to receive data

Reimplemented from Variables.

References RelaxedVariables::read_core().

◆ read_core()

void read_core ( std::istream &  s,
Reader  read_handler,
unsigned short  vars_part 
)
protected

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