Один из методов округления решения в задаче управления парком грузовых вагонов
Один из методов округления решения в задаче управления парком грузовых вагонов
Аннотация
Код статьи
S265838870023767-6-1
Тип публикации
Статья
Статус публикации
Опубликовано
Авторы
Белоусов Федор Анатольевич 
Должность: Доцент
Аффилиация: Государственный академический университет гуманитарных наук
Адрес: г. Москва, Мароновский пер., 26
Аннотация

В работе рассматривается один из методов округления нецелочисленного решения в задаче оптимального управления парком грузовых полувагонов на заданном интервале времени, которая сводится к решению задачи линейного программирования большой размерности. Существует целый ряд хорошо известных методов получения целочисленного решения либо методов округления, которые могут быть применены к произвольной задаче линейного программирования, однако, как это часто бывает, общие методы не всегда применимы к частным задачам. Такие задачи могут требовать индивидуального подхода, и рассматриваемая проблема относится к такому типу задач. Основным ограничением рассматриваемой задачи является ее огромная размерность, которая на практике может достигать нескольких десятков миллионов переменных. Главная идея представленного подхода состоит в получении нецелочисленного решения на первом этапе, затем это решение переводится в формат цепочек маршрутов, после чего решается новая целочисленная задача, но уже на имеющемся множестве цепочек маршрутов. Новая задача характеризуется относительно маленькой размерностью и дает целочисленный ответ не позже чем за несколько секунд.

Ключевые слова
железнодорожные грузоперевозки, оптимальное планирование, линейное программирование, методы округления, теория расписаний
Классификатор
Получено
29.12.2022
Дата публикации
30.12.2022
Всего подписок
6
Всего просмотров
278
Оценка читателей
0.0 (0 голосов)
Цитировать Скачать pdf
Доступ к дополнительным сервисам
Дополнительные сервисы только на эту статью
1

Введение

2 В статье рассматривается модель, которая изучалась автором в коллективе с другими соавторами [1; 2]. В указанных работах рассматриваются методы решения задачи, которые в общем случае в качестве ответа дают нецелочисленный результат. Однако на практике при составлении плана передвижения грузовых вагонов нецелочисленные решения по понятным причинам не применимы. Поэтому требуются либо методы, которые сразу дают целочисленное решение, либо методы округления полученного нецелочисленного решения.
3 Если говорить о способах, которые сразу дают точное целочисленное решение, то известно, что такие задачи относятся к классу NP-полных задач. Поэтому все методы, связанные с поиском целочисленных решений, главным образом основаны на итерационном решении линейной релаксации различных модификаций исходной задачи (то есть на каждой итерации находится нецелочисленное решение), и такие методы не гарантируют нахождение точного решения. Среди наиболее известных методов можно выделить метод ветвления и границ и метод Гомори. В условиях нашей задачи, которая характеризуется большой размерностью, напрямую такие подходы неприменимы, поскольку итерационный расчет целочисленного решения связан с большим временем, затраченным на поиск решения, что является неприемлемым для оперативного управления логистикой предприятия.
4 В работах [3; 4] рассматривается похожая постановка транспортной задачи, которую авторы решают с помощью метода генерации колонок. Они также получают нецелочисленные решения. В отличие от них мы в своем подходе не прибегаем к этому методу в силу того, что возможны трудности с его применением в случае, если исходная задача будет усложняться за счет учета новых типов ограничений. Поэтому в данной работе представлен другой, в чем-то более простой, подход получения нецелочисленного решения исходной задачи. Тем не менее, в предлагаемом методе округления заимствуются некоторые идеи метода декомпозиции Данцига-Вульфа и, соответственно, метода генерации колонок [5].
5 Основная идея метода генерации колонок состоит в переходе от задачи, сформулированной в терминах потоков, которая в английской литературе носит название multi-commodity flow (MCF) [6] к задаче, сформулированной в терминах готовых цепочек маршрутов. При этом алгоритм является итерационным, и на каждой итерации множество цепочек маршрутов постоянно увеличивается. По всей видимости, из-за большого количества полученных цепочек могут возникать проблемы с поиском целочисленного решения в задаче, сформулированной в терминах цепочек маршрутов. Основная идея подхода, изложенного в данной работе, состоит в нахождении нецелочисленного решения MCF задачи, после чего данное решение разбирается на цепочки решений, что дает относительно небольшое множество таких цепочек, затем на основе этого множества решается целочисленная задача, сформулированная в терминах цепочек маршрутов.
6 Еще одна похожая постановка транспортной задачи, реализованная для практического применения одним из крупнейших железнодорожных операторов Латинской Америки, представлена в работе [7]. Основное отличие от постановок задач, которые рассматриваются в работах [1; 2] и работах [3; 4] состоит в том, что если в [7] оптимальное планирование осуществляется исходя из известного расписания движения грузовых поездов, то в [1; 2] и [3; 4] решение ищется исходя из известных нормативов времени движения грузовых и порожних вагонов по всем заданным маршрутам. Авторы работы [7] предлагают методы получения целочисленного решения MCF задачи, при этом применяют для этого стандартный метод ветвления и границ. Основная идея, позволяющая авторам [7] использовать стандартный метод поиска целочисленного решения, состоит в разработке и применении специальных препроцессинговых алгоритмов, которые снижают размерность задачи более чем в сто раз по сравнению с ее исходным вариантом. В чем-то схожие препроцессинговые алгоритмы по отношению к рассматриваемой в данной работе модели описаны в статье [2]. Однако изначально размерность задачи настолько велика, что даже заметное снижение ее размерности не позволяет прибегать к прямому использованию стандартных методов целочисленного поиска.
7

