• Main Page
  • Modules
  • Classes
  • Files
  • File List

D:/Projekt/ECF_trunk/ECF/xcs/XCSParams.cpp

00001 #include "XCSParams.h"
00002 
00003 void XCSParams::registerParams(RegistryP registry) {
00004     
00005     //Default values taken from AlgXCS.cpp [1]
00006 
00007     registerParameter(registry, "beta", (voidP) new double(0.15), ECF::DOUBLE);
00008     registerParameter(registry, "alpha", (voidP) new double(0.1), ECF::DOUBLE);
00009     registerParameter(registry, "eps0", (voidP) new double(10), ECF::DOUBLE);
00010     registerParameter(registry, "accExp", (voidP) new double(5), ECF::DOUBLE);
00011     registerParameter(registry, "gama", (voidP) new double(0.71), ECF::DOUBLE);
00012     registerParameter(registry, "thresholdGA", (voidP) new int(30), ECF::UINT);
00013     registerParameter(registry, "thresholdDel", (voidP) new double(20), ECF::DOUBLE);
00014     registerParameter(registry, "delta", (voidP) new double(0.1), ECF::DOUBLE);
00015     registerParameter(registry, "thresholdSub", (voidP) new double(20), ECF::DOUBLE);
00016     registerParameter(registry, "pDontCare", (voidP) new double(0.33), ECF::DOUBLE);
00017     registerParameter(registry, "pExplore", (voidP) new double(0.5), ECF::DOUBLE);
00018     registerParameter(registry, "mna", (voidP) new uint(1), ECF::UINT);
00019     registerParameter(registry, "maxPopSize", (voidP) new uint(1000), ECF::UINT);
00020 
00021     registerParameter(registry, "pCrossover", (voidP) new double(0.7), ECF::DOUBLE);
00022     registerParameter(registry, "pMutation", (voidP) new double(0.03), ECF::DOUBLE);
00023 }
00024 
00025 void XCSParams::readParams(RegistryP registry) {
00026 
00027     voidP vP = getParameterValue(registry, "mna");
00028     mna_ = *((uint*) vP.get());
00029 
00030     vP = getParameterValue(registry, "pExplore");
00031     p_explore_ = *((double*) vP.get());
00032     vP = getParameterValue(registry, "beta");
00033     beta_ = *((double*) vP.get());
00034     vP = getParameterValue(registry, "thresholdGA");
00035     thresholdGA_ = *((uint*) vP.get());
00036     vP = getParameterValue(registry, "gama");
00037     gama_ = *((double*) vP.get());
00038 
00039     vP = getParameterValue(registry, "eps0");
00040     eps0_ = *((double*) vP.get());
00041     vP = getParameterValue(registry, "alpha");
00042     alpha_ = *((double*) vP.get());
00043     vP = getParameterValue(registry, "accExp");
00044     accExp_ = *((double*) vP.get());
00045     vP = getParameterValue(registry, "pDontCare");
00046     pdc_ = *((double*) vP.get());
00047 
00048     vP = getParameterValue(registry, "thresholdDel");
00049     thresholdDel_ = *((double*) vP.get());
00050     vP = getParameterValue(registry, "delta");
00051     delta_ = *((double*) vP.get());
00052     vP = getParameterValue(registry, "thresholdSub");
00053     thresholdSub_ = *((double*) vP.get());
00054     vP = getParameterValue(registry, "maxPopSize");
00055     popSize_ = *((uint*) vP.get());
00056     vP = getParameterValue(registry, "pCrossover");
00057     pCrossover_ = *((double*) vP.get());
00058     vP = getParameterValue(registry, "pMutation");
00059     pMutation_ = *((double*) vP.get());
00060 }
00061 
00062 XMLNode XCSParams::getXMLNode() {
00063 
00064     XMLNode node = XMLNode::createXMLTopNode(name_.c_str(),0);
00065     XMLNode child = XMLNode::createXMLTopNode(NODE_ENTRY);
00066     
00067     std::stringstream ss;
00068     ss << alpha_; child.addAttribute("key", "alpha"); child.addText(ss.str().c_str()); 
00069     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00070     ss << beta_; child.addAttribute("key", "beta"); child.addText(ss.str().c_str());
00071     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00072     ss << gama_; child.addAttribute("key", "gama"); child.addText(ss.str().c_str());
00073     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00074     ss << delta_; child.addAttribute("key", "delta"); child.addText(ss.str().c_str());
00075     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00076     ss << p_explore_; child.addAttribute("key", "pExplore"); child.addText(ss.str().c_str());
00077     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00078     ss << thresholdGA_; child.addAttribute("key", "thresholdGA"); child.addText(ss.str().c_str());
00079     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00080     ss << thresholdDel_; child.addAttribute("key", "thresholdDel"); child.addText(ss.str().c_str());
00081     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00082     ss << thresholdSub_; child.addAttribute("key", "thresholdSub"); child.addText(ss.str().c_str());
00083     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00084     ss << eps0_; child.addAttribute("key", "eps0"); child.addText(ss.str().c_str());
00085     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00086     ss << accExp_; child.addAttribute("key", "accExp"); child.addText(ss.str().c_str());
00087     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00088     ss << pdc_; child.addAttribute("key", "pDontCare"); child.addText(ss.str().c_str());
00089     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00090     ss << popSize_; child.addAttribute("key", "maxPopSize"); child.addText(ss.str().c_str());
00091     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00092     ss << mna_; child.addAttribute("key", "mna"); child.addText(ss.str().c_str());
00093     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00094     
00095     ss << pCrossover_; child.addAttribute("key", "pCrossover"); child.addText(ss.str().c_str());
00096     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00097     ss << pMutation_; child.addAttribute("key", "pMutation"); child.addText(ss.str().c_str());
00098     node.addChild(child); ss.str(""); child = XMLNode::createXMLTopNode(NODE_ENTRY);
00099     
00100     return node;
00101 }

Generated on Tue Nov 4 2014 13:04:31 for ECF by  doxygen 1.7.1