//Заполнение популяций особями //ВНИМАНИЕ!!! Отладочный метод, использующий объекты класса Plate, а не интерфейсы public void CreateStartingPopulation(int count = 50) { Plate perfectPlate = new Plate(); Console.WriteLine("Эталон: "); for (int i = 0; i < 30; i++) { perfectPlate.AddSegment(new Segment(i, i, i, i + 1, i + 1, true)); //Вывод сегментов эталонного варианта Console.WriteLine($"New segment ID: {i}, [{i},{i}];[{i + 1},{i + 1}], direction: {true}"); } //Остановка для просмотра сформированного эталона Console.ReadKey(); //Создание стартовой популяции for (int i = 0; i < count; i++) { Plate plate = new Plate(perfectPlate); plate.ShuffleSegments(); firstGeneration.Add(plate); } secondGeneration = new List <AbstractIndividual>(firstGeneration); currentGenerationNumber = 0; }
public Plate(Plate copy) { _Segments = new List <Segment>(); foreach (Segment segment in copy.Segments) { AddSegment(new Segment(segment)); } }