Ejemplo n.º 1
0
/* Initialise */
void initialise() {
  /* Allocate memory for parameters */
  p0=malloc(nProb*sizeof(parameters));
  ip0=malloc(nK*sizeof(intparameters));

  fprintf(OUT, "Setting parameters...\n");
  initialiseParameters(p0, 0.1, 0, 1, nProb);
  probs=malloc( nProb*sizeof(double));
  probsProp=malloc( nProb*sizeof(double));
  initialisePorg(p0, probs, nProb);
  initialisePprop(p0, probsProp, nProb);

  setParameterNames(p0, "p", nProb);
  /* printParameterNames(OUT, p0, nProb); */
  /* printParameters(OUT,p0, nProb); */

  /* Allocate memory for changepoints */
  k=malloc(nK*sizeof(int));
  kProp=malloc(nK*sizeof(int));
  initialiseIntPorg(ip0, k, nK);
  initialiseIntPprop(ip0, kProp, nK);

  /* Set name prefix and parameters for changepoints */
  setIntParameterNames(ip0, "k", nK);
  /* sample width dK - sample between p-dK and p+dK. */
  initialiseIntParameters(ip0, dK, 0, getNdata()-1, nK);

  /* Initialising random number generator */
  r = gsl_rng_alloc(gsl_rng_taus);
  gsl_rng_set(r,seed);
  initUniform(r, p0, nProb);
  /* Changepoint locations in ascending order. */
  initIntUniformAscending(r, ip0, 0, getNdata()-1, nK);
  
}
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;
}
Ejemplo n.º 3
0
RelativisticBreitWigner::RelativisticBreitWigner(const ParticleStateInfo& psi,
    const ExternalParameters& external_parameters) {
  J_ = psi.spin_information_;
  resonance_width_.reset(
      new DoubleParameter(psi.pid_information_.name_ + "_width"));
  resonance_mass_.reset(
      new DoubleParameter(psi.pid_information_.name_ + "_mass"));
  meson_radius_.reset(
      new DoubleParameter(psi.pid_information_.name_ + "_meson_radius"));

  parameter_list_.AddParameter(resonance_mass_);
  parameter_list_.AddParameter(resonance_width_);
  parameter_list_.AddParameter(meson_radius_);

  index_cms_mass_squared_ =
		  ComPWA::Kinematics::instance()->FindVariable( "cms_mass_squared" );

  initialiseParameters(psi.dynamical_information_, external_parameters);
}
Ejemplo n.º 4
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;
}
Ejemplo n.º 5
0
int main(void){
	
	int i, gen;
	
	struct parameters *params = NULL;
	struct chromosome *population[POPULATIONSIZE];
	struct chromosome *fittestChromosome = NULL;
	struct dataSet *trainingData = NULL;
		
	double targetFitness = 0;
	int maxGens = 10000;
				
	params = initialiseParameters(NUMINPUTS, NUMNODES, NUMOUTPUTS, ARITY);
	
	addNodeFunction(params, "or,nor,and,nand");
	/*setTargetFitness(params, targetFitness);*/
	setMutationType(params, "probabilistic");
	setMutationRate(params, 0.08);
	
	trainingData = initialiseDataSetFromFile("./examples/parity3bit.data");
	
	for(i=0; i<POPULATIONSIZE; i++){
		population[i] = initialiseChromosome(params);
	}
	
	fittestChromosome = initialiseChromosome(params);
	
	/* for the number of allowed generations*/
	for(gen=0; gen<maxGens; gen++){
		
		/* set the fitnesses of the population of chromosomes*/
		for(i=0; i<POPULATIONSIZE; i++){
			setChromosomeFitness(params, population[i], trainingData);
		}
		
		/* copy over the last chromosome to fittestChromosome*/
		copyChromosome(fittestChromosome, population[POPULATIONSIZE - 1]);
		
		/* for all chromosomes except the last*/
		for(i=0; i<POPULATIONSIZE-1; i++){
			
			/* copy ith chromosome to fittestChromosome if fitter*/
			if(getChromosomeFitness(population[i]) < getChromosomeFitness(fittestChromosome)){
				copyChromosome(fittestChromosome, population[i]);
			}
		}
				
		/* termination condition*/
		if(getChromosomeFitness(fittestChromosome) <= targetFitness){
			break;
		}
				
		/* set the first member of the population to be the fittest chromosome*/
		copyChromosome(population[0], fittestChromosome);
		
		/* set remaining member of the population to be mutations of the
		 fittest chromosome*/
		for(i=1; i<POPULATIONSIZE; i++){
			
			copyChromosome(population[i], fittestChromosome);
			mutateChromosome(params, population[i]);
		}
	}
	
	printf("gen\tfitness\n");
	printf("%d\t%f\n", gen, getChromosomeFitness(fittestChromosome));
	
	
	
	for(i=0; i<POPULATIONSIZE; i++){
		freeChromosome(population[i]);
	}
	
	freeChromosome(fittestChromosome);
	freeDataSet(trainingData);
	freeParameters(params);
	
	return 0;
}