int main(void){ struct parameters *params = NULL; struct chromosome *chromoA = NULL; struct chromosome *chromoB = NULL; struct chromosome *chromoC = NULL; struct dataSet *trainingData = NULL; double testInputs[NUMINPUTS]; params = initialiseParameters(NUMINPUTS, NUMNODES, NUMOUTPUTS, ARITY); addNodeFunction(params, "add,sub,mul,sq,cube,sin"); trainingData = initialiseDataSetFromFile("./dataSets/symbolic.data"); chromoA = initialiseChromosome(params); chromoB = initialiseChromosome(params); setChromosomeFitness(params, chromoA, trainingData); mutateChromosome(params,chromoA); copyChromosome(chromoB, chromoA); removeInactiveNodes(chromoB); printf("chromoA with inactive nodes.\n"); printChromosome(chromoA, 0); printf("chromoB without inactive nodes.\n"); printChromosome(chromoB, 1); saveChromosome(chromoB, "chromoB.chromo"); chromoC = initialiseChromosomeFromFile("chromoB.chromo"); testInputs[0] = 3; executeChromosome(chromoC, testInputs); printf("Applied input: %f\n", testInputs[0]); printf("Generated output: %f\n", getChromosomeOutput(chromoC, 0)); freeChromosome(chromoA); freeChromosome(chromoB); freeChromosome(chromoC); freeDataSet(trainingData); freeParameters(params); return 0; }
int main(void){ struct parameters *params = NULL; struct chromosome *chromo = NULL; int numInputs = 1; int numNodes = 20; int numOutputs = 1; int nodeArity = 5; int numGens = 25000; double targetFitness = 0.5; int updateFrequency = 500; double weightRange = 5; params = initialiseParameters(numInputs, numNodes, numOutputs, nodeArity); setTargetFitness(params, targetFitness); setUpdateFrequency(params, updateFrequency); setConnectionWeightRange(params, weightRange); setCustomFitnessFunction(params, sinWave, "sinWave"); addNodeFunction(params, "tanh,softsign"); chromo = runCGP(params, NULL, numGens); printChromosome(chromo, 1); freeChromosome(chromo); freeParameters(params); return 0; }
int main(){ //printf(" *** Real time multiprocessor allocator***\n"); int i; int maxGen = MAXGEN+1; int nrGen = 0; // Number of generations ga * ga = (struct ga *) malloc(sizeof(struct ga)); FILE * fitnessFile; FILE * chromosomeFile; remove("chromosome0mut0crossElitism.txt"); remove("fitness0mut0crossElitism.txt"); fitnessFile = fopen("fitness0mut0crossElitism.txt", "w"); chromosomeFile = fopen("chromosome0mut0crossElitism.txt", "w"); fprintf(fitnessFile, "%s", "Number of generations, Best Machine, Best fitness, Average fitness \n"); fprintf(chromosomeFile, "%s", "Machine number, TDF, PHYSICAL CORE id, U, Vcore id, Slice, Period, Pcore\n"); srand(time(NULL)); //printf("Initializing GA\n"); initGA(ga); //printf("Evaluating fitness\n"); evaluateFitness(ga); fprintf(fitnessFile, "%d, %d, %f, %f\n", nrGen, ga->bestMachineIndex,ga->bestFitness, ga->avgFitness); fprintf(chromosomeFile, "%s", "Generation 0\n"); for (i = 0; i < ga->populationSize; i++) printChromosome(&(ga->population[i]), chromosomeFile); nrGen++; //for (i = 0; i < ga->populationSize; i++) // printMachineParameters(&(ga->population[i])); //while(nrGen < maxGen && ga->bestFitness<1.0 ){ while(nrGen < maxGen && ga->bestFitness<1.0 ){ printf("Selection for gen %d ...\n", nrGen); selection(ga); printf("Mutation for gen %d ...\n", nrGen); mutation(ga); printf("Crossover for gen %d ...\n", nrGen); crossover(ga); printf("Evaluating fitness for gen %d ...\n", nrGen); evaluateFitness(ga); fprintf(fitnessFile, "%d, %d, %f, %f\n", nrGen, ga->bestMachineIndex, ga->bestFitness, ga->avgFitness); fprintf(chromosomeFile, "Generation %d", nrGen); for (i = 0; i < ga->populationSize; i++) printChromosome(&(ga->population[i]), chromosomeFile); /* printf("Number of generations %d, ", nrGen); printf("Best fitness: %f, ", ga->bestFitness); printf("Average fitness: %f \n", ga->avgFitness); //for (i = 0; i < ga->populationSize; i++) // printMachineParameters(&(ga->population[i])); */ nrGen++; } // end while fclose(chromosomeFile); fclose(fitnessFile); freeGA(ga); return 0; }