BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
BPMNOS::Model::StochasticDataProvider Class Reference

Data provider supporting stochastic behavior. More...

Detailed Description

StochasticDataProvider supports:

  • 3-column format (INSTANCE_ID, NODE_ID, INITIALIZATION) - static behavior
  • 4-column format (+ DISCLOSURE) - dynamic behavior
  • 6-column format (+ ARRIVAL, COMPLETION) - stochastic behavior

Has its own LIMEX handle with lookup tables from Model plus random functions.

Definition at line 26 of file StochasticDataProvider.h.

#include <StochasticDataProvider.h>

Inheritance diagram for BPMNOS::Model::StochasticDataProvider:

Classes

struct  StochasticInstanceData
 

Public Member Functions

 StochasticDataProvider (const std::string &modelFile, const std::string &instanceFileOrString, unsigned int seed=0)
 
 StochasticDataProvider (const std::string &modelFile, const std::vector< std::string > &folders, const std::string &instanceFileOrString, unsigned int seed=0)
 
 ~StochasticDataProvider () override=default
 
std::unique_ptr< ScenariocreateScenario (unsigned int scenarioId=0) override
 
const LIMEX::Handle< double > & getStochasticHandle () const
 Get the stochastic LIMEX handle (for expression compilation)
 
- Public Member Functions inherited from BPMNOS::Model::DataProvider
 DataProvider (const std::string &modelFile, const std::vector< std::string > &folders)
 Constructor for DataProvider.
 
virtual ~DataProvider ()=0
 
const ModelgetModel () const
 

Protected Member Functions

void initializeStochasticHandle ()
 
void readInstances ()
 
void ensureDefaultValue (StochasticInstanceData &instance, const std::string attributeId, std::optional< BPMNOS::number > value=std::nullopt)
 
std::pair< std::string, std::string > parseInitialization (const std::string &initialization) const
 
BPMNOS::number evaluateExpression (const std::string &expression) const
 
BPMNOS::number getEffectiveDisclosure (size_t instanceId, const BPMN::Node *node, BPMNOS::number ownDisclosure)
 
- Protected Member Functions inherited from BPMNOS::Model::DataProvider
BPMN::NodefindNode (const std::string &nodeId) const
 

Protected Attributes

CSVReader reader
 
unsigned int seed
 
size_t columnCount
 
LIMEX::Handle< double > stochasticHandle
 Dedicated LIMEX handle with lookup tables + random functions.
 
RandomDistributionFactory randomFactory
 Random distribution factory.
 
std::unordered_map< long unsigned int, StochasticInstanceDatainstances
 
std::unordered_map< const Attribute *, BPMNOS::numberglobalValueMap
 
std::unordered_map< size_t, std::vector< StochasticPendingDisclosure > > pendingDisclosures
 Pending disclosures with expressions to evaluate at disclosure time.
 
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::unordered_map< size_t, std::unordered_map< const BPMN::Node *, BPMNOS::number > > disclosure
 Node disclosure times.
 
BPMNOS::number earliestInstantiation
 
BPMNOS::number latestInstantiation
 
- Protected Attributes inherited from BPMNOS::Model::DataProvider
std::unique_ptr< Modelmodel
 Pointer to the BPMN model.
 
DataInput attributes
 Map holding all attributes in the model with keys being the process (or nullptr for global attributes) and attribute id. TODO: Remove when old CSV format support is removed.
 

Constructor & Destructor Documentation

◆ StochasticDataProvider() [1/2]

StochasticDataProvider::StochasticDataProvider ( const std::string & modelFile,
const std::string & instanceFileOrString,
unsigned int seed = 0 )

Definition at line 12 of file StochasticDataProvider.cpp.

◆ StochasticDataProvider() [2/2]

StochasticDataProvider::StochasticDataProvider ( const std::string & modelFile,
const std::vector< std::string > & folders,
const std::string & instanceFileOrString,
unsigned int seed = 0 )

Definition at line 19 of file StochasticDataProvider.cpp.

◆ ~StochasticDataProvider()

BPMNOS::Model::StochasticDataProvider::~StochasticDataProvider ( )
overridedefault

Member Function Documentation

◆ createScenario()

std::unique_ptr< Scenario > StochasticDataProvider::createScenario ( unsigned int scenarioId = 0)
overridevirtual

