00001 #ifndef FUNCTIONMAXEVALOP_H_
00002 #define FUNCTIONMAXEVALOP_H_
00003
00004 #include <cmath>
00005 #include "Individual.h"
00006 #include "EvaluateOp.h"
00007 #include "FitnessMax.h"
00008
00009 class FunctionMaxEvalOp: public EvaluateOp {
00010 public:
00011 FitnessP evaluate(IndividualP individual){
00012
00013 FitnessP fitness = static_cast<FitnessP> (new FitnessMax);
00014
00015 Binary* bin = (Binary*) individual->at(0).get();
00016
00017 fitness->value_ = 0;
00018 float realTemp = 0;
00019
00020
00021 for (uint i = 0; i < bin->variables.size(); i++){
00022 realTemp = pow((bin->realValue.at(i) - (i + 1)), 2.);
00023 fitness->value_ = fitness->value_ - realTemp;
00024 }
00025 printf ("Vrijednost fitness funkcije: %f\n", fitness->value_);
00026
00027 return fitness;
00028 }
00029 };
00030 typedef boost::shared_ptr<FunctionMaxEvalOp> FunctionMaxEvalOpP;
00031
00032 #endif