|
BPMN-OS
BPMN for optimization and simulation
|
Definition at line 57 of file StochasticScenario.h.
#include <StochasticScenario.h>
Public Member Functions | |
| StochasticScenario (const Model *model, BPMNOS::number earliestInstantiationTime, BPMNOS::number latestInstantiationTime, const std::unordered_map< const Attribute *, BPMNOS::number > &globalValueMap, unsigned int seed=0) | |
| BPMNOS::number | getEarliestInstantiationTime () const override |
| Method returning the time of the earliest instantiation. | |
| bool | isCompleted (const BPMNOS::number currentTime) const override |
| Method returning true if the currentTime exceeds the completion time. | |
| std::vector< std::tuple< const BPMN::Process *, BPMNOS::Values, BPMNOS::Values > > | getCurrentInstantiations (const BPMNOS::number currentTime) const override |
| Method returning a vector of all instances that are known to be instantiated at the given time. | |
| std::vector< const InstanceData * > | getCreatedInstances (const BPMNOS::number currentTime) const override |
| Method returning a vector of all instances that have been created until the given time. | |
| std::vector< const InstanceData * > | getKnownInstances (const BPMNOS::number currentTime) const override |
| Method returning a vector of all instances that have been created or are known for sure until the given time. | |
| std::optional< BPMNOS::number > | getKnownValue (const Scenario::InstanceData *instance, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const override |
| Method returning a known value of an attribute. | |
| std::optional< BPMNOS::number > | getKnownValue (const BPMNOS::number instanceId, const BPMNOS::Model::Attribute *attribute, const BPMNOS::number currentTime) const override |
| Method returning a known value of an attribute. | |
| std::optional< BPMNOS::Values > | getKnownValues (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const override |
| Method returning all known values of new attributes. | |
| std::optional< BPMNOS::Values > | getKnownData (const BPMNOS::number instanceId, const BPMN::Node *node, const BPMNOS::number currentTime) const override |
| Method returning all known values of new attributes. | |
| void | setTaskCompletionStatus (const BPMNOS::number instanceId, const BPMN::Node *task, BPMNOS::Values status) const override |
| Store the completion status when a task enters BUSY state. | |
| void | revealData (BPMNOS::number currentTime) const |
| void | initializeArrivalData (BPMNOS::number instanceId, const BPMN::Node *node, const Values &status, const Values &data, const Values &globals) const override |
| Initialize arrival data when a token arrives at an activity. | |
Public Member Functions inherited from BPMNOS::Model::Scenario | |
| virtual | ~Scenario ()=default |
| const Model * | getModel () const |
| Method returning the model. | |
| virtual BPMNOS::Values | getTaskCompletionStatus (const BPMNOS::number instanceId, const BPMN::Node *task) const |
| Get the completion status for a task. | |
Protected Member Functions | |
| Values | getKnownInitialStatus (const InstanceData *, const BPMNOS::number time) const override |
| Method returning the initial status attributes for process instantiation. | |
| Values | getKnownInitialData (const InstanceData *, const BPMNOS::number time) const override |
| Method returning the initial data attributes for process instantiation. | |
| void | addInstance (const BPMN::Process *process, const BPMNOS::number instanceId, BPMNOS::number instantiationTime) |
| void | setValue (const BPMNOS::number instanceId, const Attribute *attribute, std::optional< BPMNOS::number > value) |
| void | setDisclosure (const BPMNOS::number instanceId, const BPMN::Node *node, BPMNOS::number disclosureTime) |
| void | addPendingDisclosure (const BPMNOS::number instanceId, StochasticPendingDisclosure &&pending) |
| void | addCompletionExpression (const BPMNOS::number instanceId, const BPMN::Node *task, CompletionExpression &&expr) |
| void | addArrivalExpression (const BPMNOS::number instanceId, const BPMN::Node *node, ArrivalExpression &&expr) |
| std::mt19937 & | getRng (size_t instanceId, const BPMN::Node *node) const |
| Get or create RNG for (instance, node) pair. | |
Protected Member Functions inherited from BPMNOS::Model::Scenario | |
Protected Attributes | |
| std::unordered_map< size_t, InstanceData > | instances |
| std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, BPMNOS::number > > | disclosure |
| Instance ID -> Node -> disclosure time. | |
| std::unordered_map< size_t, std::vector< StochasticPendingDisclosure > > | pendingDisclosures |
| Instance ID -> pending disclosures. | |
| std::set< std::pair< size_t, const Attribute * > > | disclosedAttributes |
| Track which attributes have been disclosed. | |
| std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, std::vector< ArrivalExpression > > > | arrivalExpressions |
| Arrival expressions per (instance, node) | |
| std::unordered_map< size_t, std::unordered_map< const BPMN::Node *, std::vector< CompletionExpression > > > | completionExpressions |
| Completion expressions per (instance, node) | |
| std::map< std::pair< size_t, const BPMN::Node * >, std::mt19937 > | rngs |
| Per (instance, node) RNG for reproducibility. | |
| unsigned int | scenarioSeed |
| BPMNOS::number | earliestInstantiationTime |
| BPMNOS::number | latestInstantiationTime |
| RandomDistributionFactory * | randomFactory = nullptr |
| RandomDistributionFactory for expression evaluation (set by provider) | |
Friends | |
| class | StochasticDataProvider |
Additional Inherited Members | |
Public Attributes inherited from BPMNOS::Model::Scenario | |
| BPMNOS::Values | globals |
| std::map< std::pair< size_t, const BPMN::Node * >, BPMNOS::Values > | taskCompletionStatus |
| Stored completion status per (instanceId, task) | |
| const Model * | model |
| Pointer to the BPMN model. | |
Static Public Attributes inherited from BPMNOS::Model::Scenario | |
| static constexpr char | delimiters [] = {'^','#'} |
| Delimiters used for disambiguation of identifiers of non-interrupting event subprocesses and multi-instance activities. | |
| StochasticScenario::StochasticScenario | ( | const Model * | model, |
| BPMNOS::number | earliestInstantiationTime, | ||
| BPMNOS::number | latestInstantiationTime, | ||
| const std::unordered_map< const Attribute *, BPMNOS::number > & | globalValueMap, | ||
| unsigned int | seed = 0 ) |
Definition at line 8 of file StochasticScenario.cpp.
|
protected |
Definition at line 52 of file StochasticScenario.cpp.
|
protected |
Definition at line 46 of file StochasticScenario.cpp.
|
protected |
Definition at line 26 of file StochasticScenario.cpp.
|
protected |
Definition at line 41 of file StochasticScenario.cpp.
|
overridevirtual |
Implements BPMNOS::Model::Scenario.
Definition at line 113 of file StochasticScenario.cpp.
|
overridevirtual |
Implements BPMNOS::Model::Scenario.
Definition at line 134 of file StochasticScenario.cpp.
|
overridevirtual |
Implements BPMNOS::Model::Scenario.
Definition at line 105 of file StochasticScenario.cpp.
|
overridevirtual |
If at least one attribute value is not yet known, the method returns std::nullopt.
Implements BPMNOS::Model::Scenario.
Definition at line 237 of file StochasticScenario.cpp.
|
overrideprotectedvirtual |
Used internally by getCurrentInstantiations to get process-level data attributes.
Implements BPMNOS::Model::Scenario.
Definition at line 162 of file StochasticScenario.cpp.
|
overrideprotectedvirtual |
Used internally by getCurrentInstantiations to get process-level status attributes.
Implements BPMNOS::Model::Scenario.
Definition at line 153 of file StochasticScenario.cpp.
|
overridevirtual |
Implements BPMNOS::Model::Scenario.
Definition at line 124 of file StochasticScenario.cpp.
|
overridevirtual |
If the attribute value is not yet known, the method returns std::nullopt.
Implements BPMNOS::Model::Scenario.
Definition at line 213 of file StochasticScenario.cpp.
|
overridevirtual |
If the attribute value is not yet known, the method returns std::nullopt.
Implements BPMNOS::Model::Scenario.
Definition at line 171 of file StochasticScenario.cpp.
|
overridevirtual |
If at least one attribute value is not yet known, the method returns std::nullopt.
Implements BPMNOS::Model::Scenario.
Definition at line 220 of file StochasticScenario.cpp.
|
protected |
Definition at line 94 of file StochasticScenario.cpp.
|
overridevirtual |
Evaluates ARRIVAL expressions using the parent scope's context and stores the computed values. Called by ScenarioUpdater when token enters ARRIVED or CREATED state at an Activity.
Reimplemented from BPMNOS::Model::Scenario.
Definition at line 58 of file StochasticScenario.cpp.
|
overridevirtual |
Implements BPMNOS::Model::Scenario.
Definition at line 109 of file StochasticScenario.cpp.
| void StochasticScenario::revealData | ( | BPMNOS::number | currentTime | ) | const |
Definition at line 315 of file StochasticScenario.cpp.
|
protected |
Definition at line 36 of file StochasticScenario.cpp.
|
overridevirtual |
Evaluates COMPLETION expressions immediately and stores the final result. Uses per-(instance, node) RNG for reproducibility.
Reimplemented from BPMNOS::Model::Scenario.
Definition at line 254 of file StochasticScenario.cpp.
|
protected |
Definition at line 31 of file StochasticScenario.cpp.
|
friend |
Definition at line 58 of file StochasticScenario.h.
|
protected |
Definition at line 132 of file StochasticScenario.h.
|
protected |
Definition at line 135 of file StochasticScenario.h.
|
mutableprotected |
Definition at line 129 of file StochasticScenario.h.
|
protected |
Definition at line 127 of file StochasticScenario.h.
|
protected |
Definition at line 141 of file StochasticScenario.h.
|
mutableprotected |
Definition at line 126 of file StochasticScenario.h.
|
protected |
Definition at line 142 of file StochasticScenario.h.
|
mutableprotected |
Definition at line 128 of file StochasticScenario.h.
|
mutableprotected |
Definition at line 145 of file StochasticScenario.h.
|
mutableprotected |
Definition at line 138 of file StochasticScenario.h.
|
protected |
Definition at line 140 of file StochasticScenario.h.