private static IEnumerable<IndividualBase> SPEA2MultiExecution(int executionCount, ProblemBase problem, int populationSize) { MultiObjectiveGeneticAlgorithm SPEA2 = new NSGA2( problem, populationSize, 200, 200, 10); Population_MultiObjective_AG Aggregator = new Population_MultiObjective_AG(problem); for (int i = 0; i < executionCount; ++i) { IEnumerable<IndividualBase> executionResult = SPEA2.Execute(); Aggregator.AddRange(executionResult); } IEnumerable<IndividualBase> nonDominatedFront = Aggregator.FastNonDominatedSort().First().Content; IEnumerable<IndividualBase> firstItemsByMakeSpan = (from i in nonDominatedFront.Cast<TaskSchedulingSolution>() group i by i.MakeSpan into g select g.First()).OrderBy(I => I.MakeSpan); return firstItemsByMakeSpan; }
private static IEnumerable<IndividualBase> NSGA2Test(ProblemBase mainProblem) { MultiObjectiveGeneticAlgorithm NSGA2 = new NSGA2( mainProblem, 200, 200, 400, 2); return NSGA2.Execute(); }