Example #1
0
        /// <summary>
        /// Parses a Population element.
        /// </summary>
        /// <param name="element">The Population element.</param>
        /// <returns>The parsed population metadata.</returns>
        private static IPopulationMetadata ParsePopulation(XElement element)
        {
            var populationMetadata = new PopulationMetadata();

            ParsePopulationAttributes(ref populationMetadata, element);
            ParsePopulationChildren(ref populationMetadata, element);

            return(populationMetadata);
        }
Example #2
0
        /// <summary>
        /// Parses the population children.
        /// </summary>
        /// <param name="populationMetadata">The population metadata.</param>
        /// <param name="element">The population element.</param>
        private static void ParsePopulationChildren(ref PopulationMetadata populationMetadata, XElement element)
        {
            foreach (var child in element.Elements())
            {
                switch (child.Name.LocalName)
                {
                case "SelectionAlgorithm":
                    populationMetadata.SelectionAlgorithm = ParseSelectionAlgorithm(child);
                    break;

                case "TerminationConditions":
                    populationMetadata.AddTerminationCondition(ParseTerminationConditions(child));
                    break;

                case "Chromosomes":
                    populationMetadata.AddChromosomeMetadata(ParseChromosomes(child));
                    break;
                }
            }
        }
Example #3
0
        /// <summary>
        /// Parses the population attributes.
        /// </summary>
        /// <param name="populationMetadata">The population metadata.</param>
        /// <param name="element">The population element.</param>
        private static void ParsePopulationAttributes(ref PopulationMetadata populationMetadata, XElement element)
        {
            foreach (var attribute in element.Attributes())
            {
                switch (attribute.Name.LocalName)
                {
                case "Size":
                    populationMetadata.Size = UInt32.Parse(attribute.Value);
                    break;

                case "SurvivalRate":
                    populationMetadata.SurvivalRate = Double.Parse(attribute.Value);
                    break;

                case "DistanceThreshold":
                    populationMetadata.DistanceThreshold = Double.Parse(attribute.Value);
                    break;

                case "CooperativeCoevolution":
                    populationMetadata.CooperativeCoevolution = Boolean.Parse(attribute.Value);
                    break;
                }
            }
        }