Описание исходной постановки транспортной задачи

8 Для начала рассмотрим постановку исходной задачи, которая изучалась в работах [1; 2]. Здесь мы не будем детально её разбирать, в указанных работах это сделано, для нас более интересным является алгоритм получения другой постановки, с помощью которой из имеющегося нецелочисленного решения можно будет рассчитывать целочисленное.
9 Постановка задачи, представленная в работах [1; 2] как MCF задача, имеет следующий вид:
10 PCTKmaxK0,                                                     1
11 (Aout-Ain)K=S0,                                              2
12 AQKQ,                                                               3
13 где K – вектор, который мы ищем, каждый элемент этого вектора соответствует определенному маршруту, стартующему и заканчивающемуся в определенные дни расчетного периода. Другими словами, элементы вектора K отвечают за дуги в пространственно-временном графе.
14 PC – вектор, положительные элементы которого соответствуют ставкам за груженые рейсы, отрицательные – тарифам за порожние перегоны вагонов. Произведение PCTK соответствует прибыли от управления парком вагонов.
15 Aout – матрица, отвечающая за исходящие маршруты для каждой из станций.
16 Ain – матрица, отвечающая за входящие маршруты для каждой станции. Ограничение (2) является балансовым ограничением, его выполнение гарантирует то, что от станции в каждый момент времени поедет ровно столько вагонов, сколько туда в этот момент времени приехало плюс те вагоны, которые приехали на эту станцию из прошлого расчетного периода (из прошлого месяца).
17 S0 – вектор, характеризующий начальное количество вагонов на каждой станции в каждый момент модельного времени. Элемент вектора равен положительному целому значению, если на данную станцию в данный момент времени из прошлого расчетного периода (из прошлого месяца) пребывают вагоны в количестве равном значению данного элемента. В противном случае, если на данную станцию в данный момент времени вагоны из прошлого расчетного периода не прибывают, то значение элемента вектора равно нулю. Неотрицательный элемент вектора S0 характеризует станцию, которая в связке с моментом времени прибытия туда вагонов называется источником.
18 Q – вектор, отвечающий за максимальные объемы по каждой из имеющихся заявок.
19 AQ – матрица, отвечающая за учет груженых рейсов. Ограничение (3) отвечает за то, чтобы объем выполненных заявок не превышал заданного объема заявок.
20 Нам хотелось бы найти целочисленное решение K поставленной задачи (1) – (3). Но, как уже было сказано выше, применять напрямую целочисленные методы решения к данной задаче нецелесообразно, поскольку решатся она будет очень долго. На практике размерность такой задачи может доходить до 60 миллионов переменных и выше. Поэтому искать мы будем нецелочисленное решение, такая задача называется линейной релаксацией исходной задачи (1) – (3).
21 Кроме приведенных базовых ограничений (2), (3) на практике могут добавляться дополнительные ограничения связанные, например, с так называемым рейтингом заявок (а вернее, рейтингом заказчиков, которые эти заявки подают). В приведенном виде ограничение на рейтинг может быть записано как
22 RatingK0.                                 4
23 Также могут добавляться и другие ограничения, связанные с необходимым объемом грузоотправок в заданном направлении. В данной работе не будем акцентировать свое внимание на этих ограничениях, важно понимать, что таких дополнительных видов ограничений может быть много.
24 Что касается возможности применения метода генерации колонок в таких условиях, то наличие разнообразных ограничений может заметно усложнить алгоритмы построения цепочек маршрутов, применяемых в данном методе, поскольку множество таких цепочек, чтобы оно удовлетворяло всем ограничениям, сгенерировать будет сложно. Поэтому мы не рассматриваем метод генерации колонок, а исходим из решения задачи (1) – (3) (возможно с добавлением других ограничений) напрямую. В следующем разделе рассмотрим алгоритм построения приведенной задачи в терминах цепочек маршрутов.
25

