Автоматика и телемеханика, № 5, 2020
© 2020 г. Я. ЗИНДЕР (yakov.zinder@uts.edu.au)
(Технологический университет, Сидней, Австралия),
А.А. ЛАЗАРЕВ, д-р физ.-мат. наук (jobmath@mail.ru)
(Институт проблем управления им. В.А. Трапезникова РАН, Москва;
Национальный исследовательский университет
“Высшая школа экономики”, Москва),
Е.Г. МУСАТОВА, канд. физ.-мат. наук (nekolyap@mail.ru)
(Институт проблем управления им. В.А. Трапезникова РАН, Москва)
КОРРЕКТИРОВКА РАСПИСАНИЯ ДВИЖЕНИЯ
НА ЧАСТИЧНО ЗАБЛОКИРОВАННОМ СЕГМЕНТЕ
ЖЕЛЕЗНОЙ ДОРОГИ С РАЗЪЕЗДОМ1
Представлен полиномиальный алгоритм корректировки расписания
движения поездов для случая, когда один из путей двухпутной желез-
ной дороги становится недоступным, оставшийся путь содержит разъ-
езд, а все поезда делятся на две категории: приоритетные поезда, напри-
мер пассажирские, и обычные поезда, к которым относятся большинство
грузовых поездов. Представленный алгоритм минимизирует негативное
влияние, оказываемое блокировкой пути, сначала для приоритетных по-
ездов, а затем для обычных поездов на множестве всех расписаний, оп-
тимальных для приоритетных поездов.
Ключевые слова: однопутная железная дорога, динамическое программи-
рование, перепланирование, полиномиальный алгоритм.
DOI: 10.31857/S0005231020050062
1. Введение
Сбои, такие как аварии или повреждение пути, часто приводят к вре-
менному закрытию одной колеи на двухпутном участке железной дороги.
В таких ситуациях необходимо планировать движение поездов в обоих на-
правлениях на оставшемся пути с целью минимизации влияния блокировки.
Корректировка железнодорожных расписаний является областью активных
исследований в течение нескольких десятилетий [1]. В статье добавляется
к этим исследованиям полиномиальный алгоритм на основе динамического
программирования для случая, когда оставшаяся колея имеет разъезд, а мно-
жество всех поездов разделено на две категории: приоритетные поезда, такие
как пассажирские, и обычные, такие как большинство грузовых поездов.
Более подробно рассмотрим двухпутную железную дорогу между двумя
точками A и B, где один железнодорожный путь заблокирован и движение
1 Работа выполнена при частичной финансовой поддержке Российского научного фонда
(проект №17-19-01665).
91
всех поездов должно быть перепланировано на оставшемся пути. Оставшийся
путь имеет разъезд, т.е. участок, позволяющий поезду разминуться со встреч-
ным поездом. В этом случае пропускающий поезд должен стоять в разъезде,
в то время как проходящий поезд не может остановиться в разъезде. В разъ-
езде одновременно может сделать остановку только один поезд. Все поезда
имеют одинаковую постоянную скорость. Время, которое требуется поезду
для прохождения отрезка дороги между точкой s ∈ {A, B} и разъездом, обо-
значим через ps. Не ограничивая общности, будем полагать, что pA ≥ pB.
По соображениям безопасности два поезда не могут прибыть в разъезд
одновременно. Пусть β минимальный временной промежуток между дву-
мя такими прибытиями. По той же причине для каждой конечной точки
рассматриваемого отрезка пути два момента прибытия, два момента отправ-
ления, так же как и момент прибытия и момент отправления двух поездов,
должны отличаться как минимум на величину β. При этом два поезда могут
покинуть разъезд одновременно, если они движутся в разных направлени-
ях. Предположение, что все эти требования безопасности имеют одинаковое
минимальное время β, упрощает изложение материала, но не является суще-
ственным. Также будем полагать, что β < pB.
Множество поездов состоит из двух категорий: приоритетные поезда и
обычные поезда. Для каждого s ∈ {A, B} пусть s = {A, B} \ {s}. Обозначим
через
s и
множества приоритетных и обычных поездов, которые долж-
s
ны проходить путь в направлении от точки s к точке s. Будем считать, что
для каждого s ∈ {A, B}
s
= ∅, поскольку в противном случае задача
s
корректировки расписания не возникает.
Исходное расписание, построенное в предположении, что оба пути нахо-
дятся в рабочем состоянии, выделяет каждому поезду j ∈ Nαs временное окно
[rs,αj, ds,αj], в пределах которого поезд j должен пройти через рассматривае-
мый двухпутный участок железнодорожной сети. В соответствии с этим ис-
ходным расписанием один путь выделяется для всех поездов, приоритетных и
обычных, идущих из А в В, а другой путь выделяется для всех поездов, при-
оритетных и обычных, движущихся в противоположном направлении, из В
в А. Следовательно, для любых двух поездов j ∈ Nαs и j ∈ Nαs, движущихся
из s в s, соответствующие временные окна удовлетворяют условию
(1)
rs,αj = rsαj
и rs,αj > rsαjвлечетdj,α > djα.
В результате корректировки расписания для каждого поезда j ∈ Nαs опре-
деляется момент времени Ss,αj, в который этот поезд должен войти на остав-
шийся путь и который будем называть моментом отправления поезда из точ-
ки s, и момент времени Cs,αj, в который поезд должен покинуть рассматри-
ваемый путь и который будем называть временем прибытия в точку s. Любое
такое новое расписание должно удовлетворять следующему условию, которое
диктует наличие исходных временных окон:
(s1) для любого s ∈ {A, B}, любого α ∈ {p, o} и любого поезда j ∈ Nαs вре-
мя отправления Ss,αj этого поезда удовлетворяет неравенству Ss,αj
≥rs,αj.
92
Требуется построить расписание, минимизирующее целевую функцию
(2)
max max
[Cs,pj - ds,pj]
s∈{A,B} j∈Ns
и которое минимизирует целевую функцию
∑ ∑
(3)
[Cs,oj - rs,oj]
s∈{A,B} j∈
s
на множестве всех расписаний, оптимальных для (2).
Целевая функция (3) является лишь одним из возможных показателей
влияния блокировки одного из путей на обычные поезда. Так, приведенная
далее оптимизационная процедура может быть легко модифицирована для
случая, когда вместо (3) используется
(4)
max
max[Cs,oj - ds,oj
].
s∈{A,B}
j∈Nos
Существует множество публикаций по планированию и корректировке
расписания для однопутной железной дороги (ряд ссылок можно найти в
[1, 2]). Среди них публикации [3-5] наиболее тесно связаны с данной статьей.
Как и настоящая статья, [3] касается корректировки расписания в случае,
когда первоначальное расписание полностью функционирующего двухпутно-
го участка железнодорожной сети определяет временное окно для каждого
поезда и рассматривает несколько категорий поездов. В отличие от данной
статьи [3] предполагает отсутствие разъезда и отражает существование раз-
личных типов поездов путем введения весов в целевую функцию.
Другой близкой публикацией является [5], которая касается оптимизации
упорядоченных целевых функций, но в отличие от данной статьи предполага-
ет, что все поезда доступны одновременно (такая ситуация может возникнуть
после полной блокировки рассматриваемого участка железной дороги). Кро-
ме того, [5] предполагает, что на оставшемся пути нет разъезда.
И, наконец, [4] касается планирования на однопутной железной дороге,
которая имеет разъезд, но аналогично [5] подразумевает, что все поезда име-
ются в наличии одновременно. Кроме того, в отличие от приведенной далее
процедуры оптимизации, которая предназначена для двух категорий поездов
и упорядоченных целевых функций, все алгоритмы, представленные в [4], бы-
ли разработаны для случаев одной целевой функции и подразумевают, что
все поезда имеют одинаковый тип. Несмотря на упомянутые существенные
различия между [4] и данной статьей, некоторые результаты относительно
структуры оптимальных расписаний, полученные в [4], могут быть непосред-
ственно обобщены на случай, когда исходное расписание задает временное
окно для каждого поезда. Кроме того, основная идея из [4], что существует
вложенный Беллмановский процесс принятия решений, связанный с момен-
тами отправления определенных поездов, остается в силе для данной статьи,
хотя набор состояний и реализация общей схемы динамического программи-
рования различны.
93
2. Экспрессы и неэкспрессы
Рассмотрим произвольное расписание для пути, который остался доступ-
ным после блокировки. Как и в [4], поезд, который не останавливается в
разъезде, будет называться экспрессом, тогда как поезд, который делает оста-
новку в разъезде, будет называться неэкспрессом. Понятия экспресса и неэкс-
пресса не связаны с понятиями приоритетных и обычных поездов. Другими
словами, любой приоритетный поезд, так же как и любой обычный поезд, мо-
жет быть как экспрессом, так и неэкспрессом в зависимости от расписания.
Множество всех экспрессов, которым уступает путь один и тот же неэкспресс,
будем называть пакетом. Для любого момента времени t поезд j ∈ Nαs будет
называться активным в t, если
Ss,αj ≤ t ≤ Cs,αj.
Если поезда j ∈ Nαs и j ∈ Nαs, т.е. два поезда, движущиеся в противопо-
ложных направлениях, одновременно активны в некоторый момент времени,
]. Сле-
довательно, один из этих двух поездов должен быть экспрессом, а другой
неэкспрессом, который пропускает этот экспресс в разъезде.
Поскольку в любой момент времени в разъезде может стоять не более
одного поезда, если поезд j ∈ Nαs обгоняет поезд j, который движется по
пути в том же направлении, что и j, т.е. из s в s, то во временном интер-
вале [Ss,αj, Cs,αj] нет активных поездов, движущихся из s в s. Следовательно,
вместо ожидания j поезд j может покинуть разъезд по крайней мере в мо-
мент времени Ss,αj + ps - β, что может только улучшить значение целевой
функции, поскольку она неубывающая.
Поскольку обе целевые функции (2) и (3) являются неубывающими, при-
веденные выше рассуждения означают, что без ограничения общности доста-
точно рассмотреть только расписания, которые в дополнение к (s1) удовле-
творяют следующим условиям:
(s2) для каждого s ∈ {A, B} и каждого α ∈ {p, o}, для любых двух поездов
j ∈ Nαs и j ∈ Nαs неравенство rs,αj > rs,αj влечет Ss,αj > Ss,αj;
(s3) для любого неэкспресса существует как минимум один экспресс, кото-
рый данный неэкспресс пропускает;
(s4) все экспрессы, которые пропускает один и тот же неэкспресс, движутся
в направлении, противоположном направлению движения этого неэкс-
пресса;
(s5) неэкспресс покидает разъезд одновременно с последним экспрессом,
который он пропускает.
Два экспресса, движущиеся в противоположных направлениях, не могут
быть активными одновременно. Более того, два экспресса, движущиеся в од-
ном направлении, скажем, из s в s, могут отправиться из s только в моменты
времени, различающиеся не менее чем на β. Следовательно, все моменты
отправления экспрессов различны.
94
Минимально возможная разница между двумя последовательными време-
нами отправления экспрессов определяется несколькими факторами. Если,
как и в [4], все поезда имеются в наличии одновременно, то этими фактора-
ми являются направления, в которых движутся экспрессы по рассматривае-
мому участку, и ситуации в разъезде, когда эти экспрессы его проходят. Все
возможные комбинации этих факторов определены в [4] путем приписывания
каждому экспрессу пары (s, b), называемой его типом. Здесь s указывает, что
экспресс движется в направлении из s в s, тогда как b отражает ситуацию в
разъезде и принимает следующие значения:
• 0, если экспресс проходит через пустой разъезд;
• 1, если экспресс является частью пакета и не является последним в этом
пакете;
• 2, если экспресс является последним в пакете.
Пусть i ∈ Nαs и i ∈ Nαsдвапоследовательныхэкспрессатипов(s,b)и
(s, b) соответственно. Пусть время отправления экспресса i равно t. Пред-
положим, что b = 1, b = 0 и некоторый неэкспресс g ∈ Nγ¯
пропускает i. Со-
s
гласно [4] время отправления экспресса i определяет минимально возможное
время отправления неэкспресса g:
t + pA + pB + β, если s = s;
t+β,
если s = s, b = 0;
(5)
τ=
 t + 2ps + β,
