BPMN-OS
BPMN for optimization and simulation
Loading...
Searching...
No Matches
SeededGreedyController.h
Go to the documentation of this file.
1#ifndef BPMNOS_Execution_SeededGreedyController_H
2#define BPMNOS_Execution_SeededGreedyController_H
3
4#include <bpmn++.h>
5#include "SeededController.h"
6#include "Evaluator.h"
9
10namespace BPMNOS::Execution {
11
12/**
13 * @brief A controller dispatching the best evaluated decisions
14 */
16public:
18 void notice(const Observable* observable) override;
19 std::shared_ptr<Event> createEntryEvent(const SystemState* systemState, const Token* token, const Vertex* vertex) override;
20 std::shared_ptr<Event> createExitEvent(const SystemState* systemState, const Token* token, const Vertex* vertex) override;
21 std::shared_ptr<Event> createChoiceEvent(const SystemState* systemState, const Token* token, const Vertex* vertex) override;
22 std::shared_ptr<Event> createMessageDeliveryEvent(const SystemState* systemState, const Token* token, const Vertex* vertex) override;
23protected:
25 std::unique_ptr<BisectionalChoice> choiceDispatcher;
27};
28
29} // namespace BPMNOS::Execution
30
31#endif // BPMNOS_Execution_SeededGreedyController_H
32
Represents an abstract base class for an evaluator determining feasibility and reward of a decision.
Definition Evaluator.h:15
Represents a graph containing all BPMN nodes that may receive a token during execution of a scenario.
A controller dispatching decisions in the order derived from a given seed.
const FlattenedGraph * flattenedGraph
A controller dispatching the best evaluated decisions.
void notice(const Observable *observable) override
auto_list< std::weak_ptr< const Message > > messages
std::unique_ptr< BisectionalChoice > choiceDispatcher
std::shared_ptr< Event > createChoiceEvent(const SystemState *systemState, const Token *token, const Vertex *vertex) override
Method creating a choice event.
std::shared_ptr< Event > createEntryEvent(const SystemState *systemState, const Token *token, const Vertex *vertex) override
Method creating an initial sequence of vertices.
SeededGreedyController(const BPMNOS::Execution::FlattenedGraph *flattenedGraph, Evaluator *evaluator)
std::shared_ptr< Event > createExitEvent(const SystemState *systemState, const Token *token, const Vertex *vertex) override
Method creating a choice event.
std::shared_ptr< Event > createMessageDeliveryEvent(const SystemState *systemState, const Token *token, const Vertex *vertex) override
Method creating a choice event.
A class representing the state that the execution or simulation of a given scenario is in.
Definition SystemState.h:21
Represents a token running through a (sub)process.
Definition Token.h:35
List of tuples with automatic removal of tuples containing an expired weak_ptr.
Definition auto_list.h:15