50#ifndef GUM_ABSTRACT_FMDP_FACTORY_H
51#define GUM_ABSTRACT_FMDP_FACTORY_H
A factory class to ease Factored Markov Decision Process construction.
virtual void endActionDeclaration()=0
Tells the factory that we're out of an action declaration.
virtual void startVariableDeclaration()=0
Tells the factory that we're in a variable declaration.
virtual void endTransitionDeclaration()=0
Tells the factory that we're out of a transition declaration.
virtual void startCostDeclaration()=0
Tells the factory that we're in a cost declaration.
virtual void addAction(std::string_view action)=0
Tells the factory to add an action to the current fmdp.
virtual ~AbstractFMDPFactory()=default
Destructor.
virtual void addReward()=0
Tells the factory to add current decision diagram it has as a reward table.
virtual void startActionDeclaration()=0
Tells the factory that we're in an action declaration.
virtual void startRewardDeclaration()=0
Tells the factory that we're in a cost declaration.
virtual void addTransition(std::string_view var, const MultiDimAdressable *transition)=0
Tells the factory to add a transition table to the current fmdp.
virtual void addReward(const MultiDimAdressable *reward)=0
Tells the factory to add a reward table to the current fmdp.
virtual void variableDescription(std::string_view desc)=0
Tells the factory the current variable's description.
virtual void startDiscountDeclaration()=0
Tells the factory that we're in a cost declaration.
virtual void addCost(const MultiDimAdressable *cost)=0
Tells the factory to add a cost table to the current fmdp.
virtual void variableName(std::string_view name)=0
Tells the factory the current variable's name.
virtual void addTransition(std::string_view var)=0
Tells the factory to add a transition table to the current fmdp. This transition table will be extrac...
virtual void addModality(std::string_view name)=0
Adds a modality to the current variable.
virtual NodeId addTerminalNode(float value)=0
Insert in diagram a terminal node.
virtual void addCost()=0
Tells the factory to add current decision diagram it has as a cost table.
virtual void addDiscount(float discount)=0
Tells the factory to add a cost table to the current fmdp.
virtual void endVariableDeclaration()=0
Tells the factory that we're out of a variable declaration.
virtual void addArc(NodeId from, NodeId to, Idx modality)=0
Insert in diagram an arc.
virtual void startTransitionDeclaration()=0
Tells the factory that we're in a transition declaration.
virtual void endDiscountDeclaration()=0
Tells the factory that we're out of a cost declaration.
virtual void setRoot(NodeId rootId)=0
Set the root of the diagram.
virtual const DiscreteVariable * variable(std::string_view name) const =0
Returns a constant reference on a variable given it's name.
virtual void endRewardDeclaration()=0
Tells the factory that we're out of a cost declaration.
virtual NodeId addInternalNode(std::string_view name_of_var)=0
Insert in diagram a non terminal node.
virtual FMDPfactory_state state() const =0
Returns the current state of the factory.
virtual void endCostDeclaration()=0
Tells the factory that we're out of a cost declaration.
virtual void setOperationModeOn(std::string_view operationType)=0
Tells the factory that we're in a reward declaration mode where the global reward diagram is an opera...
Base class for discrete random variable.
Abstract base class for all multi dimensionnal addressable.
Class for implementation of factored markov decision process.
Size Idx
Type for indexes.
Size NodeId
Type for node ids.
gum is the global namespace for all aGrUM entities
FMDPfactory_state
The enumeration of states in which the factory can be in.