Пример #1
0
        public override void InitPopulation()
        {
            var fitnessLength       = Engine.Parameters.GetInt(ParameterNames.FitnessLength);
            var maxNumberOfEntities = Engine.Parameters.GetInt(ParameterNames.PopulationSize);
            var minNumberOfEntities = System.Convert.ToInt32(Engine.Parameters.GetValue(ParameterNames.SelectionRate) * maxNumberOfEntities);

            IEntityList initialEntities = new EntityList(maxNumberOfEntities);

            for (int i = 0; i < maxNumberOfEntities; i++)
            {
                var entity = CreateEntity();
                initialEntities.Add(entity);
            }

            initialEntities = Evaluate(initialEntities);

            Population = new Population.Population(fitnessLength, minNumberOfEntities, maxNumberOfEntities);

            for (int i = 0; i < maxNumberOfEntities; i++)
            {
                Population.Add(initialEntities[i]);
            }

            MergeToBests(Population);
        }