Beispiel #1
0
        /// <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));
            }
        }
Beispiel #2
0
 /// <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;
 }