3#include "SymbRegEvalOp.h"
6extern bool evaluateVerbose;
20 for(uint i = 0; i < nSamples / 2; i++) {
22 y.push_back(sqrt(1 - s*s));
24 y.push_back(-1 * sqrt(1 - s*s));
52 bool foundX =
false, foundY =
false;
53 for(uint i = 0; i < tree->size(); i++) {
54 std::string prim = tree->at(i)->primitive_->
getName();
60 if(!foundX || !foundY) {
61 fitness->setValue(nSamples * nSamples * nSamples);
67 std::vector<double> testValues(testSize);
69 for(uint i = 0; i < testSize; i++) {
71 double x = - 1 + 2 * state_->getRandomizer()->getRandomDouble();
72 double y = - 1 + 2 * state_->getRandomizer()->getRandomDouble();
81 testValues[i] = result;
83 double testDev = getStdDev(testValues);
85 fitness->setValue(nSamples * nSamples * nSamples);
89 std::vector<double> values(nSamples);
91 for(uint i = 0; i < nSamples; i++) {
104 for(uint i = 0; i < nSamples; i++) {
106 dev += (values[i] - average) * (values[i] - average);
108 dev = sqrt(dev / (nSamples - 1));
110 fitness->setValue(dev);
112 if(evaluateVerbose) {
114 showTree(infix, tree);
115 ECF_LOG_ERROR(state_, infix);
117 ofstream outmap(
"outmap.txt");
118 for(
double x = -1; x <= 1; x += 0.1) {
119 for(
double y = -1; y <= 1; y += 0.1) {
123 outmap << result <<
"\t";
129 ofstream outval(
"values.txt");
130 for(uint i = 0; i < values.size(); i++) {
131 outval << values[i] << endl;
140double SymbRegEvalOp::getMean(vector<double>& values)
143 for(uint i = 0; i < values.size(); i++)
145 return sum / values.size();
149double SymbRegEvalOp::getStdDev(vector<double>& values)
151 if(values.size() == 0)
153 double numerator = 0, denominator;
154 double average = getMean(values);
155 for(uint i = 0; i < values.size(); i++) {
156 numerator += ((values[i] - average) * (values[i] - average));
158 denominator = (values.size() - 1);
159 return sqrt(numerator / denominator);
Fitness for minimization problems.
std::string getName()
Return genotype's name (each genotype is uniquely identified with its name).
FitnessP evaluate(IndividualP individual)
Evaluate a single individual. Method must create and return a Fitness object.
bool initialize(StateP)
Initialize the evaluator. Called before first evaluation occurs.
Tree class - implements genotype as a tree.
void setTerminalValue(std::string, void *)
Set a terminal's value.
void execute(void *)
Execute current tree.