3void XCSParams::registerParams(RegistryP registry) {
 
    7    registerParameter(registry, 
"beta", (voidP) 
new double(0.15), ECF::DOUBLE);
 
    8    registerParameter(registry, 
"alpha", (voidP) 
new double(0.1), ECF::DOUBLE);
 
    9    registerParameter(registry, 
"eps0", (voidP) 
new double(10), ECF::DOUBLE);
 
   10    registerParameter(registry, 
"accExp", (voidP) 
new double(5), ECF::DOUBLE);
 
   11    registerParameter(registry, 
"gama", (voidP) 
new double(0.71), ECF::DOUBLE);
 
   12    registerParameter(registry, 
"thresholdGA", (voidP) 
new uint(30), ECF::UINT);
 
   13    registerParameter(registry, 
"thresholdDel", (voidP) 
new double(20), ECF::DOUBLE);
 
   14    registerParameter(registry, 
"delta", (voidP) 
new double(0.1), ECF::DOUBLE);
 
   15    registerParameter(registry, 
"thresholdSub", (voidP) 
new double(20), ECF::DOUBLE);
 
   16    registerParameter(registry, 
"pDontCare", (voidP) 
new double(0.33), ECF::DOUBLE);
 
   17    registerParameter(registry, 
"pExplore", (voidP) 
new double(0.5), ECF::DOUBLE);
 
   18    registerParameter(registry, 
"mna", (voidP) 
new uint(1), ECF::UINT);
 
   19    registerParameter(registry, 
"maxPopSize", (voidP) 
new uint(1000), ECF::UINT);
 
   21    registerParameter(registry, 
"pCrossover", (voidP) 
new double(0.7), ECF::DOUBLE);
 
   22    registerParameter(registry, 
"pMutation", (voidP) 
new double(0.03), ECF::DOUBLE);
 
   25void XCSParams::readParams(RegistryP registry) {
 
   27    voidP vP = getParameterValue(registry, 
"mna");
 
   28    mna_ = *((uint*) vP.get());
 
   30    vP = getParameterValue(registry, 
"pExplore");
 
   31    p_explore_ = *((
double*) vP.get());
 
   32    vP = getParameterValue(registry, 
"beta");
 
   33    beta_ = *((
double*) vP.get());
 
   34    vP = getParameterValue(registry, 
"thresholdGA");
 
   35    thresholdGA_ = *((uint*) vP.get());
 
   36    vP = getParameterValue(registry, 
"gama");
 
   37    gama_ = *((
double*) vP.get());
 
   39    vP = getParameterValue(registry, 
"eps0");
 
   40    eps0_ = *((
double*) vP.get());
 
   41    vP = getParameterValue(registry, 
"alpha");
 
   42    alpha_ = *((
double*) vP.get());
 
   43    vP = getParameterValue(registry, 
"accExp");
 
   44    accExp_ = *((
double*) vP.get());
 
   45    vP = getParameterValue(registry, 
"pDontCare");
 
   46    pdc_ = *((
double*) vP.get());
 
   48    vP = getParameterValue(registry, 
"thresholdDel");
 
   49    thresholdDel_ = *((
double*) vP.get());
 
   50    vP = getParameterValue(registry, 
"delta");
 
   51    delta_ = *((
double*) vP.get());
 
   52    vP = getParameterValue(registry, 
"thresholdSub");
 
   53    thresholdSub_ = *((
double*) vP.get());
 
   54    vP = getParameterValue(registry, 
"maxPopSize");
 
   55    popSize_ = *((uint*) vP.get());
 
   56    vP = getParameterValue(registry, 
"pCrossover");
 
   57    pCrossover_ = *((
double*) vP.get());
 
   58    vP = getParameterValue(registry, 
"pMutation");
 
   59    pMutation_ = *((
double*) vP.get());
 
   62XMLNode XCSParams::getXMLNode() {
 
   64    XMLNode 
node = XMLNode::createXMLTopNode(name_.c_str(),0);
 
   65    XMLNode child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   68    ss << alpha_; child.addAttribute(
"key", 
"alpha"); child.addText(ss.str().c_str()); 
 
   69    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   70    ss << beta_; child.addAttribute(
"key", 
"beta"); child.addText(ss.str().c_str());
 
   71    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   72    ss << gama_; child.addAttribute(
"key", 
"gama"); child.addText(ss.str().c_str());
 
   73    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   74    ss << delta_; child.addAttribute(
"key", 
"delta"); child.addText(ss.str().c_str());
 
   75    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   76    ss << p_explore_; child.addAttribute(
"key", 
"pExplore"); child.addText(ss.str().c_str());
 
   77    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   78    ss << thresholdGA_; child.addAttribute(
"key", 
"thresholdGA"); child.addText(ss.str().c_str());
 
   79    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   80    ss << thresholdDel_; child.addAttribute(
"key", 
"thresholdDel"); child.addText(ss.str().c_str());
 
   81    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   82    ss << thresholdSub_; child.addAttribute(
"key", 
"thresholdSub"); child.addText(ss.str().c_str());
 
   83    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   84    ss << eps0_; child.addAttribute(
"key", 
"eps0"); child.addText(ss.str().c_str());
 
   85    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   86    ss << accExp_; child.addAttribute(
"key", 
"accExp"); child.addText(ss.str().c_str());
 
   87    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   88    ss << pdc_; child.addAttribute(
"key", 
"pDontCare"); child.addText(ss.str().c_str());
 
   89    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   90    ss << popSize_; child.addAttribute(
"key", 
"maxPopSize"); child.addText(ss.str().c_str());
 
   91    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   92    ss << mna_; child.addAttribute(
"key", 
"mna"); child.addText(ss.str().c_str());
 
   93    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   95    ss << pCrossover_; child.addAttribute(
"key", 
"pCrossover"); child.addText(ss.str().c_str());
 
   96    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
 
   97    ss << pMutation_; child.addAttribute(
"key", 
"pMutation"); child.addText(ss.str().c_str());
 
   98    node.addChild(child); ss.str(
""); child = XMLNode::createXMLTopNode(NODE_ENTRY);