public void Nsga2Test() { Algorithm a = new Nsga2(); ServiceTestData td = ServiceTestData.getInstance(); Population p = new Population(); var asdf = td.getMockInitialPopulation(3); p.SetGenom(td.getMockInitialPopulation(3)); ServiceTestFunctions tf = ServiceTestFunctions.GetInstance(); foreach (Individual i in p) { tf.EvaluateObjective(i); } a.SetPopulation(p); a.Rank(); ServiceOutput so = ServiceOutput.GetInstance(); //foreach (Individual i in p) //{ // so.Write(i.ToReadableFormat()); //} Assert.AreEqual(td.GetPopulationCount(), asdf.Count); a.ExecuteSelection(); foreach(Individual i in p) { so.Write(i.ToReadableFormat()); } }
public void ConstructionTest() { ServiceTestData td = ServiceTestData.getInstance(); Population population = new Population(); population.SetGenom(td.getMockInitialPopulation()); Assert.AreEqual(td.GetPopulationCount(), population.getPopulationCount()); }
public void FastNonDominatedSortTest() { Nsga2 alg = new Nsga2(); Population pop = new Population(); List<TestData> list = new List<TestData>(); List<double> value = new List<double>(); list.Add(new TestData(value, 0)); }
public void MockDataTest() { ServiceTestData svd = ServiceTestData.getInstance(); Population p = new Population(); p.SetGenom(svd.getMockInitialPopulation()); Assert.AreEqual(svd.GetPopulationCount(), p.getPopulationCount()); ServiceTestFunctions tf = ServiceTestFunctions.GetInstance(); foreach(Individual i in p) { Assert.AreEqual(tf.GetDecisionVariablesCount(), i.DecisionVariables.Count); } }
/* * Returns a new population, which is created by concatenating the two * given parameters. * */ public Population Concat(Population p2) { Population p3 = new Population(); foreach (Individual i in this) { p3.Add(i); } if (p2 != null) { foreach (Individual i in p2) { p3.Add(i); } } return p3; }
public void PopulationTest() { Population pop = new Population(); Assert.AreEqual(0, pop.getPopulationCount()); ServiceTestData td = ServiceTestData.getInstance(); pop.SetGenom(td.getMockInitialPopulation(10)); Assert.AreEqual(td.GetPopulationCount(), pop.getPopulationCount()); Population pop2 = new Population(); pop2.SetGenom(td.getMockInitialPopulation()); Population pop3 = pop.Concat(pop2); Assert.AreEqual(2 * td.GetPopulationCount(), pop3.getPopulationCount()); }
public void GenerationTest() { ServiceTestData svd = ServiceTestData.getInstance(); Population p = new Population(); p.SetGenom(svd.getMockInitialPopulation()); p.NextGeneration(); p.ConcatenateTwoExistingPopulations(); Assert.AreEqual(2 * svd.GetPopulationCount(), p.getPopulationCount()); ServiceOutput so = ServiceOutput.GetInstance(); so.SetOutput(new OutputStd()); // //so.SetOutput(new OutputFile()) so.Write(p.ToReadableFormat()); Console.WriteLine("asdf"); }
public void Rank() { ranking = new List<Population>(); ranking.Add(new Population()); foreach (Individual p in population) { p.DominatedBy = 0; foreach (Individual q in population) { if (!p.Equals(q)) { if (p.Dominates(q)) { p.AddToDominatedSet(q); } else { if (q.Dominates(p)) { p.DominatedBy++; } } } } if(p.DominatedBy == 0) { ranking[0].Add(p); } } int i = 0; Population front = ranking[0]; // do until nextFront has elements // else, there are no other fronts while (front.getPopulationCount() > 0) { var nextFront = new Population(); foreach(Individual p in front) { foreach(Individual q in p.getDominatedSet()) { q.DominatedBy--; if(q.getDominatedSet().getPopulationCount() <= 0) { nextFront.Add(q); q.Fitness = i + 1; } } } i++; ranking.Add(nextFront); front = ranking.Last(); } //int i = 0; //List<Solution> front = rankings.GetFront(i); //while (front.Count > 0) //{ // foreach (Solution p in front) // { // foreach (Solution q in p.DominatedSolutions) // { // q.DominationCount--; // if (q.DominationCount == 0) // { // rankings.AddIndividual(i + 1, q); // } // } // } // i++; // front = rankings.GetFront(i); //} // i hope this removes the empty (last) front ranking.Remove(front); }
public void SetPopulation(Population p) { this.population = p; }
internal void Write(Population population) { Write(population.ToReadableFormat()); }
public void GenerateInitialPopulation(int populationCount) { population = new Population(); ServiceTestData td = ServiceTestData.getInstance(); population.SetGenom(td.getMockInitialPopulation(populationCount)); }