public override List<IGEPOrganism> Execute(IGEPEnvironment environment) { var dna = new GEPDNA(); var allele = new GEPAllele(dna); var main = new GEPGene(environment: environment); main.Add(allele); var chromosome = new GEPChromosome(environment: environment, main: main); var organism = new GEPOrganism(environment: environment) { chromosome }; organism.Parent = environment; for (var i = 0; i < environment.GeneticCode.DNALength; i++) allele.DNA.AddRandomNucleotide(); /* var testAllele = new GEPAllele(new GEPDNA()); var testGene = new GEPGene(environment: environment); testGene.Add(testAllele); main.Add(testGene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) testAllele.DNA.AddRandomNucleotide(); var test2Allele = new GEPAllele(new GEPDNA()); var test2Gene = new GEPGene(environment: environment); test2Gene.Add(test2Allele); main.Add(test2Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test2Allele.DNA.AddRandomNucleotide(); var test3Allele = new GEPAllele(new GEPDNA()); var test3Gene = new GEPGene(environment: environment); test3Gene.Add(test3Allele); test2Gene.Add(test3Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test3Allele.DNA.AddRandomNucleotide(); var test4Allele = new GEPAllele(new GEPDNA()); var test4Gene = new GEPGene(environment: environment); test4Gene.Add(test4Allele); main.Add(test4Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test4Allele.DNA.AddRandomNucleotide(); var test5Allele = new GEPAllele(new GEPDNA()); var test5Gene = new GEPGene(environment: environment); test5Gene.Add(test5Allele); test3Gene.Add(test5Gene); for (var i = 0; i < environment.GeneticCode.DNALength; i++) test5Allele.DNA.AddRandomNucleotide(); */ return new List<IGEPOrganism>() { organism }; }
protected GEPOrganismBase(IGEPEnvironment environment, IEnumerable<IGEPChromosome> collection) : base(collection: collection) { this.GlobalRegistry = new Registry(identifier: environment.GlobalRegistryIdentifier, registryType: RegistryType.Global, readOnly: false); this.ResultsRegistry = new Registry(identifier: environment.ResultsRegistryIdentifier, registryType: RegistryType.Result, readOnly: false); }
protected GEPOrganismBase(IGEPEnvironment environment) : this(environment: environment, collection: new IGEPChromosome[] { }) { }
/// <summary> /// Creates (i.e. initializes) one or more IGEPOrganisms. /// </summary> /// <param name="environment"></param> /// <returns></returns> public abstract List<IGEPOrganism> Execute(IGEPEnvironment environment);
private IGEPGene CreateGeneFromGenomeUnit(IGEPEnvironment gepEnvironment, IGenomeUnit unit) { var gene = new GEPGene(environment: gepEnvironment); gene.Add(unit.ActiveAllele); foreach (var inactiveAllele in unit.InactiveAlleles) gene.Add(inactiveAllele); return gene; }
/// <summary> /// /// </summary> /// <param name="main">The Main() IGene that will be executed when this IChromosome /// is executed.</param> /// <param name="environment"></param> public GEPChromosome(IGEPEnvironment environment, IGEPGene main) : base(environment: environment, main:main) { }
/// <summary> /// /// </summary> /// <param name="main">The Main() IGene that will be executed when this IChromosome /// is executed.</param> /// <param name="environment"></param> protected GEPChromosomeBase(IGEPEnvironment environment, IGEPGene main) { this.Main = main; this.Main.Parent = this; this.LocalGlobalRegistry = new Registry(identifier: environment.LocalGlobalRegistryIdentifier, registryType: RegistryType.LocalGlobal, readOnly: false); }