00001 #include <OneMax.h> 00002 00003 OneMax::OneMax(int numberOfBits) { 00004 problemName_ = "OneMax" ; 00005 numberOfVariables_ = 1 ; 00006 numberOfFunctions_ = 1 ; 00007 numberOfConstraints_ = 0 ; 00008 00009 numberOfBits_ = numberOfBits ; 00010 00011 variable_ = new VariableType[numberOfVariables_] ; 00012 variable_[0] = BINARY ; 00013 00014 cout << "Created a " << problemName_ << " problem. Number of bits: " 00015 << numberOfBits << endl ; 00016 } // OneMax::OneMax 00017 00018 void OneMax::evaluate(Individual *individual) { 00019 int counter ; 00020 int i ; 00021 00022 counter = 0 ; 00023 for (i = 0; 00024 i < ((BinaryGene*)(individual->chromosome_->gene_[0]))->numberOfBits_; 00025 i++) 00026 if (((BinaryGene*)(individual->chromosome_->gene_[0]))->allele_[i] == '1') 00027 counter ++ ; 00028 00029 individual->fitness_[0] = - counter ; 00030 } // OneMax::evaluateIndividual