НЕСТАЦИОНАРНАЯ ЗАДАЧА ПОСТРОЕНИЯ МАРШРУТА ТРАНСПОРТНОГО СРЕДСТВА Е.М.БРОНШТЕЙН, А.А.ДАВЛЕТБАЕВ, Уфимский государственный авиационный технический университет, Уфа, Россия bro-efim@yandex.ru Рассмотрена задача построения циклического маршрута, по которому можно доставить однородный груз от некоторого множества производителей потребителям транспортным средством ограниченной вместимости с минимальными затратами. При этом предполагается, что стоимость транспортировки груза между пунктами зависит от времени. Построена соответствующая линейная целочисленная модель. Проведен вычислительный эксперимент. Ключевые слова: маршрутизация, нестационарность, линейное целочисленное программирование. Рассматривается следующая задача. Транспортное средство (ТС) должно доставить однородный груз от некоторых производителей потребителям. Процесс погрузки и разгрузки является весьма трудоемким, поэтому в каждом пункте производства и потребления ТС загружается (разгружается) один раз. Будем считать, что переезд между пунктами вместе с погрузкой (разгрузкой) занимает один день. Состояние дорог изменяется, т.е. стоимость проезда между пунктами зависит от времени. ТС в начальный момент находится на базе, на которую должно вернуться по окончании перевозок. Требуется сформировать график перевозок с минимальной суммарной стоимостью. Задача, сформулированная в данной работе, является синтезом нескольких оптимизационных задач транспортной логистики: - CVRP (Capacitated VRP), в этих задачах учитываются ограничения на вместимость ТС (см., например, [1]); 67 - MDVRP (Multiple Depot VRP), в отличие от классической задачи предполагается наличие нескольких баз, откуда товар нужно доставить (см., например, [2]); - multi-depot vehicle routing problem with inter-depot routes, в этих задачах предполагается, что ТС может догружаться по пути [3], - TDVRP (Time Dependent Vehicle Routing Problem) – нестационарные задачи: предполагается, что характеристики транспортировки зависят от времени [4]. Классификация оптимизационных задач транспортной логистики приведена в [5]. Обозначения N – общее число пунктов, занумерованных числами 0,1,…, N– 1 (база обозначена числом 0); ai - вес груза в пункте производства (в этом случае ai>0) или потребность в грузе, равная |ai| (в этом случае ai<0). Полагаем, что a0≥0, ai≠0 при i=1,…, N–1. Считаем, что справедливо равенство N −1 (1) ∑a i =0 i = 0; S – вместимость ТС; cijk (i, j = 0,..., N − 1; k = 1,..., N ) - стоимость проезда из i-го пункта до j-го в k-й день. В качестве неизвестных примем булевы переменные k X ij , равные 1 тогда и только тогда, когда в k-й день ТС переезжает из i-го пункта в j-й. Ограничения: N N −1 ∑∑ X k =1 i = 0 k ij = 1 ( j = 1,..., N − 1) (2) (из каждого пункта ТС после погрузки или разгрузки выезжает один раз); N N −1 ∑∑ X k =1 j = 0 k ij = 1 (i = 1,..., N − 1) 68 (3) (в каждый пункт ТС для погрузки или разгрузки прибывает один раз); N −1 N −1 ∑∑ X i =0 j =0 k ij (4) = 1 ( k = 1,..., N ) (каждый день ТС совершает одну поездку); N −1 ∑X i =1 N i0 (5) =1 (в N-ый день ТС должно вернуться на базу из какого-нибудь другого пункта); N −1 ∑X j =1 1 0j (6) =1 (в первый день ТС выезжает с базы в какой-нибудь другой пункт); N −1 ∑ X ijk = i =0 N −1 ∑X p =0 (7) k +1 jp ( j = 0,..., N − 1; k = 1,..., N − 1) (из j-го пункта ТС выедет в (k+1)-й день тогда и только тогда, когда в k-й день в этот пункт прибудет); Предложение 1. Любое решение системы (2)-(7) порождает цикл, содержащий все вершины по одному разу (гамильтонов цикл), в котором последовательные дуги проходятся в последовательные дни. Доказательство. Из условия (6) следует, что существует единственный пункт i1≠0, для которого X 01i1 = 1 . Пусть по индукции X s is −1is построена (0,i1,…,ik) такая, что = 1 ( s = 1,..., k , k < N , i0 = 0). Из условия (2) и равенства X ikk −1ik = 1 следует, что N −1 ∑X i =0 цепь k iik =1 . Из равенства (7) N −1 ∑X p =0 k +1 ik p = 1 , т.е. существует единственный пункт ik+1, для которого X ikk i+k1+1 = 1. Проверим, что ik+1∉{i1,…,ik}. Если бы выполнялось обратное, то существовал бы пункт is (s< k+1), для которого X iss ik +1 = 1. Но это 69 противоречит условию (2). Таким образом строится цепь (0,i1,…,iN1), которая, содержит все пункты. В силу условий (5) и (3) X iNN −1 0 = 1. Тем самым, построен цикл с нужными свойствами. Следующее ограничение отражает недопустимость переполнения ТС и неотрицательность загрузки ТС в любой из дней. p N −1 N −1 (8) k 0 ≤ ∑∑∑ X ij ai ≤ S ( p = 1,..., N − 1). k =1 j = 0 i = 0 В общем случае система (2)-(8) несовместна. Справедливо следующее утверждение. Предложение 2. Если S≥2⋅max{|ai|}, то система (2)-(8) совместна. Доказательство. Докажем, что в любой день найдется пункт производства, из которого ТС может вывезти груз, или пункт потребления, в который ТС может груз завезти. В первый день, поскольку a0≤S, груз из базы вывезти можно. Пусть в некоторый день загрузка ТС равна b. Возможны три ситуации. a) b≤S/2 и груз вывезен из всех пунктов производства. В силу условия (1) потребность в каждом из оставшихся пунктов потребления не превосходит b, т.е. маршрут можно продолжить. b) b≤S/2 и груз не вывезен из всех пунктов производства. В этом случае S–b≥S/2≥max{|ai|}, т.е. груз можно вывезти из любого оставшегося с грузом пункта производства. c) b≥S/2. Аналогично предыдущему, груз можно завезти в любой пункт потребления. Предложение доказано. Целевой функцией является общая стоимость перевозок: N N −1 N −1 ∑∑∑ X k =1 j = 0 i = 0 c → min . k k ij ij (9) (2)-(9) – задача линейного целочисленного программирования. Число неизвестных равно N3, число ограничений имеет порядок О(N2). Частным случаем поставленной задачи (при a0=N–1, a1=…=aN–1= –1, cijk не зависит от k) является классическая задача коммивояжера, которая относится к классу NP-трудных. Задача (2)-(9), таким образом, относится к тому же классу. 70 Вычислительный эксперимент проводился в пакете IBM ILOG CPLEX Optimization studio 12.2, установленном на ПК с процессором Intel Core (тактовая частота 3,1 Ггц, ОЗУ 4 Гб). Задача решалась двумя методами, реализованными в пакете: - динамического дерева, - ветвей и отсечений. Получена зависимость среднего времени решения задачи от размерности. Исходные данные генерировались с помощью датчика псевдослучайных чисел. Веса грузов a1 − aN–1 генерировались целыми из отрезка [−20;20], a0 определялось из условия (1), нули исключались. При этом если оказывалось, что a0<0, то все значения умножались на (−1). Величины cijk при i≠j генерировались целыми из отрезка [1;20]. Для каждого числа пунктов генерировалось 10 примеров. Результаты эксперимента отражены в табл. 1, в ячейках приведено среднее время выполнения в секундах. Для решения задач размерности большей 22 ресурсов ПК не хватило. Таблица 1 Число пунктов Метод динамического дерева Метод ветвей и отсечений Результаты эксперимента 5 10 15 20 0,14 0,41 4,12 57,85 0,14 0,40 4,14 61,35 21 194,35 22 265,80 203,16 257,82 Вычислительный эксперимент показал, что оба метода в среднем решают задачу достаточно эффективно до числа пунктов 22, причем если при числе пунктов до 21 скорость решения первым методом выше, то для 22 пунктов метод ветвей и отсечений оказался несколько более эффективным. Обнаружен резкий рост сложности задачи при росте числа пунктов от 20 до 22. Работа выполнена при поддержке Российского фонда фундаментальных исследований (проект 13-01-00005). 71 Литература 1. Ralphs T.K., Kopman L., Pulleyblank W.R., Trotter L.E. Jr. On the Capacitated Vehicle Routing Problem // Math. Program., Ser. B. – 2003. – Vol. 94. – P. 343 – 359. 2. Laporte G., Nobert Y., Taillefer S., Solving a family of multidepot vehicle routing and location-routing problems // Transportation Science. – 1988. – Vol. 22. – P. 161 – 172. 3. Crevier B., Cordeau J.-F., Laporte G. The multi-depot vehicle routing problem with inter-depot routes // European Journal of Operational Research. – 2007. – Vol. 176. – P. 756 – 773. 4. Malandraky C., Daskin M.S. Time Dependent Vehicle Routing Problems: Formulations, Properties and Heuristic Algorithms // Transportation Science. – 1992. – Vol. 26. – P. 185 – 200. 5. Бронштейн Е.М., Заико Т.А. Детерминированные оптимизационные задачи транспортной логистики // Автоматика и телемеханика. – 2010. – №10. – C. 133 – 147. 72