9 #ifndef YARP_MANAGER_BINEXPARSER
10 #define YARP_MANAGER_BINEXPARSER
38 sprintf(str,
"%s%d", opd,
node_id++);
49 sprintf(str,
"%s%d", opt,
node_id++);
85 const char*
getName() {
return strName.c_str(); }
104 bool parse(std::string _exp);
108 validOperands.push_back(opnd);
121 bool evalTree(
BinaryNodePtr node, std::map<std::string, bool>& opnd);
123 bool checkExpression(std::string& strexp);
124 void parseExpression(std::string &strexp,
BinaryNodePtr& node);
127 std::string getNextOperand(std::string &strexp);
128 std::string popNextOperand(std::string &strexp);
129 void createTruthTable(
const int n);
130 void printTruthTable(std::string lopr);
134 std::string expression;
138 std::map<std::string, bool> operands;
139 std::vector<std::string> validOperands;
140 std::vector<std::string> invalidOperands;
141 std::vector<std::vector<int> > truthTable;
151 maxIteration(max_itr),
152 trainRate(train_rate),
158 bool train(
const std::vector<std::vector<int> > &truthTable);
160 const std::vector<double> &
getAlphas() {
return alphas; }
161 const std::vector<double> &
getErrors() {
return errors; }
167 std::vector<double> alphas;
168 std::vector<double> errors;
virtual ~BinaryExpParser()
void addRestrictedOperand(const char *opnd)
bool parse(std::string _exp)
const std::vector< std::vector< int > > & getTruthTable()
const std::map< std::string, bool > & getOperands()
bool exportDotGraph(const char *szFileName)
~BinaryNode() override=default
BinaryNode(const char *opd)
BinaryNode(const char *opt, BinaryNode *left, BinaryNode *right)
const std::vector< double > & getErrors()
bool train(const std::vector< std::vector< int > > &truthTable)
const std::vector< double > & getAlphas()
LinkTrainer(int max_itr=1000, double train_rate=1.0)
bool addSuc(Node *node, float weight, bool _virtual=false)
class Node
Link & getLinkAt(int index)
void setLabel(const char *szLabel)
BinaryNode * BinaryNodePtr
enum yarp::manager::__BinNodeType BinNodeType
enum yarp::manager::__NodeType NodeType
The main, catch-all namespace for YARP.