/// <summary> /// Calculates the novelty of the solution based on the current population and the novel Archive. /// </summary> /// <param name="feasible"> /// The population of feasible solutions. /// </param> /// <param name="archive"> /// The Archive of novel solutions. /// </param> /// <param name="numberOfNeighbours"> /// The number of neighbours that the novelty should be averaged over. /// </param> /// <returns> /// The novelty of the solution. /// </returns> public abstract double CalculateNovelty(Population feasible, NovelArchive archive, int numberOfNeighbours);
/// <summary> /// Advances the generation to the next generation. /// </summary> /// <param name="nso">The options to use for search.</param> /// <param name="other"> The other population.</param> /// <param name="na">The Archive of novel solutions.</param> /// <param name="r">The random generator to use.</param> /// <param name="numberOfChildren">The number of children to generate.</param> /// <returns>The children that are not part of this feasible/infeasible set.</returns> public abstract List <Solution> AdvanceGeneration(NoveltySearchOptions nso, Population other, NovelArchive na, Random r, int numberOfChildren);