Implements BPMNOS::Model::DataProvider.

Definition at line 425 of file StochasticDataProvider.cpp.

◆ ensureDefaultValue()

void StochasticDataProvider::ensureDefaultValue ( StochasticInstanceData & instance,
const std::string attributeId,
std::optional< BPMNOS::number > value = std::nullopt )
protected

Definition at line 396 of file StochasticDataProvider.cpp.

◆ evaluateExpression()

BPMNOS::number StochasticDataProvider::evaluateExpression ( const std::string & expression) const
protected

Definition at line 354 of file StochasticDataProvider.cpp.

◆ getEffectiveDisclosure()

BPMNOS::number StochasticDataProvider::getEffectiveDisclosure ( size_t instanceId,
const BPMN::Node * node,
BPMNOS::number ownDisclosure )
protected

Definition at line 373 of file StochasticDataProvider.cpp.

◆ getStochasticHandle()

const LIMEX::Handle< double > & BPMNOS::Model::StochasticDataProvider::getStochasticHandle ( ) const
inline

Definition at line 37 of file StochasticDataProvider.h.

◆ initializeStochasticHandle()

void StochasticDataProvider::initializeStochasticHandle ( )
protected

Definition at line 50 of file StochasticDataProvider.cpp.

◆ parseInitialization()

std::pair< std::string, std::string > StochasticDataProvider::parseInitialization ( const std::string & initialization) const
protected

Definition at line 326 of file StochasticDataProvider.cpp.

◆ readInstances()

void StochasticDataProvider::readInstances ( )
protected

Definition at line 63 of file StochasticDataProvider.cpp.

Member Data Documentation

◆ arrivalExpressions

std::unordered_map<size_t, std::unordered_map<const BPMN::Node*, std::vector<ArrivalExpression> > > BPMNOS::Model::StochasticDataProvider::arrivalExpressions
protected

Definition at line 67 of file StochasticDataProvider.h.

◆ columnCount

size_t BPMNOS::Model::StochasticDataProvider::columnCount
protected

Definition at line 42 of file StochasticDataProvider.h.

◆ completionExpressions

std::unordered_map<size_t, std::unordered_map<const BPMN::Node*, std::vector<CompletionExpression> > > BPMNOS::Model::StochasticDataProvider::completionExpressions
protected

Definition at line 70 of file StochasticDataProvider.h.

◆ disclosure

std::unordered_map<size_t, std::unordered_map<const BPMN::Node*, BPMNOS::number> > BPMNOS::Model::StochasticDataProvider::disclosure
protected

Definition at line 73 of file StochasticDataProvider.h.

◆ earliestInstantiation

BPMNOS::number BPMNOS::Model::StochasticDataProvider::earliestInstantiation
protected

Definition at line 75 of file StochasticDataProvider.h.

◆ globalValueMap

std::unordered_map<const Attribute*, BPMNOS::number> BPMNOS::Model::StochasticDataProvider::globalValueMap
protected

Definition at line 61 of file StochasticDataProvider.h.

◆ instances

std::unordered_map<long unsigned int, StochasticInstanceData> BPMNOS::Model::StochasticDataProvider::instances
protected

Definition at line 60 of file StochasticDataProvider.h.

◆ latestInstantiation

BPMNOS::number BPMNOS::Model::StochasticDataProvider::latestInstantiation
protected

Definition at line 76 of file StochasticDataProvider.h.

◆ pendingDisclosures

std::unordered_map<size_t, std::vector<StochasticPendingDisclosure> > BPMNOS::Model::StochasticDataProvider::pendingDisclosures
protected

Definition at line 64 of file StochasticDataProvider.h.

◆ randomFactory

RandomDistributionFactory BPMNOS::Model::StochasticDataProvider::randomFactory
protected

Definition at line 48 of file StochasticDataProvider.h.

◆ reader

CSVReader BPMNOS::Model::StochasticDataProvider::reader
protected

Definition at line 40 of file StochasticDataProvider.h.

◆ seed

unsigned int BPMNOS::Model::StochasticDataProvider::seed
protected

Definition at line 41 of file StochasticDataProvider.h.

◆ stochasticHandle

LIMEX::Handle<double> BPMNOS::Model::StochasticDataProvider::stochasticHandle
protected

Definition at line 45 of file StochasticDataProvider.h.


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