Постановка транспортной задачи в терминах цепочек маршрутов

26 Итак, на первом этапе решается линейная релаксация задачи (1) – (3) (возможно с добавлением ограничения (4) или других ограничений), то есть находится нецелочисленное решение поставленной задачи. Далее осуществляется разложение этого решения на цепочки маршрутов, где каждая цепочка фактически соответствует перечню всех узлов транспортной сети, через которые проходит вагон (или группа вагонов) в течение рассматриваемого промежутка времени. Причем, если алгоритм разложения имеет стохастическую составляющую, то его можно запускать несколько раз. Это позволит увеличить количество цепочек, на основе которых будет осуществляться поиск целочисленного решения. После того как решение разложено, определено множество цепочек, из которых будет состоять итоговое решение, можно приступать к задаче поиска целочисленного решения. Решением новой задачи является вектор весов. Каждый его элемент характеризует то количество вагонов, которое согласно найденному плану, будет отправлено по цепочке маршрутов, соответствующей данному элементу вектора весов. Фактически, найденные цепочки маршрутов являются базисом для построения целочисленного решения, также, в терминах декомпозиции Данцига-Вульфа они еще называются граничными точками во множестве всех допустимых цепочек маршрутов.
27 Опишем понятие цепочки маршрутов формально.
28 Цепочкой маршрутов под номером i , исходящей из источника под номером k[1, N] , будет называться упорядоченная последовательность следующих троек чисел chainik=(xj,  tj,  run_typej)j=0l , где l – длина цепочки, равная количеству порожних и груженых перегонов; x0 – станция источника k , от которой вагоны стартую в момент времени t0 ; xj,  j1 – номер станции, в которую вагон приезжает от станции xj-1 в момент времени tj ; run_typej – тип перегона: run_typej=0 , если перегон порожний, и run_typej=1 , если перегон груженый.
29 Очевидно, что моменты времени tj должны быть согласованы между собой. Это означает, что для произвольного j[1, l] разница tj-tj-1 должна быть равна времени движения порожнего или груженого вагона в зависимости от типа перегона от станции xj-1 на станцию xj .
30 Кроме самого маршрута каждая цепочка chainik характеризуется целым рядом параметров. Так, каждая цепочка chainik характеризуется прибылью profitik , которую она принесет, если по ней пустить один вагон. Также для каждой цепочки маршрутов составляется вектор ordersik длинной Q . Произвольный j -й элемент ordersikj , j[1, Q] этого вектора соответствует тому количеству исполненных заявок, которое будет выполнено согласно маршруту цепочки chainik , если пустить по ней один вагон.
31 После того, как расчет задачи (1) – (3) готов, решение разобрано на цепочки маршрутов и для каждой цепочки рассчитаны ее характеристики, далее решается задача на основе полученного множества цепочек. Решением в новой постановке является набор неотрицательных целых чисел zik , каждое из которых характеризует то количество вагонов, которое нужно пустить по цепочке chainik .
32 Задача в новой постановке примет следующий вид
33 k=1Ni=1Nkprofitikzikmaxzik0,                                    5
34 k=1Ni=1NkordersikjzikQj,        j1, Q,              6
35 i=1Nkzik=sk,      k1,  N,                                               7
36 где sk – объем источника k1,  N , то есть то количество вагонов, которое прибывает на данную станцию в определенный момент времени из предыдущего периода; Nk – количество имеющихся цепочек маршрутов, исходящих из источника k .
37 Ограничение (7) соответствует балансовому ограничению (2), ограничение (6) является аналогом ограничения (3).
38 Важно отметить, что если время поиска нецелочисленного решения в задаче (1) – (3) на практике измеряется часами, то поиск целочисленного решения в задаче (5) – (7) на той же вычислительной инфраструктуре осуществляется за считанные секунды. При этом этап разложения готового решения задачи (1) – (3) по цепочкам маршрутов осуществляется практически мгновенно. Таким образом, получение целочисленного решения по времени практически эквивалентно получению нецелочисленного решения. Такая разница по затраченному времени при расчетах задач (1) – (3) и (5) – (7) обусловлена разницей в размерностях этих задач. Например, если размерность задачи (1) – (3) варьируется между 50 и 60 миллионами, то размерность задачи (5) – (7) может варьироваться между 3 и 4 тысячами. К задаче такой размерности вполне может быть применен любой из общепринятых методов получения целочисленного решения. Наш опыт, к примеру, показывает, что в данной задаче хорошие результаты дает метод Гомори. На практике найденные целочисленные решения отличаются от нецелочисленных по показателю прибыли на парк менее чем на 0,01 %.
39 Кроме возможности получать целочисленные решения, данный подход обладает еще одним достоинством. Он позволяет за считанные секунды решать смежные задачи, в которых ограничения немного изменены относительно ограничений исходных задачи. Иными словами, выполнять количественный анализ устойчивости решения. Допустим, решение исходной задачи было получено при заданном векторе объемов заявок Q , теперь мы хотим узнать, как это решение поменяется, если данный вектор объема заявок немного скорректировать. Решать заново задачу (1) – (3) при новом скорректированном векторе объема заявок необязательно, можно попробовать решить задачу (5) – (7) на полученном ранее множестве цепочек маршрутов. Если новый вектор объема заявок отличался от старого незначительно, то можно с высокой степенью уверенности утверждать, что полученное решение будет отличаться от эталонного также очень незначительно. При этом эталонным решением при скорректированном векторе заявок будем считать решение, которое получится путем нового последовательного расчета задач (1) – (3) и (5) – (7).
40

