/// <summary> /// Выполняет инициализацию экземпляра алгоритма заданными параметрами и значениями /// </summary> /// <param name="carsCollection">Коллекция машин</param> /// <param name="clientsCollection">Коллекция клиентов</param> /// <param name="distance">Матрица расстояний между клиентами</param> /// <param name="param">Параметры алгоритма</param> public void Init(IEnumerable <Car> carsCollection, IEnumerable <Client> clientsCollection, Parameters param) { Ants = new List <Ant>(); Clients = new ClientsCollection(); Cars = new CarsCollection(); // значения параметров по умолчанию Params = param; //заполнение коллекции клиентов clientsCollection.ToList().ForEach(delegate(Client item) { Clients.Add(item); }); //заполнение коллекции машин carsCollection.ToList().ForEach(delegate(Car item) { Cars.Add(item); }); Pheromones = new Pheromones(Cars.Count, Clients.Count); //заполнение коллекции муравьев Ants = new List <Ant>(); for (int i = 0; i < param.AntCount; i++) { Ants.Add(new Ant(Cars, Clients, Pheromones, Params)); } }
/// <summary> /// Полное клонирование коллекции /// </summary> /// <returns></returns> public ClientsCollection FullClone() { ClientsCollection clone = new ClientsCollection(); foreach (Client item in this.Items) { clone.Add(item.FullClone()); } return(clone); }