если s = s, b = 2.
Действительно, если s = s, то g движется из s в s. В силу того что b = 1, по-
езда g и i не могут быть активными одновременно. Следовательно, g может
отправиться из s только через β после прибытия поезда i, который прибыва-
ет в s в момент t + pA + pB. Если s = s, то оба поезда, i и g, движутся из s
в s. Тогда если b = 0, то времена отправления поездов g и i могут отличаться
только на β, в то время как при b = 2 поезд g может покинуть точку s только
через β после прибытия в точку s поезда, который пропускает i в разъезде.
Поезд g покидает разъезд одновременно с i, т.е. в момент времени t + ps, и
после этого ему требуется ps временных единиц, чтобы достичь s.
В отличие от [4], где предполагается, что все поезда одновременно нахо-
дятся в соответствующих конечных точках пути, данная статья посвящена
задаче корректировки расписания, которая учитывает временные окна, опре-
деленные для каждого поезда исходным расписанием. Таким образом, суще-
ствует еще одно ограничение на самое раннее возможное время отправления,
наложенное исходным временным окном поезда. Следовательно, самое ран-
нее возможное время отправления поезда g из соответствующей конечной
точки рассматриваемого участка пути равно
{
}
s
(6)
τ = max
τ, r
g
Если временное окно для поезда i не учитывать, то согласно [4] времена
отправлений t и τ (если поезд g существует) определяют следующее самое
95
раннее возможное время отправления поезда i:
t+β,
если s = s и b = 1;
t+β,
если s = s и b = b = 0;
max{t + 2ps + β, τ +
+ β - ps},
если s = s, b = 2, b = 0;
s
(7)
t=
t + 2ps + β,
если s = s, b = 2, b = 0;
τ+
+ β - ps,
если s = s, b = 0, b = 0;
s
t+pA +pB +β,
если s = s, b = 0;
max{t + pA + pB + β, τ +
+ β - ps}, если s = s, b = 0.
s
Принимая во внимание ограничение, накладываемое временным окном для
поезда i, его самое раннее возможное время отправления равно
{
}
(8)
max
Пусть экспресс i типа (s, b) имеет самое раннее время отправления среди
всех экспрессов. Пусть g поезд, который отправляется раньше i. Тогда g
является неэкспрессом. Это в силу условий (s3) и (s4) означает, что g от-
правляется из s и пропускает i в разъезде. Следовательно, i первый поезд,
отправляющийся из s. Кроме того, поскольку только один неэкспресс может
пропускать экспресс в разъезде, g первый поезд, отправляющийся из s.
Для каждого s ∈ {A, B} и для каждого α ∈ {p, o} определим nαs как мощ-
ность множества Nαs и пронумеруем все поезда j ∈ Nαs в порядке убыва-
ния rs,αj или, что эквивалентно, в порядке убывания ds,αj. Пусть первый экс-
пресс в последовательности экспрессов имеет тип (s, b) и является поездом
категории α, который разъезжается с неэкспрессом категории γ (если такой
существует). Тогда, принимая во внимание условие (s2), время отправления
этого первого экспресса равно
 rnα,