Выводы

41 В работе предлагается подход для нахождение целочисленного решения в задаче управления грузовыми вагонами. Задача разбивается на несколько подзадач. Первая состоит в поиске нецелочисленного решения исходной задачи. На втором этапе полученное решение раскладывается на цепочки маршрутов, образуя множество таких цепочек. На заключительном этапе на основе полученного множества цепочек решается задача, которая дает целочисленное решение исходной задачи. Основным преимуществом данного подхода является то, что временные затраты получения целочисленного решения из нецелочисленного минимальны. Для задач большой размерности, которые приходится решать на практике, время получения целочисленного решения из нецелочисленного измеряется считанными секундами, тогда как время получения нецелочисленного решения измеряется часами.
42 Кроме возможности оперативно получать целочисленные решения, предлагаемый подход позволяет очень быстро решать вспомогательные задачи, связанные с вариацией ограничений исходной задачи.

Библиография

1. Белоусов, Ф. А. Моделирование и оптимизация планов грузовых железнодорожных перевозок, выполняемых транспортным оператором / Ф. А. Белоусов, И. В. Неволин, Н. К. Хачатрян // Бизнес-информатика. – 2020. – Т. 14, № 2. – с. 21–35. – URL : https://bijournal.hse.ru/data/2020/06/29/1610380184/BI%202_2020%20RU-21-35.pdf (дата обращения : 05.12.2022).

2. Белоусов, Ф. А. Снижение размерности в задаче оптимального управления парком грузовых вагонов с использованием беспилотных локомотивов / Ф. А. Белоусов, И. В. Неволин, Н. К. Хачатрян // Бизнес-информатика. – 2022. – Т. 16, № 2. – с. 7–20. – URL : https://bijournal.hse.ru/data/2022/06/30/1639228675/1.pdf (дата обращения : 05.12.2022).

3. Лазарев, А. А. Задача управления парком грузовых железнодорожных вагонов / А. А. Лазарев, Р. Р. Садыков // XII Всероссийское совещание по проблемам управления (ВСПУ 2014) ( Москва, 16–19 июня 2014) / ИПУ РАН. – Москва, 2014. – с. 5083–5093.

4. Sadykov, R. Solving a freight railcar flow problem arising in Russia / R. Sadykov, A. Lazarev, V. Shiryaev, A. Stratonnikov // Proceedings of 13th Workshop on Algorithmic Approach for Transportation Modelling, Optimization, and Systems (ATMOS’13) (Leibniz, Germany, 5 September 2013). – p. 55–67. – URL : https://drops.dagstuhl.de/opus/volltexte/2013/4244/pdf/6.pdf (дата обращения : 05.12.2022).

5. Desaulniers, G. Column generation / G. Desaulniers , J. Desrosiers , M. Solomon. – New York: Springer, 2005. – URL : https://link.springer.com/book/10.1007/b135457 (дата обращения : 05.12.2022).

6. Ahuja, Ravindra K. Capacity Scaling Algorithm / Ravindra K. Ahuja, Thomas L. Magnanti, James B. Orlin.  // Network Flows: Theory, Algorithms and Applications. — Prentice Hall, 1993. – p. 210-211.

7. Fukasawa, Ricardo. Solving the freight car flow problem to optimality / Ricardo Fukasawa, Marcus Poggi de Aragão, Oscar Porto, and Eduardo Uchoa // Electronic Notes in Theoretical Computer Science. – 2002. – 66(6). – p. 42–52. – URL : https://www.sciencedirect.com/science/article/pii/S1571066104805280?via%3Dihub (дата обращения : 05.12.2022).

Комментарии

Сообщения не найдены

Написать отзыв
Перевести