Skip to content
Extraits de code Groupes Projets
Valider d852f7fd rédigé par Jonathan CROUZET's avatar Jonathan CROUZET
Parcourir les fichiers

Implemented the Population class

parent a47d540b
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
#include <stdlib.h>
#include "population.h"
Population::Population(){
Population::Population(int size_max, int dimension, int mu) :
size_max_(size_max), size_(0), dimension_(dimension), mu_(mu){
population_ = (double **) malloc(size_max_*sizeof(double *));
for (int i=0; i<size_max; i++){
population_[i] = (double *) malloc(dimension_*sizeof(double));
}
fitnesses_ = (double *) malloc(dimension_*sizeof(double));
}
Population::~Population(){
/* Free populations */
for (int i=0; i<size_max_; i++){
free(population_[i]);
}
free(population_);
/* Free fitnesses */
free(fitnesses_);
}
void Population::add(){
int Population::getSizeMax(){
return size_max_;
}
int Population::getSize(){
return size_;
}
void Population::remove(){
int Population::getMu(){
return mu_;
}
void Population::setIndiv(int i, int j, double value){
population_[i][j] = value;
}
void Population::update_fitness(){
fitness(this);
double Population::getIndiv(int i, int j){
return population_[i][j];
}
void Population::mutate(){
mutation(this);
void Population::setFit(int i, double value){
fitnesses_[i] = value;
}
void Population::combine(){
combination(this);
double Population::getFit(int i){
return fitnesses_[i];
}
......@@ -2,22 +2,26 @@
#define POPULATION_H
class Population {
private:
int size;
int mu;
void (*fitness)(Population);
void (*mutation)(Population);
void (*combination)(Population);
public:
Population();
Population(int size_max, int dimension, int mu);
~Population();
void add();
void remove();
void update_fitness();
void mutate();
void combine();
int getSizeMax();
int getSize();
int getMu();
void setIndiv(int i, int j, double value);
double getIndiv(int i, int j);
void setFit(int i, double value);
double getFit(int i);
private:
int size_max_;
int size_;
int dimension_;
double ** population_;
double * fitnesses_;
int mu_;
};
#endif
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter