ECF 1.7
Fitness.h
1#ifndef Fitness_h
2#define Fitness_h
3
4class Individual;
5typedef std::shared_ptr<Individual> IndividualP;
6class Fitness;
7typedef std::shared_ptr<Fitness> FitnessP;
8
15class Fitness
16{
17protected:
18 bool valid_;
19 double value_;
20
21 // initialized in Individual::initialize()
22 Individual* individual_;
23
24public:
25 uint cid;
26
27 Fitness()
28 {
29 valid_ = true;
30 cid = 0;
31 }
32
37 virtual bool isBetterThan(FitnessP) = 0;
38
39 virtual Fitness* copy() = 0;
40
42 bool isValid()
43 { return valid_; }
44
47 { valid_ = false; }
48
50 virtual void setValue(double value)
51 { value_ = value; }
52
54 virtual double getValue()
55 { return value_; }
56
58 virtual void write(XMLNode&) { }
59
61 std::string toString()
62 {
63 XMLNode xFit;
64 write(xFit);
65 char *s = xFit.createXMLString();
66 std::string out(s);
67 freeXMLString(s);
68 return out;
69 }
70
75 virtual void read(XMLNode& xFitness)
76 {
77 XMLCSTR val = xFitness.getAttributeValue();
78 if(val) {
79 value_ = xmltof(val);
80 valid_ = true;
81 }
82 else
83 valid_ = false;
84 }
85
86 virtual ~Fitness()
87 { }
88};
89typedef std::shared_ptr<Fitness> FitnessP;
90
91#endif // Fitness_h
92
Fitness base class.
Definition Fitness.h:16
virtual void read(XMLNode &xFitness)
Read single fitness value from XML node. If the value is undefined (e.g. when reading unevaluated ind...
Definition Fitness.h:75
uint cid
coherence index, used in asynchronous parallel algoritmhs
Definition Fitness.h:25
virtual void write(XMLNode &)
Write fitness object to XMLNode.
Definition Fitness.h:58
void setInvalid()
Set fitness object to invalid state (called after any change of individual's genotype).
Definition Fitness.h:46
virtual Fitness * copy()=0
object copy (for duplication of an individual)
bool valid_
is fitness value up-to-date
Definition Fitness.h:18
std::string toString()
Output fitness XML format as std::string.
Definition Fitness.h:61
double value_
actual fitness value
Definition Fitness.h:19
virtual bool isBetterThan(FitnessP)=0
Mandatory comparison operator.
virtual double getValue()
Return fitness value.
Definition Fitness.h:54
bool isValid()
Is fitness object up to date.
Definition Fitness.h:42
virtual void setValue(double value)
Set fitness value.
Definition Fitness.h:50
Individual class - inherits a vector of Genotype objects.
Definition Individual.h:12