From 512c18b0d06c3ec1c972016ee13df89dfc7d77cf Mon Sep 17 00:00:00 2001 From: jeggermo Date: Tue, 11 Nov 2008 09:50:52 +0000 Subject: [PATCH] fixed some stupid problems --- eo/src/gp/eoStParseTreeOp.h | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/eo/src/gp/eoStParseTreeOp.h b/eo/src/gp/eoStParseTreeOp.h index 28bd3ff83..860e1a7c8 100644 --- a/eo/src/gp/eoStParseTreeOp.h +++ b/eo/src/gp/eoStParseTreeOp.h @@ -32,6 +32,7 @@ #include #include #include +#include #include @@ -82,7 +83,7 @@ public: int n = 0; int type = 0; int j = 0; - set test; + std::set test; do { do // select a random node in _eo1 as crossover point, and check if we didn't try it already @@ -106,7 +107,9 @@ public: n = rng.random(nodes.size()); j = nodes[n]; - parse_tree::subtree tmp = _eo1[i]; + + + typename eoParseTree::subtree tmp = _eo1[i]; _eo1[i] = _eo2[j]; // insert subtree _eo2[j] = tmp; @@ -208,15 +211,15 @@ public: unsigned int i=0; int arity=0; int type=0; - std::vector node_std::vector; + std::vector node_vector; for(i=0; i < _node.size(); i++) { arity = _node[i].arity(); type = _node[i].type(); - node_std::vector = node[type][arity]; - node_std::vector.push_back(_node[i]); - node[type][arity]= node_std::vector; + node_vector = node[type][arity]; + node_vector.push_back(_node[i]); + node[type][arity]= node_vector; }; }; @@ -246,7 +249,7 @@ public: private : - map < int, map < int, std::vector > > node; + std::map < int, std::map < int, std::vector > > node; }; @@ -286,13 +289,7 @@ public: // get the type of the current tree int type = _eo1[ _eo1.size() - 1 ]->type(); - - - do - { - initializer(eo2); - get_possible_nodes(eo2, nodes, type); - }while (nodes.empty()); + get_possible_nodes(_eo1, nodes, type); // select a subtree-node to replace the current tree int n = rng.random(nodes.size());