#include <OptimizationProblem.hpp>
Public Member Functions | |
Constructors and Destructors | |
OptimizationProblem (const std::string &name, const std::vector< Function > &objectives, const std::vector< WorkflowStep > &workflow) | |
OptimizationProblem (const std::string &name, const std::vector< Function > &objectives, const std::vector< WorkflowStep > &workflow, const std::vector< Function > &responses) | |
OptimizationProblem (const std::string &name, const std::vector< Function > &objectives, const std::vector< Variable > &variables, const std::vector< Function > &responses, const runmanager::Workflow &simulationWorkflow) | |
Construct from objectives, variables, responses and simulationWorkflow. More... | |
OptimizationProblem (const std::string &name, const std::vector< Function > &objectives, const std::vector< Variable > &variables, const runmanager::Workflow &simulationWorkflow) | |
OptimizationProblem (const UUID &uuid, const UUID &versionUUID, const std::string &name, const std::string &displayName, const std::string &description, const std::vector< Function > &objectives, const std::vector< WorkflowStep > &workflow, const std::vector< Function > &responses) | |
Constructor provided for deserialization; not for general use. More... | |
virtual | ~OptimizationProblem () |
Getters and Queries | |
std::vector< Function > | objectives () const |
int | numObjectives () const |
Setters | |
void | pushObjective (const Function &objective) |
bool | insertObjective (int index, const Function &objective) |
bool | eraseObjective (const Function &objective) |
bool | swapObjectives (const Function &objective1, const Function &objective2) |
void | setObjectiveFunctions (const std::vector< Function > &objectives) |
Sets objectives. More... | |
void | clearObjectiveFunctions () |
Clear all objective functions. More... | |
Public Member Functions inherited from openstudio::analysis::Problem | |
Problem (const std::string &name, const std::vector< WorkflowStep > &workflow=std::vector< WorkflowStep >()) | |
Problem (const std::string &name, const std::vector< WorkflowStep > &workflow, const std::vector< Function > &responses) | |
Problem (const std::string &name, const std::vector< Variable > &variables, const std::vector< Function > &responses, const runmanager::Workflow &simulationWorkflow) | |
Construct from variables (order will be preserved), response functions, and simulation workflow. More... | |
Problem (const std::string &name, const std::vector< Variable > &variables, const runmanager::Workflow &simulationWorkflow) | |
Problem (const UUID &uuid, const UUID &versionUUID, const std::string &name, const std::string &displayName, const std::string &description, const std::vector< WorkflowStep > &workflow, const std::vector< Function > &responses) | |
Constructor provided for deserialization; not for general use. More... | |
virtual | ~Problem () |
std::vector< WorkflowStep > | workflow () const |
Returns the vector of WorkflowSteps that defines how this Problem will generate parametrically related DataPoints. More... | |
boost::optional< int > | getWorkflowStepIndexByJobType (const runmanager::JobType &jobType) const |
If there is a runmanager::WorkItem of jobType in workflow(), returns the index of the first such runmanager::WorkItem. More... | |
int | numWorkflowSteps () const |
std::vector< InputVariable > | variables () const |
Returns this problem's (ordered) list of input variables, that is, individual model parameters. More... | |
InputVariable | getVariable (int index) const |
Returns the variable at index, where index refers to the vector returned by variables(). More... | |
boost::optional< int > | getVariableIndexByUUID (const UUID &uuid) const |
Returns the index of the InputVariable with uuid, where index refers to the vector returned by variables(). More... | |
boost::optional< InputVariable > | getVariableByUUID (const UUID &uuid) const |
int | numVariables () const |
Returns the number of variables in this problem. More... | |
int | numContinuousVariables () const |
Returns the number of variables in this problem that derive from ContinuousVariable. More... | |
int | numDiscreteVariables () const |
Returns the number of variables in this problem that derive from DiscreteVariable. More... | |
int | numStaticTransformations () const |
Returns the number of discrete variables that have 0-1 measures selected. More... | |
bool | allVariablesAreContinuous () const |
Returns true if numContinuousVariables() == numVariables(). More... | |
bool | allVariablesAreContinuousOrStaticTransformations () const |
Returns true if all DiscreteVariables have either zero or one measure selected. More... | |
bool | allVariablesAreDiscrete () const |
Returns true if numContinuousVariables() == 0. More... | |
std::vector< Function > | responses () const |
Returns this problem's response functions. More... | |
boost::optional< Function > | getResponseByUUID (const UUID &uuid) const |
int | numResponses () const |
Returns the number of response functions associated with this problem. More... | |
boost::optional < FileReferenceType > | inputFileType () const |
Returns the input file type expected by workflow(). More... | |
bool | isValid (const DataPoint &dataPoint) const |
Returns true if dataPoint.variableValues() make sense in the context of this Problem. More... | |
bool | fileTypesAreCompatible (const WorkflowStep &childStep, const boost::optional< FileReferenceType > &proposedInputFileType, const boost::optional< FileReferenceType > &proposedOutputFileType) const |
Returns true if childStep is in this Problem, and proposedInputFileType and proposedOutputFileType would be acceptable in that position. More... | |
bool | fileTypesAreCompatible (const InputVariable &childVariable, const boost::optional< FileReferenceType > &proposedInputFileType, const boost::optional< FileReferenceType > &proposedOutputFileType) const |
Returns true if childVariable is in this Problem, and proposedInputFileType and proposedOutputFileType would be acceptable in that position. More... | |
std::vector< QVariant > | getVariableValues (const std::vector< Measure > &measures) const |
Converts measures to a vector of variable values stored in QVariant format. More... | |
std::vector< QVariant > | getVariableValues (const std::vector< boost::optional< Measure > > &measures) const |
Converts measures to a vector of variable values stored in QVariant format, including null QVariant values (of the correct type, int or double) as necessary. More... | |
std::vector< boost::optional < Measure > > | getMeasures (const std::vector< QVariant > &variableValues) const |
Converts variableValues to a vector of Measures, leaving gaps for continuous variables by inserting boost::nones in the appropriate locations. More... | |
std::vector< boost::optional < Measure > > | getDiscretePerturbations (const std::vector< QVariant > &variableValues) const |
boost::optional< int > | combinatorialSize (bool selectedOnly) const |
If allVariablesAreDiscrete(), returns the number of DataPoints that would have to be simulated to populate the full mesh for this problem. More... | |
bool | push (const WorkflowStep &step) |
bool | insert (int index, const WorkflowStep &step) |
bool | erase (const WorkflowStep &step) |
bool | swap (const WorkflowStep &step1, const WorkflowStep &step2) |
bool | setWorkflow (const std::vector< WorkflowStep > &workflow) |
void | clearWorkflow () |
void | pushResponse (const Function &response) |
bool | insertResponse (int index, const Function &response) |
bool | eraseResponse (const Function &response) |
bool | swapResponses (const Function &response1, const Function &response2) |
void | setResponseFunctions (const std::vector< Function > &responses) |
void | clearResponseFunctions () |
bool | updateMeasure (const BCLMeasure &newVersion, const std::vector< ruleset::OSArgument > &newArguments, bool keepOldArgumentsIfNewEmpty) |
Updates objects using BCLMeasures with the same UUID as newVersion to use newVersion. More... | |
std::string | dakotaInFileDescription (const DakotaAlgorithm &algorithm) const |
Returns a description of this problem for using in dakota.in files. More... | |
boost::optional< DataPoint > | createDataPoint (const std::vector< QVariant > &variableValues) const |
Constructs a new (incomplete) DataPoint for this problem using variableValues (if possible). More... | |
boost::optional< DataPoint > | createDataPoint (const std::vector< Measure > &measures) const |
Returns a DataPoint if measures can be transformed into a valid set of variableValues. More... | |
boost::optional< DataPoint > | createDataPoint (const DakotaParametersFile ¶ms, const DakotaAlgorithm &algorithm) const |
Attempts to create a new DataPoint from params. More... | |
runmanager::Workflow | createWorkflow (const DataPoint &dataPoint, const openstudio::path &rubyIncludeDirectory=openstudio::path()) const |
Returns the runmanager::Workflow created by instantiating all of the InputVariable WorkflowSteps as runmanager::WorkItems using the variable values specified in dataPoint. More... | |
void | updateDataPoint (DataPoint &dataPoint, const runmanager::Job &completedJob) const |
Updates dataPoint post-simulation. More... | |
std::vector< WorkflowStepJob > | getJobsByWorkflowStep (const DataPoint &dataPoint, bool optimize=false) const |
Returns the jobs stored in dataPoint broken down by WorkflowStep. More... | |
boost::optional< std::string > | getDakotaResultsFile (const DataPoint &dataPoint) const |
Returns the DAKOTA results file string corresponding to dataPoint, if dataPoint completed successfully. More... | |
std::vector< int > | getContinuousDesignVariableIndices (const DakotaAlgorithm &dakotaAlgorithm) const |
Returns the indices into variables() that correspond to variables that DAKOTA will treat as continuous design variables. More... | |
std::vector< int > | getDiscreteDesignVariableIndices (const DakotaAlgorithm &dakotaAlgorithm) const |
Returns the indices into variables() that correspond to variables that DAKOTA will treat as discrete design variables. More... | |
std::map < UncertaintyDescriptionType, std::vector< int > > | getUncertainVariableIndices (const DakotaAlgorithm &dakotaAlgorithm) const |
Returns the indices into variables() that correspond to variables that DAKOTA will treat as uncertain variables, broken down by UncertaintyDescriptionType. More... | |
Public Member Functions inherited from openstudio::analysis::AnalysisObject | |
virtual | ~AnalysisObject () |
AnalysisObject | clone () const |
Deep copy. More... | |
std::string | name () const |
std::string | displayName () const |
std::string | description () const |
openstudio::UUID | uuid () const |
openstudio::UUID | versionUUID () const |
bool | isDirty () const |
Returns true if this object has been changed since its dirty flag was last cleared. More... | |
bool | operator== (const AnalysisObject &other) const |
Compare impls. More... | |
bool | operator!= (const AnalysisObject &other) const |
bool | uuidEqual (const AnalysisObject &other) const |
bool | uuidAndVersionEqual (const AnalysisObject &other) const |
boost::optional< AnalysisObject > | parent () const |
void | setName (const std::string &newName) |
void | setDisplayName (const std::string &newDisplayName) |
void | setDescription (const std::string &newDescription) |
bool | clearDirtyFlag () |
Call this method to reset the dirty flag of this object and all its children. More... | |
bool | connect (const char *signal, const QObject *receiver, const char *slot, Qt::ConnectionType type=Qt::AutoConnection) const |
Connect signal from this AnalysisObject to slot on receiver. More... | |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *slot=nullptr) const |
template<typename T > | |
T | cast () const |
Cast to type T. More... | |
template<typename T > | |
boost::optional< T > | optionalCast () const |
Cast to boost::optional<T>. More... | |
Related Functions | |
(Note that these are not member functions.) | |
typedef std::vector < OptimizationProblem > | OptimizationProblemVector |
typedef boost::optional < OptimizationProblem > | OptionalOptimizationProblem |
Related Functions inherited from openstudio::analysis::Problem | |
typedef boost::optional< Problem > | OptionalProblem |
typedef std::vector< Problem > | ProblemVector |
Related Functions inherited from openstudio::analysis::AnalysisObject | |
typedef std::vector < AnalysisObject > | AnalysisObjectVector |
typedef boost::optional < AnalysisObject > | OptionalAnalysisObject |
OptimizationProblem is a Problem that has objective functions in addition to variables, response functions, and a simulation workflow.
The goal of solving an OptimizationProblem is to find the combination of variable values that minimizes one or more objective functions. If numObjectiveFunctions > 1, then any non-dominated point may be deemed desirable by a decision maker. (A non-dominated point is a point for which no objective function can be improved (decreased) without harming (increasing) another objective. OptimizationProblem ensures that OptimizationDataPoints are populated with their objective function values following successful simulation.
openstudio::analysis::OptimizationProblem::OptimizationProblem | ( | const std::string & | name, |
const std::vector< Function > & | objectives, | ||
const std::vector< WorkflowStep > & | workflow | ||
) |
openstudio::analysis::OptimizationProblem::OptimizationProblem | ( | const std::string & | name, |
const std::vector< Function > & | objectives, | ||
const std::vector< WorkflowStep > & | workflow, | ||
const std::vector< Function > & | responses | ||
) |
openstudio::analysis::OptimizationProblem::OptimizationProblem | ( | const std::string & | name, |
const std::vector< Function > & | objectives, | ||
const std::vector< Variable > & | variables, | ||
const std::vector< Function > & | responses, | ||
const runmanager::Workflow & | simulationWorkflow | ||
) |
Construct from objectives, variables, responses and simulationWorkflow.
In this context, response functions are design metrics of interest that are not being optimized over.
openstudio::analysis::OptimizationProblem::OptimizationProblem | ( | const std::string & | name, |
const std::vector< Function > & | objectives, | ||
const std::vector< Variable > & | variables, | ||
const runmanager::Workflow & | simulationWorkflow | ||
) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
openstudio::analysis::OptimizationProblem::OptimizationProblem | ( | const UUID & | uuid, |
const UUID & | versionUUID, | ||
const std::string & | name, | ||
const std::string & | displayName, | ||
const std::string & | description, | ||
const std::vector< Function > & | objectives, | ||
const std::vector< WorkflowStep > & | workflow, | ||
const std::vector< Function > & | responses | ||
) |
Constructor provided for deserialization; not for general use.
|
inlinevirtual |
void openstudio::analysis::OptimizationProblem::clearObjectiveFunctions | ( | ) |
Clear all objective functions.
bool openstudio::analysis::OptimizationProblem::eraseObjective | ( | const Function & | objective | ) |
bool openstudio::analysis::OptimizationProblem::insertObjective | ( | int | index, |
const Function & | objective | ||
) |
int openstudio::analysis::OptimizationProblem::numObjectives | ( | ) | const |
std::vector<Function> openstudio::analysis::OptimizationProblem::objectives | ( | ) | const |
void openstudio::analysis::OptimizationProblem::pushObjective | ( | const Function & | objective | ) |
void openstudio::analysis::OptimizationProblem::setObjectiveFunctions | ( | const std::vector< Function > & | objectives | ) |
Sets objectives.
bool openstudio::analysis::OptimizationProblem::swapObjectives | ( | const Function & | objective1, |
const Function & | objective2 | ||
) |
|
related |
|
related |