// file: geneticAlgorithm1.c // by: John LeFlohic // use: simulates a species' convergence to a model // made: February 24, 1999 #include #include #define NUMBER_ORGANISMS 100 #define NUMBER_GENES 20 #define ALLELES 4 #define MUTATION_RATE 0.001 #define MAXIMUM_FITNESS NUMBER_GENES #define FALSE 0 #define TRUE 1 // global variables char **currentGeneration, **nextGeneration; char *modelOrganism; int *organismsFitnesses; int totalOfFitnesses; // function declarations void AllocateMemory(void); int DoOneRun(void); void InitializeOrganisms(void); int EvaluateOrganisms(void); void ProduceNextGeneration(void); int SelectOneOrganism(void); // functions int main(){ int finalGeneration; AllocateMemory(); finalGeneration = DoOneRun(); printf("The final generation was: %d\n", finalGeneration); } void AllocateMemory(void){ int organism; currentGeneration = (char**)malloc(sizeof(char*) * NUMBER_ORGANISMS); nextGeneration = (char**)malloc(sizeof(char*) * NUMBER_ORGANISMS); modelOrganism = (char*)malloc(sizeof(char) * NUMBER_GENES); organismsFitnesses = (int*)malloc(sizeof(int) * NUMBER_ORGANISMS); for(organism=0; organism= randomSelectPoint) return organism; } }