float evaluate(individual ind){
		float Fc =0 ;
		std::vector<float> v = ind.getFeatureVector();
		for(unsigned int i=0;i<v.size();i++){
			Fc += v[i]*v[i];
		}
		return Fc;
	}
Esempio n. 2
0
/**
 * Asexual reproduction:
 * 
 * I just randomly chose features of one or the other parent by a probabillity proportional
 * to the parents fitness function
 * 
 * The combination strategy is used in the make offspring method to create a child.
 */
individual individual::combine1(individual indiv){
	//individual child(indiv.getFeatureVector());
	std::vector<float> fv;
	std::vector<float> indivFV(indiv.getFeatureVector());
	
	std::uniform_real_distribution<> dint(0,1);
	
	float O1 = this->getObjectiveFunction();
	float O2 = indiv.getObjectiveFunction();
	
	float fittnessBias = O1>O2 ? 0.75 : 0.25;
	
	for(unsigned int i=0;i<ndim;i++){
		indivFV.at(i) = dint(this->rngEngine)<fittnessBias ? (this->featureVector).at(i) : (indiv.getFeatureVector()).at(i);
	}
	
	
	return individual(fv);
}
Esempio n. 3
0
	float evaluate(individual ind){
		return giveOF(ind.getFeatureVector());
	}