DOI: 10.17323/2587-814X.2020.2.21.35
Моделирование и оптимизация планов грузовых железнодорожных перевозок, выполняемых транспортным оператором
Ф.А. Белоусов ©
E-mail: [email protected]
И.В. Неволин
E-mail: [email protected]
Н.К. Хачатрян О
E-mail: [email protected]
Центральный экономико-математический институт Российской академии наук Адрес: 117418, г. Москва, Нахимовский проспект, д. 47
Аннотация
В работе предложен один из подходов для решения задачи, возникающей перед операторами железнодорожного транспорта. Задача состоит в оптимальном с точки зрения максимизации прибыли управлении парком грузовых железнодорожных вагонов. Исходными данными для транспортного оператора являются список заявок, поступающих от заказчиков, и местоположение вагонов к началу планового периода. Заявка, сформированная заказчиком, содержит станцию отправления, станцию назначения, а также наименование и объем груза, который заказчик хотел бы перевезти. К заявке добавляется ставка, которую заказчик платит транспортному оператору за каждый перевезенный вагон груза. Планирование осуществляется на месяц вперед и заключается, с одной стороны, в выборе наиболее выгодных к исполнению заявок, с другой стороны — в построении такой последовательности грузовых и порожних перегонов, которые исполнят выбранные заявки с наибольшей эффективностью. Непосредственная транспортировка грузовых и порожних вагонов осуществляется силами РЖД с заранее известными тарифами и временными нормативами движения по каждому из маршрутов. Тарифы на грузовые перегоны являются дополнительными издержками заказчика, указанного в заявке маршрута (заказчики платят как транспортному оператору за использование вагонов, так и РЖД). При этом транспортировку порожних вагонов оплачивают транспортные операторы. Для решения поставленной задачи предложен один из возможных способов сведения данной задачи к задаче линейного программирования большой размерности. Предложен алгоритм, результатом выполнения которого является задача, записанная в виде задачи линейного программирования. Для наглядности демонстрации подхода рассматривается упрощенная постановка, учитывающая лишь основные факторы моделируемого процесса. Также в работе продемонстрирован пример численного решения поставленной задачи на основе простых модельных данных.
Ключевые слова: железнодорожные грузоперевозки; планирование железнодорожных грузоперевозок; оптимальный план железнодорожных грузоперевозок; оптимальное управление парком вагонов; линейное программирование; теория расписаний; исследование операций; беспилотные транспортные средства.
Цитирование: Белоусов Ф.А., Неволин И.В., Хачатрян Н.К. Моделирование и оптимизация планов грузовых железнодорожных перевозок, выполняемых транспортным оператором // Бизнес-информатика. 2020. Т. 14. № 2. С. 21-35. DOI: 10.17323/2587-814Х.2020.2.21.35
Введение
В математической области, которая носит название «исследование операций», и в ее подразделе, — теории расписаний, — существует множество задач, связанных с оптимизацией управления железнодорожным транспортом. Целую серию таких задач, а также их классификацию можно найти в работах [1—5]. Среди задач составления расписаний железнодорожного транспорта отдельно можно выделить класс задач, связанных с составлением расписаний для пассажирского транспорта. Примерами таких моделей являются работы [6-9].
В данной статье рассматривается сфера грузовых железнодорожных перевозок. Одной из актуальных задач, возникающих в этой сфере, является организация процесса грузоперевозок. Ей, в частности, посвящены работы [10-13]. В них описаны и исследованы динамические модели организации грузовых железнодорожных перевозок как между двумя узловыми станциями, так и на замкнутой цепочке станций. В данной работе будет рассмотрена не менее актуальная задача - управление парком грузовых железнодорожных вагонов.
Эта задача возникает перед операторами железнодорожного транспорта (далее — транспортными операторами), управляющими парком грузовых железнодорожных вагонов в коммерческих целях. В зависимости от особенностей регулирования и особенностей рынка, для каждого конкретного региона могут быть построены свои модели, учитывающие ту или иную специфику. В качестве примера можно рассмотреть работу [14], в которой представлена модель, применяемая одним из крупнейших железнодорожных транспортных операторов на территории Латинской Америки. Другим примером является работа [15], в которой рассматривается сразу несколько моделей оптимизации доставки грузов швейцарской железнодорожной грузовой компанией Cargo Express Service of Swiss Federal Railways. В работах [16, 17] рассматриваются модели, спроектированные с учетом особенностей рынка грузовых перевозок в Италии. В работах [18, 19] представлены модели минимизации издержек транспортировки грузов по железнодорожной сети, покрывающей несколько европейских стран.
Также существуют модели, созданные для российского рынка железнодорожных перевозок, пример такой модели представлен в работах [20, 21]. В данной работе постановка задачи схожа с постанов-
кой из [20, 21], а основные отличия состоят в методах решения поставленной задачи. Если в работах [20, 21] решения ищутся с помощью метода генерации колонок [22], а также с помощью модифицированного метода генерации колонок [23], то в данной работе поиск решения осуществляется на основе поиска оптимальных потоков в сети, покрывающей все возможные маршруты, путем сведения к задаче линейного программирования большой размерности.
Иначе говоря, если в методе генерации колонок и обобщенном методе генерации колонок поиск решения осуществляется итерационно (при этом на каждой итерации решается задача линейного программирования на подмножестве всех возможных маршрутов) то в данной работе решается одна задача линейного программирования достаточно большой размерности на множестве всех возможных маршрутов. Перед тем как получить такую задачу линейного программирования большой размерности необходимо построить сеть всех возможных маршрутов (в нашем случае строится более широкая сеть, которая включает в себя сеть всех возможных маршрутов). После этого задача может быть формализована как задача линейного программирования.
Сеть всех возможных маршрутов представляет из себя ориентированный пространственно-временной граф без циклов. Такой граф строится с фиксированным временным шагом, за шаг берется один день. Каждая вершина графа содержит информацию о количестве вагонов на определенной станции ^ в некоторый определенный день ? планового периода. Каждое ребро этого графа характеризует маршрут отправлением из некоторой станции s в день с прибытием на другую станцию в день .. При этом разница между I. и . < ?)соответству-ет тому количеству дней, которое требуется, чтобы перевести вагоны из станции в станцию в соответствии с известными временными нормативами движений грузов по железной дороге. В такой интерпретации задача состоит в поиске потоков в построенном графе, которые суммарно обеспечивают максимальный выигрыш. Под потоком подразумевается цепочка грузовых и порожних маршрутов, а получаемый выигрыш соответствует прибыли за расчетный период. Более подробно построение подобных моделей и сведение их к задачам линейного программирования представлено в книгах [24—26].
Данный подход, заключающийся в решении задачи линейного программирования большой раз-
мерности, требует большего времени для поиска решений по сравнению с подходом, связанным с генерацией колонок. Преимуществом предложенного подхода является поиск оптимального плана перевозок на множестве всевозможных маршрутов, тогда как в методах, связанных с генерацией колонок, решается серия задач линейного программирования на подмножествах множества всех маршрутов. Как следствие, решение, полученное с помощью метода генерации колонок, может отличаться от оптимального. На практике в этом случае упущенная выгода транспортного оператора может измеряться десятками миллионов рублей в месяц.
1. Общая постановка задачи
Рассматривается задача управления парком грузовых вагонов транспортным оператором, целью которого является максимизация прибыли. Составление плана осуществляется на месяц вперед в момент, когда известна вся необходимая для этого информация. Для осуществления планирования необходима информация о начальном расположении вагонов в следующем месяце, а также готовый список заявок на транспортировку грузов в следующем месяце. Под начальным расположением вагонов в плановом месяце подразумевается то, на какой станции и в какой день планового месяца окажется каждый из вагонов, отправленный в предыдущем месяце. Список заявок состоит из запросов со стороны клиентов, в каждом из которых указывается груз, его объем (в вагонах), пункт отправления и пункт назначения. Также в заявке указывается ставка, которую заказчик заплатит за каждый вагон перевезенного груза. Допускается ситуация, при которой начало исполнения заявки будет иметь место в плановом месяце, но ее завершение окажется в месяце, следующим за плановым. В этом случае вся прибыль, связанная с исполнением такой заявки, будет учтена в плановом месяце. Предполагается, что заказчику неважно, в какой именно день планового месяца будет исполнен его заказ: если оператор берется за выполнение данного заказа, то он будет исполнен в наиболее удобный для транспортного оператора день (или несколько дней, если заявка будет исполняться несколькими рейсами). Транспортный оператор не обязан выполнять все поступающие заявки: как правило, он физически не может этого сделать за отведенный месяц. Поэтому оператор может либо выполнить заявку полностью, либо исполнить ее частично, либо отклонить ее. Таким образом, при создании
плана на предстоящий месяц задача транспортного оператора заключается, во-первых, в выборе тех заявок, которые наиболее выгодны к исполнению, во-вторых, в выборе таких цепочек грузовых и порожних маршрутов, которые с наибольшей эффективностью обеспечат выполнение выбранных заявок.
Непосредственная транспортировка вагонов осуществляется силами Российских железных дорог (ОАО «РЖД»), которые устанавливают свои тарифы на перегоны как порожних, так и груженых рейсов. Также заранее известны нормативы по времени таких перегонов по каждому из возможных маршрутов. В рамках модели будем считать, что тарифы не зависят от количества вагонов, перевозимых одним рейсом. Если заявка заказчика исполнена, то он, помимо платежа оператору в соответствии с указанной ставкой за использование его вагонов, отдельно платит РЖД за транспортировку этих вагонов. Перемещение порожних вагонов силами РЖД является статьей расходов транспортного оператора. Поскольку тарифы РЖД на транспортировку грузовых вагонов являются издержками заказчиков (транспортные операторы к ним никакого отношения не имеют), в модели эти тарифы отсутствуют. В данной работе рассматривается упрощенная постановка, в рамках которой транспортный оператор управляет одним типом грузовых вагонов, а горизонт планирования составляет один месяц.
Дополнительно будем предполагать, что значительная часть непосредственной транспортировки силами РЖД осуществляется беспилотными транспортными средствами — беспилотными локомотивами. Их использование позволит снизить влияние человеческого фактора, который зачастую приводит к тем или иным аварийным ситуациям, что в свою очередь влечет за собой сбои в расписаниях. Данное предположение об использовании беспилотных транспортных средств дает возможность рассматривать детерминированную модель, без учета стохастических компонент. В противном случае в рамках модели необходим учет случайных факторов, что неизбежно привело бы к значительному ее усложнению.
2. Математическая постановка задачи
В данном разделе приведена математическая постановка в некотором промежуточном формате, который на следующем этапе преобразуется в формат задачи линейного программирования в яв-
ном виде. Преимущество такого промежуточного формата состоит в том, что он гораздо более нагляден и удобен для понимания сути предлагаемого подхода. Схожий формат математической постановки данной задачи можно найти в работах [3, 4], однако в этих работах запись математической постановки имеет достаточно громоздкую форму и с трудом может быть применима на практике. В данной работе для облегчения изложения представлен наиболее простой вариант постановки задачи.
Введем ряд обозначений:
N — количество станций, участвующих в планировании;
Т — горизонт планирования, который измеряется в днях. Для упрощения в данной работе за горизонт планирования принят один месяц (т.е. Т= 30 или 31). Однако на практике правильнее рассматривать более длительный горизонт планирования, например, два или более месяцев, но для простоты изложения в данной работе принимается одновременно короткий и правдоподобный промежуток;
? — дискретный параметр, характеризующий время. Он измеряется в днях и принимает значения ? = 1, 2, ... Т;
С = , — (Л х Л)-матрица, элементы которой характеризуют тарифы, установленные РЖД за порожний перегон одного вагона от станции г до станции
с
01 = — (Л х Л)-матрица, элементы которой характеризуют время (в днях) движения груженого вагона от станции г до станции. в соответствии с нормативами РЖД (время округляется до большего целого числа);
02 = {02-}^. — (Л х Л)-матрица, элементы которой характеризуют время (в днях) движения порожнего вагона от станции г до станции. в соответствии с нормативами РЖД (время округляется до большего целого числа). Отметим, что диагональные элементы данной матрицы принимаются равными единице. Это означает, что если вагон остается на станции до следующего дня, то это эквивалентно тому, что он отправляется в рейс-петлю длительностью в один день, где станции отправления и назначения совпадают;
Р = ,_1 — (Лх Л)-матрица, элементы которой характеризуют ставку, указанную заказчиком в заявке на транспортировку одного вагона груза от станции г до станции
— I —
0 = |С._1 — (Лх Л)-матрица, элементы которой характеризуют количество грузовых вагонов, указанное в соответствующей заявке на транспортировку груза от станции г до станции / Все элементы матрицы принимают неотрицательные целочисленные значения;
(0 = (')}•_! — вектор размерности Л, характеризующий начальное расположение вагонов в день ?; г-й элемент данного вектора равен количеству вагонов, отправка которых была осуществлена в предыдущем месяце, прибывших на станцию г в момент времени I е {1, ..., Т}. Все значения данного вектора принимают неотрицательные целочисленные значения.
План перевозок характеризуется следующими матрицами:
= (Л х Л)-матрица, элементы
которой характеризуют количество отправляемых груженых вагонов от станции г до станции. на момент времени ? е {1, ..., Т}. Все элементы матрицы принимают неотрицательные целочисленные значения;
= [К20(*)}* - (Лх Л)-матрица, элементы которой характеризуют количество порожних вагонов, отправляемых от станции г до станции . на момент времени ? е {1, ..., Т}. Все элементы матрицы принимают неотрицательные целочисленные значения.
Обозначим через К1 и К1 набор соответствующих матриц для всех моментов времени ? е {1, ..., Т}, иначе говоря, К1 = К2 = [Щ^..
Также интерес представляет итоговое распределение вагонов по станциям и по времени в плановый месяц в соответствии с предложенным планом К1, К2. Для этого в рассмотрение вводится набор векторов
= - вектор длинной
Л, каждый элемент которого характеризует количество вагонов на станции г в момент времени I е {1, ..., Т}, которое реализуется в соответствии с предложенным планом К1 и К1 и начальным распределением вагонов Б0 Нетрудно заметить, что для всех ? е {1, ..., Т} и любой станции значение элемента г е {1, ..., Л} определяется формулой:
N
(1)
где функция /(■) определяется по правилу
1, если х = 0; 10, иначе.
Иначе говоря, количество вагонов, которое наблюдается на станции i в момент времени t, равно количеству прибывших из предыдущего месяца вагонов в соответствии со значением «У'(^), а также тому количеству вагонов, которое было направлено на станцию i порожними либо гружеными рейсами в дни т, предшествующие текущему дню t (т е {1, ..., t — 1 }), и которые прибывают на станцию i именно в этот день t.
Теперь можно сформулировать математическую постановку данной задачи. Критерием максимизации является прибыль
max .
Н(<).*м<)} (2)
При этом должны выполняться следующие ограничения:
j=1
i = vr, t = \J;
(3)
(4)
(5)
i = l,N,j = l,N, t = l,T.
Целевая функция (2) представляет собой прибыль от всех грузовых перегонов за вычетом издержек, связанных с перегоном порожних вагонов. Оптимизация осуществляется за счет управления гружеными рейсами К1.. (t) и порожними рейсами К2. (t ). Ограничение (3) является балансовым ограничением и означает, что количество вагонов, отправляемых со станции . в момент времени ^ в точности равно количеству вагонов, которые в этот день туда прибыли. При этом количество прибывающих вагонов Я; К\, К2) определяется в соответствии с формулой (1). Ограничение (4) говорит о том, что количество грузовых вагонов, отправленных со станции . на станцию у во все дни расчетного периода, не должно превышать того количества, которое указано в соответствующей заявке.
Задача (2)—(5) может быть решена напрямую методами целочисленного программирования (Mixed-
Integer Programming). Однако в силу большой размерности задача поиска целочисленного решения может оказаться невыполнимой в пределах разумного времени. Поэтому в таких случаях вместо исходной задачи рассматривают ее линейную релаксацию. Это означает, что вместо условия (5) рассматривается следующее, более слабое условие:
K1j(t) > 0, K1j(t) > 0, i = l,N, t = \,T
(6)
Таким образом, вместо задачи (2)—(5) далее рассматривается задача (2), (3), (4), (6). Результатом решения такой задачи может оказаться дробное решение, которое, очевидно, не может быть применено на практике. В этом случае, для получения целочисленного решения к полученному дробному решению необходимо применить методы округления.
На следующем этапе переформулируем эту задачу в виде задачи линейного программирования.
3. Сведение исходной задачи к задаче линейного программирования
Для того чтобы решить сформулированную задачу с помощью программных средств, приведенные выше обозначения необходимо представить в ином формате. Для этого матрицы Р, С, <2, а также систему матриц К1(0 и К2(0, te {1, ..., Т} необходимо преобразовать в длинные вектора. Системы векторов Я0 и .У -ЙГ1, -^2), t е {1, ..., Т} также преобразуются в два единых вектора. С одной стороны, матрицы Р и С по специальному правилу трансформируются в один вектор РС, с другой стороны, по похожему правилу матрицы К1(0 и К2(0, t е {1, ..., Т}, также объединяются в согласованный с вектором РС вектор Атакой же размерности. Сделано это так, чтобы прибыль транспортного оператора, формула расчета которой используется в (2), полностью совпадала со скалярным произведением двух новых векторов РС и К.
Вектор К
Поскольку количество элементов во всех матрицах К1^ ) и К2(0, tе {1, ..., Т} составляет 2Т^, то и размерности векторов РС и К также совпадают с этим значением. При формировании вектора К вопрос стоит в том, в каком именно порядке расположить все элементы матриц К1(0 и К2(0, tе {1, ..., Т}. После того как этот порядок определен, соответствующим образом и в соответствующем порядке составляется вектор РС.
Пусть первые 'Ш2 элементов вектора К соответствуют всем элементам матриц К1( ), t е {1, ..., Т}. При этом первые И2 элементов взяты из матрицы К1^ ): первые Л элементов совпадают с первой строкой этой матрицы (первый элемент строки ставится на первую позицию вектора, второй элемент строки — на вторую позицию и т.д.), следующие Лэле-ментов соответствуют второй строке и так далее. Следующие И2 элементов вектора К записываются с помощью аналогичного упорядочивания элементов матрицы К1(2). По такому же принципу вектор К заполняется элементами остальных матриц К1(0, t = 3, ..., Т. Вторая половина вектора К, также состоящая из ТЫ2 элементов, заполняется аналогичным путем только элементами матриц К2( ), t = 3, ..., Т.
Вектор РС
Для того, чтобы вектор РС был согласован с вектором К, первые ТЫ2 его элементов берутся из матрицы Р, а остальные ТЫ2 заполняются на основе матрицы С. Первые Т№ элементов вектора РС соответствуют первой строке матрицы Р (первый элемент строки ставится на первую позицию вектора, второй элемент строки — на вторую позицию и т.д.), следующие ГШ2 элементов соответствуют второй строке матрицы Р и так далее. После того, как первые И2 элементов вектора РС определены по указанной процедуре, эта часть вектора копируется и ставится на место следующих И2 элементов. Повторение этой операции Т — 1 раз завершает формирование первой половины вектора РС, состоящей из Т№ элементов. Вторая половина данного вектора заполняется аналогично элементами матрицы С. Единственное отличие в правиле заполнения состоит в том, что перед всеми элементами второй половины вектора РС дополнительно ставится знак минус. Таким образом, первые 'Ш2 элементов вектора РС неотрицательные, следующие ТЫ2 элементов данного вектора неположительные.
Векторы Q, 5° и £
Из матрицы О по аналогичному правилу составляется вектор Q (первые Л элементов вектора соответствуют первой строке матрицы, следующие Л элементов соответствуют второй строке и т.д.). Размерность нового вектора составляет ТУ2.
Системы векторов 5"^) и К2), t е {1, ...,
Т} преобразуются в два вектора путем последовательной конкатенации векторов, соответствующих каждому моменту времени (первые Л элементов
каждого из новых векторов соответствуют вектору <5'0(1 ) и лУ(1, К1, К2), соответственно, следующие Л элементов соответствуют вектору »У0(2 ) и 5(2, К1, К2), соответственно, и т.д.). В итоге получится два новых вектора размера ТЛ, первый обозначим через S 0, второй — через S.
Имея векторы РС и К, в новом формате могут быть представлены критерий оптимизации (2) и условие (6). Однако для формулирования условий (3) и (4) необходимо ввести специальные матрицы, при умножении которых на вектор К можно было бы получить нужные ограничения.
Матрица Л0
Построим матрицу Аа , которая позволит переписать условие (4). Нетрудно заметить, что размерность этой матрицы равна (ЛР х 2ТК2). Это связано с тем, что данная матрица справа умножается на вектор К, и результат такого умножения сравнивается с вектором Q размерности ТУ2. Исходя из того, что элементы матрицы К2 (которые соответствуют последним ТЫ2 элементам вектора К) в данном ограничении не участвуют, все элементы матрицы Аа , расположенные в последних ТЫ2 колонках, равны нулю.
Теперь необходимо определить первые 'Ш2 столбцов данной матрицы. Условие (4) означает, что для каждого маршрута со станции г на станцию j суммарное количество отправляемых груженых вагонов во все дни планового периода не может превышать того объема, который указан в заявке — (2... Исходя из этого, легко заметить, что в первом столбце первой строки стоит единица (она соответствует элементу К111(1)). Следующая единица встретится в первой строке на позиции ТУ2 + 1 (она соответствует элементу К111(2)) и так далее: единицы будут встречаться в первой строке матрицы Аа Траз с периодом ТУ2 элементов. Далее, во второй строке матрицы Аа единица стоит на второй позиции (она соответствует элементу К112(1)), следующая единица во второй строке — на позиции ТУ2 + 2 (она соответствует элементу К112(2)) и так далее: также с периодичностью ТУ2 элементов будут стоять единицы в количестве Т штук. Для остальных строк матрицы Аа алгоритм заполнения аналогичен.
Таким образом, если матрицу Аа разбить на Т блоков, каждый размером ТУ2 на ТУ2 элементов, отбросив нулевую часть (последние Т№ колонок), то каждый из этих блоков будет представлять собой
единичную матрицу. После определения матрицы А(2 в новом формате условие (4) принимает вид неравенства А(2 ■ К< (5, где под знаком « < » подразумевается поэлементное сравнение компонент обоих векторов.
Матрицы A. и A ,
r in out
Осталось переписать условие (3). Для его записи в матричной форме необходимо определить две матрицы, обозначенные через A.n и АдШ. С помощью матрицы A.n рассчитывается количество вагонов, въезжающих на каждую из станций в каждый момент времени t е {1, ..., T}. С помощью матрицы Ади1 рассчитывается количество вагонов, отбывающих с каждой станций в каждый момент времени t е {1, ..., T}. Размерность каждой из матриц составляет (TNх 2 'Ш2). Обусловлено это с тем, что данные матрицы умножаются справа на вектор K. Результат произведения вектора K на любую из этих матриц связан с распределением вагонов по станциям и времени, поэтому количество строк в матрицах и размерность получаемого в результате произведения вектора равна TN. При этом первые N элементов полученного вектора соответствуют распределению вагонов по всем станциям в первый период, следующие N элементов соответствуют распределению вагонов по всем станциям во второй период и так далее до периода T. Матрица А.п позволяет представить формулу (1) в виде S = А.п ■ К.
Сформируем матрицу АдиГ Как уже было сказано, эта матрица предназначена для подсчета количества вагонов, отправленных с произвольной станции i в произвольный момент времени t. Куда именно отправлены эти вагоны, в данном случае интереса не представляет. Учитывая упорядоченность элементов вектора K, можно утверждать, что первые N элементов первой строки матрицы Ади1 отвечают за груженые вагоны, исходящие в первый период времени с первой станции. Соответственно эти элементы равны единице. Далее, начиная с элемента N + 1, до элемента TN2 включительно расположены нулевые элементы. Начиная с TN2 + 1, до элемента TN2 + N снова расположены единичные элементы, отвечающие за исходящие порожние вагоны. Оставшиеся элементы первой строки матрицы Ади1 равны нулю. Вторая строка матрицы Ади1 имеет похожую структуру с тем отличием, что все сдвинуто на N элементов вправо. Иначе говоря, первые N элементов второй строки равны нулю, следующие
Элементов равны единице, затем, начиная с ТЫ2 + N + 1, до Т^2 + 2N расположены единичные элементы, а остальные элементы второй строки равны 0. Аналогично в каждой следующей строке координаты единичных элементов сдвигаются на N элементов. Повторение этой операции для всех строк матрицы Ади1 завершает ее формирование.
Осталось определить матрицу Ап. Для каждого из груженых и порожних маршрутов со станции . на станцию у известна длительность выполнения такого перегона: она равна 01.. для грузовых и 02. для порожних перегонов. Посмотрим, как эта информация отражается в матрице А.. Для этого рассмотрим произвольный перегон груженых вагонов в количестве К1() со станции . на станцию у в день t планового периода. В векторе К ему соответствует элемент, расположенный на позиции ТИ1 + (г — + + у. Время движения по данному маршруту составляет 01.. . Это означает, что выехав в день t, отправленные вагоны окажутся на станции у в день t + 01. . В терминах уравнения (1) можно утверждать, что в результате данного груженого рейса произойдет увеличение значения элемента Б](^ + ®\ц,К\,К2} на К1() единиц. Следовательно, если t + 01у. не превышает Т, то результатом умноженияА.п на К является увеличение координаты (t + 01„ — 1) N +у вектора $ на К1ур) единиц. Для того чтобы указанное перемножение дало такой результат, необходимо, чтобы элемент матрицы А.п с координатами ^ + 01у -1)N + у, tN2 +[i-í)N + j^ равнялся единице. Произвольному порожнему перегону в количестве К2„(0 вагонов со станции . на станцию у в день t планового периода, при условии, что t + 02у не превышает Т, соответствует единичный элемент матрицы А.п с координатами + 02.. -1)N + у, tN2 + (г -1)N + у). Видно, что в случае порожних перегонов ко второй компоненте координаты единичного элемента матрицы А.п дополнительно прибавляется величина ТЫ1. Связанно это с тем, что порожним перегонам в векторе К соответствует вторая половина этого вектора, которая начинается с координаты ТЫ1 + 1 и заканчивается последним элементом с координатой 2Т№. Таким образом, алгоритм конструирования матрицы А.п состоит в том, чтобы взять нулевую матрицу размером TN на 2'Ш'2 элементов и расставить в ней единичные элементы, перебрав все элементы вектора К (или, что тоже самое, перебрав все элементы матриц К1(0 и К2(0, t е {1, ..., Т}).
После того как матрицы А.п и Ади1 определены, ограничение (3) может быть переписано в виде
A. ■ К + S0 = A ,
in 0 out
(A , - A.) • К = S0.
out in 0
К или, что тоже самое, в виде
Задача линейного программирования
После того, как все вектора и матрицы в новом формате определены, можно переписать задачу (2), (3), (4), (6) в новом формате:
РС ■ К -> тах, к
при ограничениях
(4ш/ ~Ап) К = ^о' Аа • К< б; К> 0.
(7)
(8) (9)
(10)
Задача (7)—(10) абсолютно идентична задаче (2), (3), (4), (6), но ее преимущество заключается в том, что она записана в формате классической задачи линейного программирования, что позволяет решать ее, применяя соответствующие методы и программные инструменты.
4. Решение транспортной задачи на гипотетическом примере
В качестве примера решения рассматриваемой транспортной задачи продемонстрирован простой модельный пример с небольшим числом станций и коротким горизонтом планирования.
Пусть число станций равно 4 (Ж = 4), горизонт планирования составляет 3 дня (Т = 3). Список поступивших заявок состоит из пяти позиций. Приведем эти заявки в виде таблицы 1.
Таблица 1.
Список заявок на перевозку груза в модельном примере
№ Пункт отправления Пункт назначения Объем заявки (в вагонах) Ставка (в условных единицах)
1 1 3 3 2,9
2 2 1 5 1,1
3 2 3 4 2,3
4 3 2 7 1,9
5 3 4 6 2,1
На основе списка заявок необходимо составить две матрицы — матрицу тарифов Р, элементы которой записаны в условных единицах, и матрицу объ-
емов заявок Q:
s
О
U о о
0 2,9 О 0 2,3 О 1,9 0 2,1 ООО
Q
0 0 3 0
5 0 4 0
0 7 0 6
0 0 0 0
Далее приведем время движения как груженых, так и порожних маршрутов в виде значений матриц 01 и 02:
01 =
0 2
1 О 1 2 1 2
1 2 2 1
0 2
1 О
02 =
1111 1111 1112 12 11
Напомним, что диагональные элементы матрицы берутся равными единице. Связано это с тем, что если вагоны необходимо оставить на станции до следующего дня, то это равносильно тому, что они как бы отправляются из данной станции на саму себя в рейс длительностью один день.
Значения тарифов РЖД на порожние перегоны, так же как и ставки, выраженные в условных единицах, характеризуются значениями элементов матрицы С:
' 0 1,9 1,3 1,9 С= 1,2 0 1,8 0,9 1,1 1,2 0 1,6 1,3 1,5 1,2 0
В рамках данной задачи предполагается, что вагоны могут оставаться на станциях до следующего дня бесплатно, поэтому диагональные элементы матрицы С нулевые.
Начальное распределение вагонов характеризуется следующими векторами:
s°(iy.
В период t = 3 вагоны не прибывают, что эквивалентно нулевому вектору »У0(3) .
Перепишем эту задачу в новых обозначениях. Вектор РС имеет размерность = 2 • 3 • 16 = 96. Представление такого вектора в явном виде не уместится на странице, поэтому рассмотрим промежуточные векторы р и с длинной Ж2 = 16, составлен-
/• \ 0 с \ 5
2 ; J°(2) = 0
1 0
Л
ные на основе матриц Р и С:
Р =
' о 4 ' 0 ^
0 1,9
2,9 1,3
0 1,9
и 1,2
0 0
2,3 1,8
0 0,9
с =
0 1,1
1,9 1,2
0 0
2,1 1,4
0 1,3
0 1,5
0 1,2
1« J
Вектор РС получается последовательной конкатенацией этих векторов, а именно:
\Т
РС = (р
т _г „т „т „т Р , Р , С , с , с
г-
Вектор получаемый из матрицы 0 и имеющий размерность № = 16, принимает следующий вид:
6 = (0 0305040070600 0 0)г.
Вектор $0, размерность которого составляет TN = 3 • 4 = 12, сконструирован на основе векторов »У0(1 ) и 1У0(2 ) и имеет следующий вид:
5°=(0 2 1 3 5 0 0 1 0 0 0 О)7".
Осталось получить матрицы Ап, Ади1 и А0. Начнем с матрицы Аа, ее размерность составляет (№ х 2Ш2 ) = (16 х 96). Представим ее в формате разреженной матрицы, т.е. укажем координаты ненулевых элементов, равные единице. Список координат единичных элементов матрицы А0 следующий (здесь и далее нумерация строк и столбцов начинается с единицы):
(1, 1), (2, 2), (3,3), (4, 4), (5, 5), (6, 6), (7, 7), (8, 8), (9, 9), (10, 10), (11, 11), (12, 12), (13, 13), (14, 14), (15, 15), (16, 16), (1, 17), (2, 18), (3, 19), (4, 20), (5, 21), (6, 22), (7, 23), (8, 24), (9, 25), (10, 26), (11, 27), (12, 28), (13, 29), (14, 30), (15, 31), (16, 32), (1, 33), (2, 34), (3, 35), (4, 36), (5, 37), (6, 38), (7, 39), (8, 40), (9, 41), (10, 42), (11, 43), (12, 44), (13, 45), (14, 46), (15, 47), (16, 48).
В таком же формате приводятся матрицы А.п и Ади1, размерность которых составляет (TN х 2ТМ2 = = (12 х 96). Список координат единичных элементов матрицы А.п :
(5, 1), (7, 3), (12,4), (5, 5), (6, 6), (8, 8), (5, 9), (10, 10), (7, 11), (5, 13), (10, 14), (7, 15), (8, 16), (9, 17), (11, 19), (9, 21), (10, 22), (12, 24), (9, 25), (11, 27), (9, 25), (11, 27), (9, 29), (11, 31), (12, 32), (5, 49), (7, 51), (5, 53), (6, 54), (8, 56), (5, 57), (10, 58), (7, 59), (5, 61), (10, 62), (7, 63), (8, 64), (9, 65), (10, 70), (12, 72), (9, 73), (11, 75), (9, 77), (11, 79), (12, 80).
Список координат единичных элементов матрицы А :
(1, 1), (1, 2), (1, 3), (1, 4) (3, 9), (3, 10), (3, 11), (3, (4, 16), (5, 17), (5, 18), (5, (6, 23), (6, 24), (7, 25), (7, (8, 30), (8, 31), (8, 32), (9, (10, 37), (10, 38), (10, 39) (11, 43), (11, 44), (12, 45) (1, 49), (1, 50), (1, 51), (1, (2, 56), (3, 57), (3, 58), (3, (4, 63), (4, 64), (5, 65), (5, (6, 70), (6, 71), (6, 72), (7, (8, 77), (8, 78), (8, 79), (8, (9, 84), (10, 85), (10, 86), (11, 90), (11, 91), (11, 92) (12, 96).
, (2, 5), (2, 6), (2, 7), (2, 8) 12), (4, 13), (4, 14), (4, 15) 19), (5, 20), (6, 21), (6, 22) 26), (7, 27), (7, 28), (8, 29) 33), (9, 34), (9, 35), (9, 36) , (10, 40), (11, 41), (11, 42) , (12, 46), (12, 47), (12, 48) 52), (2, 53), (2, 54), (2, 55) 59), (3, 60), (4, 61), (4, 62) 66), (5, 67), (5, 68), (6, 69) 73), (7, 74), (7, 75), (7, 76) 80), (9, 81), (9, 82), (9, 83) (10, 87), (10, 88), (11, 89) , (12, 93), (12, 94), (12, 95)
После того как все векторы и матрицы определены, задача (7)—(10) может быть решена. Результатом решения данной задачи является вектор К, размерность которого составляет 2^Г2 = 96. Приведем одно из найденных решений К, выписав значения только ненулевых элементов:
К7 =2; Кю_= 1; К9_=2; К37 = 2; К42 = 4; К44 = 2; К62 = 3; К65 = 2; К67 = 1; К79 = 1; К81 = 2.
Переведем данное решение в формат матриц К1( t ) и К2^ ):
'о 0 0 о4 0 0 3 0^
0 0 2 0 ; *1(2) = 0 0 0 0
0 0 0
0 1 0 0 2
,0 0 0 0, ,0 0 0 0,
Щ 3) =
0 0 0 0
0 0 2 0
0 2 0 6
ч0 0 0 0,
(11)
К2(Х) =
'0 0 0 0^ '0 0 2 0^
0 0 0 0 0 0 0 0
0 0 0 0 ;К2(2) = 0 0 0 0
1 2 0, ,0 0 1 0,
Го 0 0 0^
0 0 0 0
0 0 0 0
,0 0 0 0,
(12)
К 2(3) =
Полученное решение (11), (12), в силу малого масштаба задачи, также может быть представлено в виде схемы, изображенной на рисунке 1.
Прибыль от полученного решения можно рассчитать двумя эквивалентными способами: либо на основе формулы, используемой в (2), либо как произведение векторов РСТ ■ К. Для данной задачи ее значение, выраженное в условных единицах, получается равным 32,3.
Проанализируем полученное решение. Видно, что одна из заявок на транспортировку пяти вагонов со станции 2 на станцию 1 осталась неисполненной. Заявка на транспортировку семи вагонов из станции 3 на станцию 2 должна выполняется частично в объеме пяти вагонов. Остальные заявки в соответствии с планом выполняются полностью. Заявки со станции 1 на станцию 3, а также со станции 3 на станцию 4 должны быть выполнены в соответствии с найденным планом полностью единичными рейсами. Заявки со
станции 2 на станцию 3 и со станции 3 на станцию 2 в соответствии с планом выполняются поэтапно — в два рейса для первой заявки и в три рейса для второй. Также найденный план предусматривает несколько порожних рейсов. Так, в первый день из станции 4 на станцию 2 направляется один порожний вагон, и из станции 4 на станцию 3 — два порожних вагона. Длительность первого порожнего перегона составляет двое суток (вагон приедет на станцию 2 к третьему периоду), длительность второго порожнего рейса — одни сутки. Аналогично, во второй день осуществляется два порожних перегона: одного вагона из станции 4 на станцию 3 и двух вагонов из станции 1 на станцию 3, длительность обоих перегонов составляет одни сутки. В заключительном третьем периоде отправлений порожних рейсов не запланировано.
Заключение
В работе рассматривается транспортная задача, которая возникает перед транспортными операторами при управлении парком грузовых железнодорожных вагонов. Предложенный подход позволяет найти оптимальный план на всем множестве возможных маршрутов, тогда как способы, связанные с методом генерации колонок, осуществляют поиск оптимальных планов на подмножествах всех возможных маршрутов. Существенным недостатком предложенного подхода является то, что время вычислений при его применении заметно выше по
День 1
День 2
День 3
Отправления предыдущего месяца Станция 1 Станция 3
Станция 2
=—9 Станция^ | Станция 3 1 Станция 4
Станция 3 Станция 2
Станция 4 (за горизонт планиования)
Станция 2 (за горизонт планиования)
Станция 3 (за горизонт планиования)
] маршруты вагонов, I I грузовые I I порожние
отправка которых маршруты маршруты
осуществлена в предыдущем месяце
Рис. 1. Схематичное представление решения (11), (12)
сравнению с временем, которое затрачивается при использовании методов, связанных с методом генерации колонок. Поэтому важно предложить способы модификации данного подхода, которые приведут к ускорению вычислительных процессов.
Большая размерность задачи во многом обусловлена тем, что в представленной постановке (2)—(4), (6) при решении берутся в расчет все возможные маршруты, в том числе и те, которых фактически не существует. В частности, это касается грузовых маршрутов: в рассматриваемой постановке перебираются все грузовые маршруты, хотя только малая их доля является актуальной (актуальны те, которые указаны в заявках).
При решении задачи на основе реальных данных количество станций может быть равным примерно 1000, размерность вектора К в этом случае составит порядка 2^2 =1,2 ■ 108, при горизонте планирования Т = 60. Понятно, что на практике задачу линейного программирования такой размерности невозможно решить за разумное время.
Вектор К состоит из двух частей: первая составлена на основе матриц К1^), вторая — на основе матриц К2(^. Если для порожних маршрутов заранее неизвестно, какие из них будут востребованы, а какие нет, то в случае с грузовыми маршрутами известно, что востребованными будут только те, которые указаны в заявках. Поэтому остальные маршруты из рассмотрения могут быть удалены. Это означает, что при осуществлении расчетов более рационально учитывать только те элементы матриц К1^), t е {1, ..., Т}, которые соответствуют грузовым маршрутам, указанным в поданных заявках. В векторе К также должны быть учтены только эти грузовые маршруты: рассматривать остальные грузовые маршруты не имеет смысла. Поэтому размерность вектора К может заметно сократиться. Очевидно, что исключать такие маршруты необходимо не только из вектора К: аналогично должны быть модифицированы алгоритмы формирования вектора РС, а также алгоритмы формирования матриц А0 , А.п и Ади1. В данной работе для упрощения изложения указанные алгоритмы формирования векторов и матриц не рассмотрены.
Для оценки того, насколько сильно удается сократить размерность задачи, обратимся к данным реальной задачи, в которой N= 1126, а количество заявок, равное количеству востребованных грузовых маршрутов, составляет 1616. В таких условиях первая часть модифицированного вектора К, отвечающая за грузовые перегоны, при Т = 60 имеет размерность Т- 1616 = 96960 вместо 2Т
№ = 76072560. Видно, что почти в 800 раз сокращается размерность первой части вектора К. Если алгоритм формирования второй части вектора К, отвечающей за порожние перегоны, оставить неизменным, то размерность вектора К в модифицированном алгоритме составит Т • 1616 + 2Т№ = = 76169520 вместо = 152145120, т.е. сократится почти вдвое.
Отдельно отметим, что для решения реальных задач горизонт планирования, равный одному месяцу, оказывается слишком коротким. Это связано с тем, что при таком горизонте планирования результатом оптимизации может оказаться план, при котором на последние дни расчетного месяца будет запланировано большое количество заявок с максимальной ставкой, а также максимальной дальностью и длительностью перегонов. Реализация такого плана приведет к максимально возможной прибыли за расчетный месяц. Однако это чревато тем, что в месяце, следующим за расчетным, вагоны могут быть крайне неудачно распределены как в пространстве, так и по времени прибытия на станции назначения. Соответственно, это может привести к заметному снижению показателей прибыли в следующем расчетном месяце. Исходя из этого, горизонт планирования в оптимизационной модели должен быть увеличен. При этом если увеличивать горизонт планирования до нескольких месяцев, то для каждого из этих месяцев должно осуществляться планирование относительно своего отдельного списка заявок. Вообще говоря, списки заявок для различных месяцев в точности совпадать не должны, но поскольку достоверно известен только текущий список заявок и для следующих месяцев заявки неизвестны, в рамках модели можно предполагать, что списки заявок, ожидаемые в будущем, совпадают с текущим списком. Мы считаем разумным в качестве горизонта планирования брать два месяца, такое расширение горизонта планирования приведет к двукратному увеличению размерности задачи. Дальнейшая работа по развитию модели должна быть проделана в направлении учета большего количества факторов, а также в направлении оптимизации вычислительных процессов путем снижения размерности задачи. Все вышеперечисленное предполагается учесть в последующих исследованиях. ■
Благодарности
Исследование выполнено при финансовой поддержке РФФИ в рамках научного проекта № 19-2906003.
Литература
1. Лазарев А.А., Мусатова Е.Г. Гафаров Е.Р., Кварацхелия А.Г. Теория расписаний. Задачи железнодорожного планирования. М.: ИПУ РАН, 2012.
2. Лазарев А.А., Мусатова Е.Г. Кварацхелия А.Г., Гафаров Е.Р. Теория расписаний. Задачи управления транспортными системами. М.: МГУ, 2012.
3. Lusba R., Larsen J., Ehrgott M., Ryan D. Railway track allocation: models and methods // OR Spectrum. 2011. Vol. 33. No 4. P. 843-883. DOI: 10.1007/s00291-009-0189-0.
4. Cordean J.-F., Toth P., Vigo V. A survey of optimization models for train routing and scheduling // Transportation Science. 1988. Vol. 32. No 4. P. 380-404. DOI: 10.1287/trsc.32.4.380.
5. Ravindra K., Mohring R.H., Zaroliagis C.D. (Eds.) Robust and online large-scale optimization: Models and techniques for transportation systems. Berlin, Heidelberg: Springer 2009. DOI: 10.1007/978-3-642-05465-5.
6. Brucker P., Hurink J., Rolfes T. Routing of railway carriages: A case study. Technical Report 1498. Netherlands: University of Twente, 1999.
7. Brucker P., Hurink J., Rolfes T. Routing of railway carriages // Journal of Global Optimization. 2003. No 27. P. 313-332. DOI: https://doi.org/10.1023/A1024843208074.
8. Cordean J.F., Soumis F., Desrosiers J. Simultaneous assignment of locomotives and cars to passenger trains // Operations Research. 2001. Vol. 49. No 4. P. 531-548. DOI: 10.1287/opre.49.4.531.11226.
9. Eidenbenz S., Pagourtzis A., Widmayer P. Flexible train rostering. Algorithms and Computation // ISAAC 2003. Lecture Notes in Computer Science. Vol. 2906. P. 615-624. DOI: https://doi.org/10.1007/978-3-540-24587-2_63.
10. Бекларян Л.А., Хачатрян Н.К. Об одном классе динамических моделей грузоперевозок // Журнал вычислительной математики и математической физики. 2013. Т. 53. № 10. С. 1649-1667. DOI: 10.7868/S0044466913100037.
11. Khachatryan N.K., Akopov A.S. Model for organizing cargo transportation with an initial station of departure and a final station of cargo distribution // Business Informatics. 2017. No 1. P. 25-35. DOI: 10.17323/1998-0663.2017.1.25.35.
12. Khachatryan N.K., Akopov A.S., Belousov F.A. About quasi-solutions of traveling wave type in models for organizing cargo transportation // Business Informatics. 2018. No 1. P. 61-70. DOI: 10.17323/1998-0663.2018.1.61.70.
13. Бекларян Л.А., Хачатрян Н.К. Динамические модели организации грузопотока на железнодорожном транспорте // Экономика и математические методы. 2019. Т. 55. № 3. С. 62-73. DOI: 10.31857/S042473880005780-7.
14. Fukasawa R., Aragio M.P., Porto O., Uchoa E. Solving the freight car flow problem to optimality // Electronic Notes in Theoretical Computer Science. 2002. Vol. 66. No 6. P. 42-52. DOI: 10.1016/S1571-0661(04)80528-0.
15. Optimizing the cargo express service of Swiss Federal Railways / A. Ceselli [et al.] // Transportation Science. 2008. Vol. 42. No 4. P. 450-465. DOI: 10.1287/trsc.1080.0246.
16. Lulli G., Pietropaoli U., Ricciardi N. Service network design for freight railway transportation: the Italian case // Journal of the Operational Research Society. 2011. Vol. 62. No 12. P. 2107-2119. DOI: 10.1057/jors.2010.190.
17. Campetella M., Lulli G., Pietropaoli U., Ricciardi N. Fright service design for the Italian railways company // 6th Workshop on Algorithmic Approach for Transportation Modelling, Optimization, and Systems (ATMOS 2006), Zurich, Switzerland, 14 September 2006. P. 1-13. DOI: 10.4230/OASIcs.ATMOS.2006.685.
18. Andersen J., Christiansen M. Designing new European rail freight services // Journal of the Operational Research Society. 2009. No 60. P. 348-360. DOI: 10.1057/palgrave.jors.2602559.
19. Jeong S.-J., Lee C.-G., Bookbinder J. The European freight railway system as a hub-and-spoke network // Transportation Research, Part A: Policy and Practice. 2007. Vol. 41. No 6. P. 523-536. DOI: 10.1016/j.tra.2006.11.005.
20. Sadykov R., Lazarev A., Shiryaev V., Stratonnikov A. Solving a freight railcar flow problem arising in Russia // 13th Workshop on Algorithmic Approach for Transportation Modelling, Optimization, and Systems (ATMOS'13). Sophia Antipolis, France, 5 September 2013, P. 55-67. DOI: 10.4230/OASIcs.ATMOS.2013.55.
21. Лазарев А.А., Садыков Р.Р. Задача управления парком грузовых железнодорожных вагонов // XII Всероссийское совещание по проблемам управления (ВСПУ 2014). Москва, ИПУ РАН, Россия, 16-19 июня 2014. С. 5083-5093.
22. Desaulniers J., Desrosiers J., Solomon M. Column generation. New York: Springer, 2005.
23. Sadykov R., Vanderbeck F. Column generation for extended formulations // EURO Journal on Computational Optimization. 2013. Vol. 1. No 1-2. P. 81-115. DOI: 10.1007/s13675-013-0009-9.
24. Ahuja R., Magnanti T., Orlin J. Network flows: Theory, algorithms, and applications. Prentice Hall, 1993.
25. Williamson D. Network flow algorithms. Cambridge: Cambridge University Press, 2019. DOI: 10.1017/9781316888568.
26. Evans J.R., Minieka E. Optimization algorithms for networks and graphs. New York: Marcel Dekker, 1992.
Об авторах
Белоусов Федор Анатольевич
кандидат экономических наук;
научный сотрудник лаборатории динамических моделей экономики и оптимизации, Центральный экономико-математический институт Российской академии наук, 117418, г. Москва, Нахимовский проспект, д. 47; E-mail: [email protected] ORCID: 0000-0002-3040-3148
Неволин Иван Викторович
кандидат экономических наук;
ведущий научный сотрудник лаборатории экспериментальной экономики, Центральный экономико-математический институт Российской академии наук, 117418, г. Москва, Нахимовский проспект, д. 47; E-mail: [email protected]
Хачатрян Нерсес Карленович
кандидат физико-математических наук;
ведущий научный сотрудник лаборатории динамических моделей экономики и оптимизации, Центральный экономико-математический институт Российской академии наук, 117418, г. Москва, Нахимовский проспект, д. 47; E-mail: [email protected] ORCID: 0000-0003-2495-5736
Modeling and optimization of plans for railway freight transport performed by a transport operator
Fedor A. Belousov
E-mail: [email protected]
Ivan V. Nevolin
E-mail: [email protected]
Nerses K. Khachatryan
E-mail: [email protected]
Central Economics and Mathematics Institute, Russian Academy of Sciences Address: 47, Nakhimovsky Prospect, Moscow 117418, Russia
Abstract
This paper offers an approach for solving a problem that arises for railway transport operators. The task is to manage the fleet of freight railcars optimally in terms of profit maximization. The source data for the transport operator is a list of requests received from customers, as well as the location of railcars at the beginning of the planning period. The request formed by each customer consists of departure station, destination station, name and volume of cargo that the customer would like to transport. The request also contains the rate that the customer has to pay to the transport operator for each loaded wagon transported. Planning is carried out for a month in advance and consists, on the one hand, in selecting the most profitable requests for execution, on the other hand - in building a sequence of cargo and empty runs that will fulfill the selected requests with the greatest efficiency. Direct transportation of loaded and empty railway cars is carried out by Russian Railways with pre-known tariffs and time standards for each of the routes. At the same time, tariffs for driving loaded wagons are additional costs for the customer of the route specified in the request (customers pay both the transport operator for the use of wagons and Russian Railways); transportation of empty wagons is paid by transport operators. To solve this problem, one of the possible ways to reduce it to a large-
dimensional linear programming problem is proposed. An algorithm is proposed, the result of which is a problem written in the format of a linear programming problem. To demonstrate the approach clearly, a simplified problem statement is considered that takes into account only the main factors of the modeled process. The paper also shows an example of a numerical solution of the problem based on simple model data.
Key words: railway cargo transportation; planning of railway cargo transportation; optimal plan of railway cargo transportation; optimal management of railway car fleet; linear programming; schedule theory; operations research; unmanned vehicles.
Citation: Belousov F.A., Nevolin I.V., Khachatryan N.K. (2020) Modeling and optimization of plans for railway freight transport performed by a transport operator. Business Informatics, vol. 14, no 2, pp. 21—35. DOI: 10.17323/2587-814X.2020.2.21.35
References
1. Lazarev A.A., Musatova E.G., Gafarov E.R, Kvaratskheliya A.G. (2012) Schedule Theory. Problems of railway planning. Moscow: IPU RAS (in Russian)
2. Lazarev A.A., Musatova E.G., Kvaratskheliya A.G., Gafarov E.R. (2012) Schedule Theory. Problems of transport system management. Moscow: MSU (in Russian).
3. Lusba R, Larsen J., Ehrgott M., Ryan D. (2011) Railway track allocation: models and methods. OR Spectrum, vol. 33, no 4, pp. 843—883. DOI: 10.1007/s00291-009-0189-0..
4. Cordean J.-F., Toth P., Vigo V. (1988) A survey of optimization models for train routing and scheduling. Transportation Science, vol. 32, no 4, pp. 380-404. DOI: 10.1287/trsc.32.4.380.
5. Ravindra K., Mohring R.H., Zaroliagis C.D., eds. (2009) Robust and online large-scale optimization: Models and techniquesfor transportation systems. Berlin, Heidelberg: Springer. DOI: 10.1007/978-3-642-05465-5.
6. Brucker P., Hurink J., Rolfes T. (1999) Routing of railway carriages: A case study. Technical Report 1498. Netherlands: University of Twente.
7. Brucker P., Hurink J., Rolfes T. (2003) Routing of railway carriages. Journal of Global Optimization, no 27, pp. 313-332. DOI: https://doi. org/10.1023/A:1024843208074.
8. Cordean J.F., Soumis F., Desrosiers J. (2001) Simultaneous assignment oflocomotives and cars to passenger trains. Operations Research, vol. 49, no 4, pp. 531-548. DOI: 10.1287/opre.49.4.531.11226.
9. Eidenbenz S., Pagourtzis A., Widmayer P. (2003) Flexible train rostering. Algorithms and Computation. ISAAC 2003. Lecture Notes in Computer Science, vol. 2906, pp. 615-624. DOI: https://doi.org/10.1007/978-3-540-24587-2_63.
10. Beklaryan L.A., Khachatryan N.K. (2013) On one class of dynamic transportation models. Computational Mathematics and Mathematical Physics, vol. 53, no 10, pp. 1649-1667 (in Russian). DOI: 10.7868/S0044466913100037.
11. Khachatryan N.K., Akopov A.S. (2017) Model for organizing cargo transportation with an initial station of departure and a final station of cargo distribution. Business Informatics, no 1, pp. 25-35. DOI: 10.17323/1998-0663.2017.1.25.35.
12. Khachatryan N.K., Akopov A.S., Belousov F.A. (2018) About quasi-solutions of traveling wave type in models for organizing cargo transportation. Business Informatics, no 1, pp. 61-70. DOI: 10.17323/1998-0663.2018.1.61.70.
13. Beklaryan L.A., Khachatryan N.K. (2019) Dynamic models of cargo flow organization on Railway Transport. Economics and Mathematical Methods, vol. 55, no 3, pp. 62-73 (in Russian). DOI: 10.31857/S042473880005780-7.
14. Fukasawa R., Aragao M.P., Porto O., Uchoa E. (2002) Solving the freight car flow problem to optimality. Electronic Notes in Theoretical Computer Science, vol. 66, no 6, pp. 42-52. DOI: 10.1016/S1571-0661(04)80528-0.
15. Ceselli A., Gatto M., Uibbecke M., Nunkesser M., Schilling H. (2008) Optimizing the cargo express service of Swiss Federal Railways. Transportation Science, vol. 42, no 4, pp. 450-465. DOI: 10.1287/trsc.1080.0246.
16. Lulli G., Pietropaoli U., Ricciardi N. (2011) Service network design for freight railway transportation: the Italian case. Journal of the Operational Research Society, vol. 62, no 12, pp. 2107-2119. DOI: 10.1057/jors.2010.190.
17. Campetella M., Lulli G., Pietropaoli U., Ricciardi N. Fright service design for the Italian railways company. Proceedings of the 6th Workshop on Algorithmic Approach for Transportation Modelling, Optimization, and Systems (ATMOS2006), Zurich, Switzerland, 14 September2006, pp. 1-13. DOI: 10.4230/OASIcs.ATMOS.2006.685.
18. Andersen J., Christiansen M. (2009) Designing new European rail freight services. Journal of the Operational Research Society, no 60, pp. 348-360. DOI: 10.1057/palgrave.jors.2602559.
19. Jeong S.-J., Lee C.-G., Bookbinder J. (2007) The European freight railway system as a hub-and-spoke network. Transportation Research, Part A: Policy and Practice, vol. 41, no 6, pp. 523-536. DOI: 10.1016/j.tra.2006.11.005.
20. Sadykov R, Lazarev A., Shiryaev V., Stratonnikov A. (2013) Solving a freight railcar flow problem arising in Russia. Proceedings of the 13th Workshop on Algorithmic Approach for Transportation Modelling, Optimization, and Systems (ATMOS'13), Sophia Antipolis, France, 5 September 2013, pp. 55-67. DOI: 10.4230/OASIcs.ATMOS.2013.55.
21. Lazarev A.A., Sadykov R.R. (2014) Management problem of railway cars fleet. Proceedings of the XIIAll-Russian Meeting on Management Issues (VSPU2014), Moscow, IPURAS, Russia, 16-19 June 2014, pp. 5083-5093 (in Russian).
22. Desaulniers J., Desrosiers J., Solomon M. (2005) Column generation. New York: Springer.
23. Sadykov R., Vanderbeck F. (2013) Column generation for extended formulations. EURO Journal on Computational Optimization, vol. 1, no 1-2, pp. 81-115. DOI: 10.1007/s13675-013-0009-9.
24. Ahuja R., Magnanti T., Orlin J. (1993) Networkflows: Theory, algorithms, and applications. Prentice Hall.
25. Williamson D. (2019) Network flow algorithms. Cambridge: Cambridge University Press. DOI: 10.1017/9781316888568.
26. Evans J.R., Minieka E. (1992) Optimization algorithmsfor networks and graphs. New York: Marcel Dekker.
About the authors
Fedor A. Belousov
Cand. Sci. (Econ.);
Researcher, Laboratory of Dynamic Models of Economy and Optimization, Central Economics and Mathematics Institute, Russian Academy of Sciences, 47, Nakhimovsky Prospect, Moscow 117418, Russia; E-mail: [email protected] ORCID: 0000-0002-3040-3148
Ivan V. Nevolin
Cand. Sci. (Econ.);
Leading Researcher, Laboratory of Experimental Economics, Central Economics and Mathematics Institute, Russian Academy of Sciences, 47, Nakhimovsky Prospect, Moscow 117418, Russia; E-mail: [email protected]
Nerses K. Khachatryan
Cand. Sci. (Phys.-Math.);
Senior Researcher, Laboratory of Dynamic Models of Economy and Optimization, Central Economics and Mathematics Institute, Russian Academy of Sciences, 47, Nakhimovsky Prospect, Moscow 117418, Russia; E-mail: [email protected] ORCID: 0000-0003-2495-5736