Go to the documentation of this file.00001 #ifndef BooleanVariable_H
00002 #define BooleanVariable_H
00003
00004
00005 #include <vector>
00006 #include <string>
00007 #include "MOMDP.h"
00008 #include "MObject.h"
00009 #include "IVariableValue.h"
00010 #include "VariableValue.h"
00011 #include "IVariable.h"
00012 using namespace std;
00013 using namespace momdp;
00014
00015 namespace momdp
00016 {
00017
00018
00019
00020 class BooleanVariable : public IVariable
00021 {
00022 private:
00023 string variableName;
00024 vector<SharedPointer<VariableValue> > values;
00025 virtual void addValue(SharedPointer<VariableValue> value);
00026 virtual void addValue(string value, double initialProb = 0.0);
00027
00028 public:
00029 static const int TrueValueIndex = 0;
00030 static const int FalseValueIndex = 1;
00031 BooleanVariable(string name,double initProbTrue, double initProbFalse);
00032 virtual ~BooleanVariable(void);
00033 virtual SharedPointer<IVariableValue> getValueByName(string valName);
00034 virtual SharedPointer<IVariableValue> getTrueValue();
00035 virtual SharedPointer<IVariableValue> getFalseValue();
00036 virtual string getVariableName();
00037 virtual vector<SharedPointer<IVariableValue> > getInitialValues();
00038 virtual int getNumValues();
00039 virtual vector<SharedPointer<IVariableValue> > getValues();
00040 };
00041
00042 }
00043
00044 #endif
00045