public static Population <EnumGene <double>, double> NewPermutationDoubleGenePopulation(int ngenes, int nchromosomes, int npopulation) { var random = new Random(122343); var alleles = MutableSeq.OfLength <double>(ngenes); for (var i = 0; i < ngenes; ++i) { alleles[i] = random.NextDouble() * 10; } var ialleles = alleles.ToImmutableSeq(); var chromosomes = MutableSeq.OfLength <PermutationChromosome <double> >(nchromosomes); for (var i = 0; i < nchromosomes; ++i) { chromosomes[i] = PermutationChromosome.Of(ialleles); } var genotype = new Genotype <EnumGene <double> >(chromosomes.Cast <IChromosome <EnumGene <double> > >().ToImmutableSeq()); var population = new Population <EnumGene <double>, double>(npopulation); for (var i = 0; i < npopulation; ++i) { population.Add(Phenotype.Of(genotype.NewInstance(), 0, gt => gt.Gene.Allele)); } return(population); }
public override IChromosome <EnumGene <T> > NewInstance() { return(PermutationChromosome.Of(_validAlleles, Length)); }
protected override Factory <IChromosome <EnumGene <char> > > Factory() { return(() => PermutationChromosome.Of(CharSeq.Of("a-zA-Z"))); }