#include #include #include #include #include #include #include #include #include #include #include "random.h" #include "randombits.h" #include "utility.h" #include "chromosome.h" #include using namespace std; #ifndef __TSPCHROMOSOME__ #define __TSPCHROMOSOME__ class TSPChromosome: public Chromosome { private: string s_tour; int ngenes; vector tour; Random *random; public: static vector > tsp_costs; TSPChromosome(int ngenes); TSPChromosome(string s_tour); TSPChromosome(void) {}; // ga operations void mutate(double mutate_prob); void crossover(Chromosome *chromo_mate); double evaluate(void); Chromosome* clone(void); string &repr(void); static void InitializeCosts(const vector > cost_matrix); void set_tour(vector tour) { this->tour = tour; }; vector& get_tour(void) { return tour; }; //~TSPChromosome(void) { cout << "delete me!" << endl; } }; #endif