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;
}
Пример #2
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;
}
Пример #3
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;

}