/// <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> /// <param name="carsCollection">Ссылка на коллекцию машин</param> /// <param name="citiesCollection">Ссылка на коллекцию городов</param> public Ant(CarsCollection carsCollection, ClientsCollection citiesCollection, Pheromones pheromones, Parameters parameters) { Cars = carsCollection; Clients = citiesCollection; EnableClients = Clients.FullClone(); TabuIndexes = new List <int>(); Pheromones = pheromones; Parameters = parameters; }