コード例 #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));
            }
        }
コード例 #2
0
        /// <summary>
        /// Полное клонирование коллекции
        /// </summary>
        /// <returns></returns>
        public ClientsCollection FullClone()
        {
            ClientsCollection clone = new ClientsCollection();

            foreach (Client item in this.Items)
            {
                clone.Add(item.FullClone());
            }

            return(clone);
        }