/// <summary> /// Constructs and initializes the maze navigator initialization algorithm (fitness using generational selection). In /// particular, this sets additional novelty search configuration parameters. /// </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> /// <param name="numSuccessfulAgents">The minimum number of successful maze navigators that must be produced.</param> /// <param name="numUnsuccessfulAgents">The minimum number of unsuccessful maze navigators that must be produced.</param> /// <returns>The constructed initialization algorithm.</returns> public override void SetAlgorithmParameters(XmlElement xmlConfig, bool isAcyclic, int numSuccessfulAgents, int numUnsuccessfulAgents) { // Set the boiler plate MCC parameters and minimal criterions base.SetAlgorithmParameters(xmlConfig, isAcyclic, numSuccessfulAgents, numUnsuccessfulAgents); // Read in the behavior characterization _behaviorCharacterizationFactory = ExperimentUtils.ReadBehaviorCharacterizationFactory(xmlConfig, "InitBehaviorConfig"); // Read in the novelty archive parameters ExperimentUtils.ReadNoveltyParameters(xmlConfig, out _archiveAdditionThreshold, out _archiveThresholdDecreaseMultiplier, out _archiveThresholdIncreaseMultiplier, out _maxGenerationArchiveAddition, out _maxGenerationsWithoutArchiveAddition); // Read in nearest neighbors for behavior distance calculations _nearestNeighbors = XmlUtils.GetValueAsInt(xmlConfig, "NearestNeighbors"); // Read in steady-state specific parameters _batchSize = XmlUtils.GetValueAsInt(xmlConfig, "OffspringBatchSize"); _populationEvaluationFrequency = XmlUtils.GetValueAsInt(xmlConfig, "PopulationEvaluationFrequency"); }