/// <summary> /// Constructs and initializes the initialization algorithm. /// </summary> /// <param name="xmlConfig">The XML configuration for the initialization algorithm.</param> /// <param name="isAcyclic">Flag indicating whether the network is acyclic (i.e. does not have recurrent connections).</param> /// <returns>The constructed initialization algorithm.</returns> public virtual void SetAlgorithmParameters(XmlElement xmlConfig, bool isAcyclic) { // Read NEAT genome parameters // Save off genome parameters specifically for the initialization algorithm // (this is primarily because the initialization algorithm will quite likely have different NEAT parameters) NeatGenomeParameters = ExperimentUtils.ReadNeatGenomeParameters(xmlConfig); NeatGenomeParameters.FeedforwardOnly = isAcyclic; // Read NEAT evolution parameters EvolutionAlgorithmParameters = ExperimentUtils.ReadNeatEvolutionAlgorithmParameters(xmlConfig); // Get complexity constraint parameters ComplexityRegulationStrategyDefinition = XmlUtils.TryGetValueAsString(xmlConfig, "ComplexityRegulationStrategy"); ComplexityThreshold = XmlUtils.TryGetValueAsInt(xmlConfig, "ComplexityThreshold"); }