00001
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 #ifndef __ANNALEE_ANNGENES_H__
00043 #define __ANNALEE_ANNGENES_H__
00044
00045 #include <nhp/genetics.h>
00046 #include <nhp/genes.h>
00047 #include <magic/mpackarray.h>
00048
00049
00050 class PatternSet;
00051
00052
00053
00054
00055
00057
00058
00059
00060
00061
00062
00063
00065
00072 class ANNGene : public Gentainer {
00073 decl_dynamic (ANNGene);
00074 public:
00075 ANNGene (const GeneticID& name=NULL) : Gentainer (name) {;}
00076 ANNGene (const ANNGene& orig) : Gentainer (orig) {;}
00077
00079 virtual void init () {Gentainer::init ();}
00081 virtual void copy (const Genstruct& other) {Gentainer::copy (other);}
00083 virtual void addPrivateGenes (Gentainer& g, const StringMap& params);
00084 };
00085
00086
00087
00089
00090
00091
00092
00093
00094
00095
00097
00107 class ANNEncoding : public Gentainer {
00108 public:
00109
00110 ANNEncoding (const GeneticID& name, const StringMap& params);
00111 ANNEncoding (const ANNEncoding& other);
00112
00113
00114
00116 virtual void copy (const Genstruct& other);
00118 virtual void addPrivateGenes (Gentainer& g, const StringMap& params) {MUST_OVERLOAD}
00120 virtual void check () const;
00121
00122 protected:
00123 ANNEncoding () {FORBIDDEN}
00124
00125 int mInputs, mMaxHidden, mOutputs;
00126 bool mPrunePassthroughs;
00127 decl_dynamic (ANNEncoding);
00128 };
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00142 class TakeBrainPicsMsg : public GeneticMsg {
00143 public:
00144 TakeBrainPicsMsg (const GeneticID& rcvr, Individual& ind) : GeneticMsg (rcvr, ind) {}
00145 };
00146
00147 #endif
00148
00149
00150