示例#1
0
        Population GetRandomMembersFromPopulation(Population p, int num)
        {
            Population organisms = new Population(p.Capacity);

            for (int i = 0; i < num; i++)
            {
                int      index = p.GetIndexOfRandomMember( );
                Organism p0    = p[index];
                organisms.AddOrganism(p0);
            }
            return(organisms);
        }
示例#2
0
        Organism tournament()
        {
            int        num_competitors = 8;
            Population competitors     = this.GetRandomMembersFromPopulation(this.CurrentGeneration.population, num_competitors);

            this.SortPopulation(competitors, this.direction);

            float choose_best = 0.90F;

            if (rand.NextDouble() < choose_best)
            {
                return(competitors[0]);
            }
            else
            {
                int      index = competitors.GetIndexOfRandomMember();
                Organism p0    = competitors[index];
                return(p0);
            }
        }
示例#3
0
		Population GetRandomMembersFromPopulation( Population p, int num)
		{
			Population organisms = new Population( p.Capacity );
			for (int i=0;i<num;i++)
			{
				int index = p.GetIndexOfRandomMember( );
				Organism p0 = p[ index ];
				organisms.AddOrganism( p0 );
			}
			return organisms;
		}