00001 #ifndef Individual_h
00002 #define Individual_h
00003
00004 #include "Genotype.h"
00005 #include "Fitness.h"
00006
00010 class Individual : public std::vector <GenotypeP>
00011 {
00012 protected:
00013 StateP state_;
00014
00015 public:
00016 Individual()
00017 {
00018 cid = 0;
00019 }
00020
00021 Individual(StateP state);
00022
00023 bool initialize(StateP state);
00024
00025 void write(XMLNode&);
00026 void read(XMLNode&);
00027
00028 Individual* copy();
00029
00030 GenotypeP getGenotype(uint index = 0);
00031
00032 FitnessP fitness;
00033
00034 unsigned int index;
00035
00036 unsigned int cid;
00037 };
00038 typedef boost::shared_ptr<Individual> IndividualP;
00039
00040 #endif // Individual_h
00041