+
+void Node::execute(literals effects){
+ for (literals::iterator effect = effects.begin(); effect != effects.end(); ++effect){
+ _preconditions.erase(find(_preconditions.begin(),_preconditions.end(), *effect));
+ }
+ if (_preconditions.size() != 0)
+ return;
+ _action.execute();
+
+ for(vector<Node*>::iterator child = _children.begin(); child != _children.end(); ++child){
+ (*child)->execute(_action.effects());
+ }
+}