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 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 const DiscreteVariable * variable(const std::string &name) const =0
Returns a constant reference on a variable given it's name.
virtual void variableName(const std::string &name)=0
Tells the factory the current variable's name.
virtual void startRewardDeclaration()=0
Tells the factory that we're in a cost declaration.
virtual NodeId addInternalNode(std::string name_of_var)=0
Insert in diagram a non terminal node.
virtual void addReward(const MultiDimAdressable *reward)=0
Tells the factory to add a reward table to the current fmdp.
virtual void addTransition(const std::string &var)=0
Tells the factory to add a transition table to the current fmdp. This transition table will be extrac...
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 addModality(const std::string &name)=0
Adds a modality to the current variable.
virtual void addTransition(const std::string &var, const MultiDimAdressable *transition)=0
Tells the factory to add a transition table to the current fmdp.
virtual void addAction(const std::string &action)=0
Tells the factory to add an action to the current fmdp.
virtual ~AbstractFMDPFactory()
Destructor.
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 variableDescription(const std::string &desc)=0
Tells the factory the current variable's description.
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 void endRewardDeclaration()=0
Tells the factory that we're out of a cost declaration.
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 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.