/// <summary>
 /// The callable genes will be the source gene and all of the source gene's 
 /// children and their children's children, etc.
 /// </summary>
 /// <param name="sourceGene"></param>
 /// <returns></returns>
 public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene)
 {
     var callableGenes = new List<IGEPGene>() { sourceGene };
     foreach (IGEPGene childGene in sourceGene.GetChildGenes())
         callableGenes.AddRange(this.GetCallableGenes(childGene));
     return callableGenes;
 }
 /// <summary>
 /// No callable genes will be returned.
 /// </summary>
 /// <param name="sourceGene"></param>
 /// <returns></returns>
 public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene)
 {
     return new IGEPGene[] {};
 }
Пример #3
0
 /// <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)
 {
 }
 public IGEPGene Add(IGEPGene gene)
 {
     gene.Parent = this;
     base.Add(gene);
     return gene;
 }
 /// <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);
 }
 /// <summary>
 /// The callable genes will be the source gene and all of the source gene's immediate children.
 /// </summary>
 /// <param name="sourceGene"></param>
 /// <returns></returns>
 public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene)
 {
     var callableGenes = new List<IGEPGene>() { sourceGene };
     callableGenes.AddRange(sourceGene.GetChildGenes().Cast<IGEPGene>());
     return callableGenes;
 }
 /// <summary>
 /// The callable genes will be all of the source gene's immediate children.
 /// </summary>
 /// <param name="sourceGene"></param>
 /// <returns></returns>
 public override IList<IGEPGene> GetCallableGenes(IGEPGene sourceGene)
 {
     return sourceGene.GetChildGenes().Cast<IGEPGene>().ToList();
 }