Esempio n. 1
0
        private bool tryRandomize(Individual individual, RandomPopulationSettings populationSettings, IEnumerable <IParameter> allIndividualParameters)
        {
            try
            {
                var bodyWeightRange     = populationSettings.ParameterRange(CoreConstants.Parameter.MEAN_WEIGHT);
                var bodyWeightParameter = _individualModelTask.MeanOrganismParameter(individual.OriginData, CoreConstants.Parameter.MEAN_WEIGHT);
                _createIndividualAlgorithm.Randomize(individual, bodyWeightParameter, bodyWeightRange.MinValue, bodyWeightRange.MaxValue, allIndividualParameters);

                if (!individual.OriginData.SpeciesPopulation.IsHeightDependent)
                {
                    return(true);
                }

                //last: Check if the value for the bmi is in the interval
                var bmi      = individual.Organism.Parameter(CoreConstants.Parameter.BMI).Value;
                var bmiRange = populationSettings.ParameterRange(CoreConstants.Parameter.BMI);
                return(bmiRange.IsValueInRange(bmi));
            }
            catch (CannotCreateIndividualWithConstraintsException)
            {
                return(false);
            }
        }