если b = 0;
s
(9)
t=
{
}
maxrs,α
+ps+β-ps
, если b = 0.
nαs ,rnγ
s
Используя те же рассуждения, что и выше, легко видеть, что если экс-
пресс i типа (s, b) имеет самое позднее время отправления среди всех экс-
прессов и g поезд, который отправляется позже i, то i последний поезд,
отправляющийся из s, g последний поезд, отправляющийся из s, и g про-
пускает поезд i в разъезде.
Пусть i и i два последовательных экспресса типов (s, b) и (s, b), соот-
ветственно, таких, что время отправления i больше времени отправления i.
Как было показано выше, типы этих экспрессов вместе со временем отправле-
ния i полностью определяют самое раннее возможное время отправления i.
Кроме того, если некоторый неэкспресс g пропускает i и b = 2, то тип (s, b) и
время отправления i полностью определяют время, когда g прибывает в s; и
если некоторый неэкспресс g пропускает i и b = 1, то время отправления i
96
и типы этих двух экспрессов полностью определяют самое раннее время от-
правления g и
s. Более того, как было показано выше, тип первого экспрес-
са полностью определяет самое раннее время отправления этого экспресса и
самое раннее время отправления поезда, с которым этот экспресс расходится
в разъезде, если такой поезд существует. Эти наблюдения позволяют постро-
ить искомое расписание, учитывая только времена отправления экспрессов
и назначая каждому поезду самое раннее возможное время отправления из
соответствующей точки пути.
3. Минимизация максимального временного смещения
В данном разделе показано, как найти оптимальное значение целевой
функции (2). Целевая функция (2) включает в себя только одну категорию
поездов, и, следовательно, эта оптимизационная задача сходна с задачей, рас-
смотренной в [4], с одним существенным отличием рассматриваемая здесь
задача корректировки расписания учитывает временные окна, назначенные
поездам до возникновения блокировки. Это требует включения времени в
определение состояния, что в свою очередь меняет реализацию общей струк-
туры динамического программирования для решения задачи минимизации
максимального временного смещения.
Рассмотрим произвольное расписание (напомним, что данный раздел ка-
сается только приоритетных поездов, а существование всех обычных поездов
игнорируется) и произвольный экспресс в этом расписании. Пусть (s, b)
тип этого экспресса и t время его отправления. Количество приоритетных
поездов, которые отправляются из s в s в момент времени t или после этого
момента, будем обозначать через ks. Пусть ks количество приоритетных
поездов, каждый из которых является либо поездом, который пропускает
рассматриваемый экспресс в разъезде, либо поездом, который отправляется
из s в s в момент времени t или позже, либо поездом, для которого выпол-
нены оба условия. Отправлению рассматриваемого экспресса соответствует
набор (t, kA, kB , s, b). Согласно терминологии динамического программирова-
ния этот набор будет называться состоянием. Легко видеть, что если отправ-
лению экспресса соответствует состояние (t, kA, kB, s, b), то данный экспресс
принадлежит множеству
s и в силу (s2) и введенной нумерации поездов
имеет номер ks.
Состояние (t, kA, kB, s, b) позволяет вычислить
Cs,pk
-ds,pk
=t+pA +pB -ds,pk
s
s
s
и в случае b = 2
Cs,pk
-ds,pk
= t + 2ps - ds,p.k
s
s
s
Введем обозначение
{
{
}
s,p
max
t+pA +pB -d
,t + 2ps - ds,p
, если b = 2;
ks
ks
L(t, kA, kB, s, b) =
t+pA +pB -ds,p
иначе.
ks
97
Каждое расписание индуцирует последовательность состояний, в кото-
рой состояния перечислены в порядке возрастания соответствующего вре-
мени отправления. Рассмотрим все расписания, в которых последовательно-
сти состояний содержат (t, kA, kB, s, b). Пусть F (t, kA, kB, s, b) минимальное
значение величины
max
max
[Cs,pj - ds,pj]
s∈{A,B}
j∈{1,...,ks}
на множестве всех таких расписаний. Обозначим через Ω(t, kA, kB , s, b)
множество всех состояний, таких что каждое из них следует сразу за
(t, kA, kB, s, b) по крайней мере в одной из упомянутых выше последователь-
ностей.
Согласно разделу 2 последний экспресс также является последним поез-
дом, проходящим железнодорожный путь в соответствующем направлении.
Более того, после отправления этого экспресса максимум один поезд может
двигаться в противоположном направлении, и этот поезд должен пропускать
данный экспресс. Следовательно, если состояние (t, kA, kB, s, b) соответствует
отправлению последнего экспресса, то kx в (t, kA, kB , s, b) равен
1 для x = s;
(10)
kx =
0
для x = s и b = 2;
1
для x = s и b = 2.
Это означает, что
(11)
F (t, kA, kB , s, b) = L(t, kA, kB
,s,b).
Если в некотором расписании, у которого последовательность состояний
содержит (t, kA, kB, s, b), экспресс ks
s не является последним экспрессом
в расписании, то он не является последним экспрессом во всех расписаниях,
чьи последовательности состояний содержат (t, kA, kB , s, b). Поэтому
F (t, kA, kB , s, b) =
{
}
(12)
= max L(t,kA,kB,s,b),
min
F (t,kA,kB, s, b)
(t ,kA,kB,s,b)∈Ω(t,kA,kB,s,b)
Как уже отмечалось в разделе 2, первый экспресс также является пер-
вым поездом, отправляющимся в соответствующем направлении, и время
его отправления можно вычислить с помощью (9). Пусть X множество
всех состояний, соответствующих всем возможным вариантам выбора пер-
вого экспресса и его типа. Тогда оптимальное значение функции (2) может
быть записано в виде
(13)
min
F (t, npA, npB
,s,b).
(t,npA,npB,s,b)∈X
Таким образом, принимая во внимание (11), (12) и (13), оптимальное зна-
чение (2) может быть получено с помощью динамического программирова-
ния. Более подробная информация по реализации вычислений будет пред-
ставлена в разделе 5.
98
4. Минимизация суммарного времени нахождения в системе
В данном разделе рассматривается задача минимизации (3) на множестве
всех расписаний, оптимальных для (2). Пусть F оптимальное значение
для (2). Любое расписание оптимально для (2) тогда и только тогда, когда
(14)
Cs,pi ≤ ds,pi + F для любого s ∈ {A,B} и любого i ∈
s.
Другими словами, необходимо найти расписание, доставляющее наименьшее
значение для (3) среди всех расписаний, удовлетворяющих условию (14). Сле-
довательно, в данном разделе будут рассматриваться только расписания, для
которых выполнено (14).
В отличие от раздела 3, который касался только приоритетных поез-
дов, теперь рассматриваются все поезда. Таким образом, с отправлением
каждого экспресса связано больше информации, что ведет к соответствую-
щему изменению определения состояния. Теперь состояние
это набор
(t, kpA, koA, kpB , koB, s, b, α, γ), где, как и в разделе 3, t и пара (s, b)
время от-
правления и тип соответствующего экспресса. Кроме того, α
категория
экспресса и γ категория поезда (если такой поезд существует), который
пропускает данный экспресс в разъезде. Если такой поезд не существует, то
γ принимает любое значение из {p, o}. Независимо от того, пропускает ли
какой-либо поезд данный экспресс или нет, kγ¯s это количество поездов в
подмножестве множества Nγ¯s, которое состоит из всех поездов, прибываю-
щих в s после t. Каждое другое значение kux в (t, kpA, koA, kpB, koB , s, b, α, γ)
это количество поездов, которые отправляются из x в момент времени t или
позже. В частности, в силу (s2) состояние (t, kpA, koA, kpB , koB, s, b, α, γ) соответ-
ствует отправлению поезда, принадлежащего множеству Nαs, номер которого
равен kαs.
Если α = o, то состояние (t, kpA, koA, kpB , koB, s, b, α, γ) предоставляет инфор-
мацию для вычисления
Cs,ok
-rs,ok
=t+pA +pB -rs,o,k
s
s
s
а если γ = o и b = 2, то это состояние позволяет также вычислить
Cs,ok
-rs,ok
= t + 2ps - rs,o.k
s
s
s
Следовательно, вклад в значение целевой функции (3) экспресса, отправ-
лению которого соответствует состояние (t, kpA, koA, kpB, koB , s, b, α, γ), и поезда,
который пропускает данный экспресс в разъезде (если такой поезд существу-
ет), равен
R(t, kpA, koA, kpB , koB, s, b, α, γ) =
2t + 3ps + ps - rs,ok
- rs,o для α = o,b = 2,γ = o;k
s
s
t+pA +pB -rs,o
для α = o, b = 2, γ = o;
ks
(15)
t+pA +pB -rs,o
для α = o, b = 2;
ks
=
t + 2ps - rs,ok
для α = o, b = 2, γ = o;
s
 0
иначе.
99
Основываясь на одних и тех же концепциях динамического программиро-
вания, процедуры оптимизации для (2) и (3) имеют много общего, несмотря
на несколько важных отличий разные целевые функции; условие (14); и
разные множества поездов. Кроме того, оптимизационный подход, описанный
в этом разделе, применяется только после процедуры минимизации (2). По-
этому использование далее тех же обозначений Ω и F не вызовет путаницы,
а скорее подчеркнет сходство и облегчит изложение в разделе 5.
Рассмотрим все расписания, в которых индуцированные последовательно-
сти состояний содержат некоторое состояние (t, kpA, koA, kpB, koB, s, b, α, γ). На-
помним, что в этом разделе рассматриваются только расписания, удовле-
творяющие (14). Как и прежде, в каждой индуцированной последователь-
ности состояний состояния перечислены в порядке возрастания соответ-
ствующих времен отправления. Обозначим через Ω(t, kpA, koA, kpB, koB, s, b, α, γ)
множество всех состояний таких, что каждое из них сразу следу-
ет за (t, kpA, koA, kpB, koB , s, b, α, γ) по крайней мере в одной из упо-
мянутых выше последовательностей. Если koA + koB > 0, то определим
F (t, kpA, koA, kpB , koB, s, b, α, γ) как минимальное значение
∑ ∑
(16)
[Cs,oj - rs,oj]
s∈{A,B} j≤ks
на множестве рассматриваемых расписаний. Если koA + koB = 0, то положим
F (t, kpA, koA, kpB, koB, s, b, α, γ) = 0.
Далее для любых α ∈ {p, o} удобно использовать обозначение α = {p, o} \ {α}.
Если состояние (t, kpA, koA, kpB, koB , s, b, α, γ) соответствует отправлению послед-
него экспресса, то согласно разделу 2 kux в (t, kpA, koA, kpB, koB , s, b, α, γ) опреде-
ляется как
1
для x = s и u = α;
0
для x = s и u = α;
(17)
kux =
0
для x = s и u = γ;
0 для x = s,u = γ и b = 2;
1
для x = s, u = γ и b = 2.
Это означает, что
(18)
F (t, kpA, koA, kpB, koB, s, b, α, γ) = R(t, kpA, koA, kpB , koB
,s,b,α,γ).
Если экспресс, которому соответствует состояние (t, kpA, koA, kpB , koB, s, b, α, γ),
не является последним экспрессом в расписании, то
(19)
F (t, kpA, koA, kpB, koB, s, b, α, γ) = R(t, kpA, koA, kpB , koB
,s,b,α,γ) +
+
min
F (t,kpA,koA,kpB,koB, s, b, α, γ).
(t,kpA,koA,kpB,koB,s,b)∈Ω(t,kpA,koA,kpB,koB,s,b,α,γ)
100
Обозначим через Y множество всех состояний, которые являются первы-
ми по крайней мере в одной последовательности состояний, индуцирован-
ной расписанием, удовлетворяющим (14). Тогда минимальное значение (3)
на множестве всех расписаний, оптимальных для (2), равно
(20)
min
F (t, npA, noA, npB, noB
,s,b,α,γ).
(t,npA,noA,npB,noB,s,b,α,γ)∈Y
Заметим, что (13) и (20) существенно различны. Действительно, чтобы пере-
числить все состояния в X, достаточно знать только npA, npA, rnpp
иrnpp
, в то
A
B
время как перечисление всех состояний в Y может потребовать значительно
более сложную вычислительную процедуру. Эта процедура представлена в
разделе 5.
5. Динамическое программирование
Для приведенной ниже оптимизационной процедуры требуется множе-
ство T моментов времени, которое содержит все времена отправления экс-
прессов во всех расписаниях, в которых каждый экспресс отправляется в
самый ранний возможный момент времени для экспресса этого типа. Такое
множество описано ниже.
Принимая во внимание (5)-(9), легко видеть, что время отправления лю-
бого экспресса представимо в виде
(21)
t=rs,αi +m1pA +m2pB +m3β
для некоторого α ∈ {p, o}, s ∈ {A, B}, i ∈ Nαs, и некоторых целых чисел m1,
m2 и m3. Введем обозначение
n=npA +npB +noA +noB.
Отметим, что s и α в выражении (21) не обязательно совпадают с соответ-
ствующими параметрами рассматриваемого экспресса. Если для двух после-
довательных экспрессов α, s и i в выражении (21) остаются теми же самыми,
то согласно (7) и (9) m1 и m2 не могут увеличиться больше чем на 3 и не могут
уменьшиться больше чем на 1, тогда как m3 не может увеличиться больше
чем на 2. Таким образом, m1 и m2 не превосходят 3n и не меньше (-n), а
m3 не превосходит 2n. Следовательно, все возможные моменты отправления
экспресса принадлежат множеству
{
t| t ≥ 0, t = rs,αi + m1pA + m2pB + m3β,
i ∈ Nαs , s ∈ {A,B}, α ∈ {p,o}, m1 ∈ {-n,...,0,1,... ,3n},
(22)
}
m2 ∈ {-n,... ,0,1,... ,3n},m3 ∈ {0,1,... ,2n}
мощности O(n4).
101
Рассмотрим задачу минимизации (2) и предположим, что npA > 0 и npB > 0,
поскольку в противном случае минимизация (2) тривиальна. Поскольку дан-
ная задача включает только приоритетные поезда, то, следуя подходу, при-
нятому в разделе 3, можно рассматривать только приоритетные поезда. Сле-
довательно, вместо (22) можно использовать в качестве T его подмножество
{
t| t ≥ 0, t = rs,pi + m1pA + m2pB + m3β, i ∈ Nps, s ∈ {A,B},
m1 ∈ {-(npA + npB),... ,0,1,... ,3(npA + npB)},
(23)
m2 ∈ {-(npA + npB),... ,0,1,... ,3(npA + npB)},
}
m3 ∈ {0,1,... ,2(npA + npB)}
Оптимизационная процедура, представленная в данном разделе, получает
оптимальное значение для (2) путем генерации последовательности множеств
V1, ..., Vnp
+np . Следовательно, количество множеств в этой последователь-B
A
ности равно количеству поездов, поскольку, как и в разделе 3, рассматри-
ваются только приоритетные поезда. Каждое множество состоит из наборов
(t, kA, kB, s, b), которые являются кандидатами на состояния в оптимальном
для (2) расписании.
В каждом множестве Vk, 1≤ k ≤ npA + npB, содержатся только кандидаты,
удовлетворяющие условию
kpA + kpB = k.
Таким образом, ввиду (10) все кандидаты на состояние, соответствующее по-
следнему экспрессу, могут быть только в множествах V1 и V2. Множество V1
содержит только таких кандидатов. Более точно, это множество состоит из
всех наборов вида (t, 1, 0, A, 0), где t ∈ T и t ≥ rA,p1, и всех наборов вида
(t, 0, 1, B, 0), где t ∈ T и t ≥ rB,p1.
Множество V2 содержит всех кандидатов на состояние, соответствую-
щее последнему экспрессу и удовлетворяющее равенству kA + kB = 2, а
также других кандидатов, удовлетворяющих этому равенству. Подмноже-
ство V2 всех кандидатов на последнее состояние состоит из всех наборов типа
(t, 1, 1, A, 2), где t ∈ T и t ≥ rA,p1, и всех наборов типа (t, 1, 1, B, 2), где t ∈ T и
t≥rB,p1.
Множества V1, . . . , Vnp
генерируются одно за другим в порядке воз-
+np
A
B
растания их индексов. После включения всех кандидатов на состояние, со-
ответствующее последнему экспрессу, анализируются наборы для каждого
множества один за другим. Чтобы быть включенным в множество Vk, на-
бор (t, kA, kB, s, b), для которого выполняется kA + kB = k, должен обладать
несколькими свойствами. Эти свойства включают:
(p1) ks ≤ ns,p для s ∈ {A, B};
(p2) rs,p ≤ t для t ∈ T ;k
s
(p3) если b = 0, то ks ≥ 1;
102
(p4) если b = 1, то ks ≥ 2;
(p5) если kpA = npA и kpB = npB, то t вычисляется по (9).
Более того, рассматриваемый набор (t, kA, kB , s, b), удовлетворяющий
свойствам (p1)-(p5), включается в множество VkA+kB , если только существу-
ет набор (t,kA,kB, s, b), который включен в одно из ранее сгенерированных
множеств, и имеет t, которое можно вычислить по формулам (5)-(8); имеет
kA иkB, удовлетворяющие (24) и (25), приведённым ниже; и удовлетворяет
условию (26), приведённому ниже:
(24)
ks = ks
− 1,
{
ks - 1, если b = 2,
k¯
(25)
s =
ks
иначе,
(26)
если b = 1, то s = s и b
= 0.
Для каждого набора (t, kA, kB, s, b), обладающего требуемыми свойствами
и, следовательно, принадлежащего VkA+kB , обозначим через W (t, kA, kB , s, b)
множество всех наборов (t,kA,kB , s, b) в ранее сгенерированных множествах
таких, что t совпадает с моментом времени, вычисленным по формуле (8);
kA иkB удовлетворяют (24) и (25); и выполняется (26). Если (t, kA, kB , s, b)
выбирается в качестве состояния, то
W (t, kA, kB, s, b) = Ω(t, kA, kB, s, b).
Тогда с учетом (13) оптимальное значение (2) равно
min
f (t, kA, kB, s, b),
(t,nA,nB ,s,b)∈Vnp
p
+n
A
B
где f определяется подобно F в (11) и (12), т.е. для каждого кандидата
(t, kA, kB, s, b) на состояние, соответствующее последнему экспрессу,
(27)
f (t, kA, kB, s, b) = L(t, kA, kB
,s,b),
и для любого другого (t, kA, kB , s, b) в V2 ∪ . . . ∪ Vnp
+npB
A
f (t, kA, kB, s, b) =
{
}
(28)
= max L(t,kA,kB,s,b),
min
f (t,kA,kB, s, b)
(t,kA,kB,s,b)∈W (t,kA,kB,s,b)
Учитывая мощность множества T (см. (23)), сложность данной оптимизаци-
онной процедуры составляет O((npA + npB)6).
Процедура построения расписания, доставляющего минимальное значе-
ние для (3) среди всех расписаний, оптимальных для (2), сходна с описан-
ной процедурой минимизации (2) с одним важным отличием: чтобы гаран-
тировать (14), каждый набор должен удовлетворять дополнительным усло-
виям (см. (g6) и (g7) ниже). Согласно этой процедуре n множеств V1, . . . , Vn
103
генерируются одно за другим в порядке возрастания их индексов. Анало-
гично описанному выше множество Vk, 1 ≤ k ≤ n, содержит только наборы
(t, kpA, koA, kpB , koB, s, b, α, γ), удовлетворяющие условию
kpA + koA + kpB + koB = k.
Каждый набор в множествах V1, . . . , Vn является кандидатом на состоя-
ние в искомом расписании. Чтобы быть включенным в множество, набор
(t, kpA, koA, kpB , koB, s, b, α, γ) должен обладать несколькими свойствами. Первая
группа свойств:
(g1) kεs ≤ ns,ε для ε ∈ {p, o} и s ∈ {A, B};
(g2) rs,α ≤ t и t ∈ T ;k
s
(g3) если b = 0, то kγ¯s ≥ 1;
(g4) если b = 1, то kαs + kαs ≥ 2;
(g5) если kpA = npA, koA = noA, kpB = npB, и koB = noB, то t вычисляется по (9).
Эти свойства аналогичны (p1)-(p5). Вторая группа свойств:
(g6) если α = p, то t + pA + pB ≤ dspp
+F;
k
s
(g7) если γ = p и b = 2, то t + 2ps ≤ dspp
+F
k
s
гарантирует, что полученное расписание будет удовлетворять (14).
Для того чтобы (t, kpA, koA, kpB, koB , s, b, α, γ) был выбран в качестве
кандидата на состояние, должен существовать уже выбранный набор
(t,kpA,koA,kpB,koB, s, b, α, γ) такой, что
kα
kα
kγ
(29)
= kαs - 1,
=kαs и
=kγ¯s,
s
s
s
{
kγ¯s - 1, если b = 2,
kγ
(30)
s
=
kγ¯s
иначе.
Равенства
(29) и (30) выполняют ту же роль, что (24) и (25) ра-
нее. Более точно, набор (t, kpA, koA, kpB, koB , s, b, α, γ), удовлетворяющий (g1)-
(g7), включается в множество Vkp+koA+kpB+ko , если только существует наборB
A
(t,kpA,koA,kpB,koB, s, b, α, γ), который уже включен в одно из ранее сгенери-
рованных множеств и для которого t совпадает с моментом времени, вы-
численным по формулам (5)-(8);kpA,koA,kpB,koB удовлетворяют (29) и (30);
и выполняется (26). Обозначим через W (t, kpA, koA, kpB, koB , s, b, α, γ) множество
всех таких наборов (t,kpA,koA,kpB,koB , s, b, α, γ). Тогда минимальное значе-
ние (3) на множестве всех расписаний, оптимальных для (2), может быть
записано как
min
f (t, kpA, koA, kpB, koB, s, b, α, γ),
(t,kpA,koA,kp
,koB,s,b,α,γ)∈Vn
B
где f определяется следующим образом.
Для каждого кандидата (t, kpA, koA, kpB, koB, s, b, α, γ) на состояние, соответ-
ствующее последнему экспрессу,
f (t, kpA, koA, kpB , koB, s, b, α, γ) = R(t, kpA, koA, kpB, koB , s, b, α, γ).
104
Для каждого элемента V2 ∪ . . . ∪ Vn, который не является кандидатом на
состояние, соответствующее последнему экспрессу,
f (t, kpA, koA, kpB , koB, s, b, α, γ) = R(t, kpA, koA, kpB, koB , s, b, α, γ) +
+
min
f (t,kpA,koA,kpB,koB , s, b, α, γ).
(t,kpA,koA,kpB,koB,s,b)∈W (t,kpA,koA,kpB,koB,s,b,α,γ)
Принимая во внимание мощность множества T (см. (22)), данная оптимиза-
ционная процедура имеет временную сложность O(n8).
6. Заключение
Полиномиальные алгоритмы, представленные в статье, направлены на
уменьшение прямого воздействия блокировки одного из путей на двухпутном
участке дороги, измеряемого максимальным временным смещением приори-
тетных поездов и общим (а значит, и средним) временем нахождения в систе-
ме для обычных поездов. Направления дальнейшего обобщения представлен-
ного подхода могут включать минимизацию других мер влияния блокировки;
уменьшение влияния блокировки на более широкие участки железнодорож-
ной сети; планирование работ по техническому обслуживанию, требующих
временного закрытия некоторых сегментов железнодорожной сети, и разра-
ботка быстрых аппроксимационных алгоритмов.
СПИСОК ЛИТЕРАТУРЫ
1. Cacchiani V., Huisman D., Kidd M., Kroon L., Toth P., Veelenturf L., Wagenaar J.
An Overview of Recovery Models and Algorithms for Real-Time Railway Reschedul-
ing // Transport. Res. Part B. 2014. V. 63. P. 15-37.
2. Lusby R., Larsen J., Ehrgott M., Ryan D. Railway Track Allocation: Models and
Methods // OR Spectrum. 2011. V. 33. No. 4. P. 843-883.
3. Brucker P., Heitmann S., Knust S. Scheduling Railway Traffic at a Construction
Site // OR Spectrum. 2002. V. 24. No. 1. P. 19-30.
4. Зиндер Я., Лазарев А.А., Мусатова Е.Г., Тарасов И.А. Построение расписаний
двухстороннего движения на однопутной железной дороге с разъездом // АиТ.
2018. № 3. С. 144-166.
Zinder Y., Lazarev A.A., Musatova E.G., Taracov I.A. Scheduling the Two-Way
Traffic on a Single-Track Railway With a Siding // Autom. Remote Control. 2018.
V. 79. No. 3. P. 506-523.
5. Zinder Y., Lazarev A., Musatova E.,Taracov I., Khusnullin N. Two-Station Single
Track Scheduling Problem // IFAC-PapersOnLine. 2016. V. 49. No. 12. P. 231-236.
Статья представлена к публикации членом редколлегии Ф.Т. Алескеровым.
Поступила в редакцию 02.07.2019
После доработки 15.10.2019
Принята к публикации 28.11.2019
105