00001
00009
00010
00011
00012
00013
00014 #ifndef __GAL_PROBLEM_H
00015 #define __GAL_PROBLEM_H
00016
00017 #include "Chromosome.h"
00018
00019 namespace gal {
00020
00030 template <class T> class Problem {
00031 public:
00032 Problem() {}
00033 virtual ~Problem() {}
00034
00039 virtual Chromosome<T>* const constructChromosome(int chromoLength) = 0;
00040
00046 virtual Chromosome<T>* const copyChromosome(Chromosome<T>* chromo) = 0;
00047
00054 virtual void const deleteChromosome(Chromosome<T>* chromo) = 0;
00055
00060 virtual double const evaluateObjective(Chromosome<T>* chromo) = 0;
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070 };
00071
00072 }
00073 #endif