УДК 519.81
РЕШЕНИЕ ЗАДАЧИ РАССТАНОВКИ ПАРКА ВОЗДУШНЫХ СУДОВ ПО РЕЙСАМ ПОЛЕТНОГО РАСПИСАНИЯ С ПОМОЩЬЮ ЦЕПОЧЕК РЕЙСОВ
Г.М. ФРИДМАН, Н.А. ЗЕНКОВА
Представлена математическая модель, описывающая процесс назначения парка воздушных судов на рейсы полетного расписания авиакомпании, основанная на использовании цепочек рейсов, проведен анализ модели, а также даны результаты расчетов для модельного и полномасштабного набора данных.
Ключевые слова: цепочки рейсов, оптимальная расстановка, целочисленное программирование.
1. Введение
Выделяют следующие этапы планирования пассажирских авиаперевозок [1, 2]:
• планирование сети маршрутов и состава парка воздушных судов (ВС): определение перспективных, стратегически важных рынков; определение необходимой доли присутствия на рынке (по емкостям, рейсам); определение наиболее привлекательного для пассажира времени вылета и прилета;
• расстановка парка ВС по рейсам: оптимальное распределение самолетов различных типов по рейсам в соответствии со спросом и техническими характеристиками топливной эффективности на данном расстоянии;
• составление цепочек рейсов и определение оптимальной последовательности полетов для каждого самолета;
• составление оптимального расписания для экипажей ВС с учетом нормативов по безопасности полетов.
До недавнего времени все четыре задачи сначала решались для стандартного дня недели, а затем расписание изменялось вручную, чтобы точнее смоделировать специфику отдельных дней недели. Особенно больших изменений требовало составление расписания на выходные. Сегодня наиболее развитые из предлагаемых на рынке решений позволяют рассматривать задачу составления расписания не только на целую неделю, с учетом особенностей каждого дня, но и на весь сезон. Естественным с точки зрения математического моделирования было бы проводить все этапы планирования совместно [1, 3], однако это в настоящее время оказывается невозможным вследствие огромных размеров возникающей оптимизационной задачи. Поэтому обычно используется итерационная процедура, часто, к сожалению, требующая возвращения на предыдущий этап из-за отсутствия допустимых (даже не оптимальных) решений на следующем.
2. Задача расстановки парка воздушных судов на базе «цепочек» рейсов
В статье рассмотрена одна из ключевых задач планирования, а именно задача оптимальной расстановки парка ВС по рейсам полетного расписания с помощью цепочек рейсов; традиционно эта задача носит название Fleet Assignment Model (FAM). Под термином «рейс» ниже понимается беспосадочный перелет из аэропорта А в аэропорт Б с заранее присвоенным уникальным номером и заданным временем вылета и прилета.
«Цепочка рейсов», на базе которой в статье решается задача FAM - это последовательность стыкующихся между собой рейсов. Рейсы в цепочке стыкуются с учетом выполнения всех норм технического обслуживания и оборотного времени и выполняются на одном самолете. Естественным критерием стыковки рейсов в цепочке служит совпадение аэропорта прилета предыдущего рейса с аэропортом вылета следующего.
Целью решения задачи БАМ является максимизация суммарной прибыли от выполнения всех запланированных рейсов при использовании ограниченных ресурсов, доступных авиакомпании (собственного парка самолетов). Входными данными служат расписание полетов, запланированное к выполнению, прогноз общего спроса на каждый из рейсов, оборотные времена (минимальное время, необходимое данному типу ВС в данном аэропорту для проведения всех технологических процедур, совершаемых между посадкой и последующим за ней вылетом), а также доходы и расходы на выполнение каждого рейса различными типами ВС. Предполагается, что расписание составлено на некий период времени (например, одни сутки) и циклически повторяется.
В практической деятельности авиакомпаний наиболее распространен эвристический метод составления цепочек, основанный на использовании ближайшей доступной стыковки для получения начального решения и дальнейшем итерационном его улучшении. В статье использован строгий математический алгоритм построения цепочек с помощью алгоритма поиска в глубину в ориентированном графе (орграфе) [4]. Пусть мы начинаем поиск с некоторой фиксированной вершины у0 , затем выбираем произвольную вершину и, смежную с у0 , и повторяем наш
процесс от и . В общем случае предположим, что мы находимся в вершине V. Если существует новая (еще непросмотренная) вершина и, и — V, мы рассматриваем эту вершину (она перестает быть новой), и начиная с нее продолжаем поиск. Если же не существует ни одной новой вершины, смежной с V, то мы говорим, что вершина V использована, возвращаемся в вершину, из которой мы попали в V и продолжаем процесс (поиск закончен, если V = Vo). Другими словами, поиск в глубину из вершины V основывается на поиске в глубину из всех новых вершин, смежных с V .
Итак, необходимо по заданному однодневному расписанию рейсов для каждого из типов самолетов составить все возможные однодневные цепочки рейсов. Однодневной будем считать цепочку «первый и последний рейс», которой начинается промежуток с 00:00 до 23:59. На подготовительном этапе полетное расписание клонируется на два дня. Далее, полученное двухдневное расписание представляется в виде орграфа, где вершины соответствуют рейсам. Между двумя вершинами есть ребро, если один самолет может последовательно выполнить два рейса (аэропорт прибытия одного рейса совпадает с аэропортом отправления второго и т.д.). Используя заранее оговоренные критерии стыковки рейсов, составляется матрица смежности этого графа, и определяются все пути от всех вершин, соответствующих рейсам первого дня, до какой-либо вершины, соответствующей рейсу из второго дня. Отбрасывая вершины, соответствующие рейсам второго дня (т.е. последнюю вершину каждой цепочки), в результате находим все однодневные цепочки рейсов. Итак, получено множество всех возможных цепочек 5 е £, состоящих из стыкующихся между собой рейсов I е Ь заданного полетного расписания Ь .
В то время как в классической формулировке задача БАМ [5] решается «на уровне рейсов», а затем из найденной оптимальной расстановки воздушного флота по рейсам определяется последовательность выполнения рейсов для каждого ВС данного типа (т. е. составляются цепочки), в альтернативном подходе изначально ставится вопрос о назначении того или иного типа ВС сразу на всю цепочку. Ниже приведена общая математическая формулировка соответствующей задачи.
Множества:
А : множество аэропортов с индексом а е А .
Ь : множество рейсов с индексом г е Ь .
Е : множество типов судов с индексом / е Е .
Т : множество всех событий вылета и прилета с индексом I е Т.
£ : множество всех цепочек рейсов с индексом 5 е £ .
¡8(/, а) : множество цепочек рейсов, оканчивающихся в аэропорту а е А , на которые назначен самолет типа / е Е .
08 (/, а): множество цепочек рейсов, начинающихся в аэропорту а е А , на которые назначен самолет типа / е Е .
Неизвестные:
Г1, если самолет типа f є F назначен на цепочку s є S
xfs = \
[0, если самолет типа f є F не назначен на цепочку s є S Каждой цепочке s є S, таким образом, соответствует столько неизвестных xfs, сколько типов самолета f є F может быть назначено для выполнения всех рейсов, входящих в данную цепочку. Проверка возможности назначения самолета типа f на цепочку s должна быть проведена непосредственно после генерирования множества всех цепочек S. Это позволит сократить общее количество переменных в оптимизационной задаче в случае, если на какие-либо цепочки невозможно назначить ВС определенного типа/типов.
Параметры:
N f : имеющееся количество ВС типа f є F .
Cap f : вместимость (емкость) ВС типа f є F .
Сf s : операционные расходы на присвоение судна типа f є F цепочке s є S .
Rf s : доход, получаемый от назначения судна типа f є F на цепочку s є S .
Функция цели:
ZZ (Rf,s - Cfs ) • xf,s ® max . (1)
sєSf єF
Функция цели - прибыль авиакомпании от назначения самолетов определенного типа на определенную последовательность рейсов (цепочку), т.е. доход от проданных билетов минус затраты на перевозку и обслуживание самолетов. Ожидаемые доходы и расходы для цепочки рассчитываются как сумма соответствующих величин для всех входящих в нее рейсов. Доход отдельного рейса i є L определяется, исходя из средней стоимости билета на него, вместимости ВС и прогноза спроса по формуле
Rf t = min(Capf, Д ) х pt, (2)
где Dt - прогноз общего количества пассажиров, желающих полететь данным рейсом (прогноз спроса); р{ - средняя цена билета на данный рейс. Цена билета умножается на минимум между вместимостью самолета и прогнозом спроса, что, естественно, определяет ожидаемое количество проданных на рейс билетов. Величина расхода для рейса і є L включает общие операционные затраты, связанные с назначением на рейс і є L судна f є F . Они состоят из расходов на
топливо, затрат на экипаж, обслуживание самолета и пассажиров, расходные материалы, амортизацию и т. п.
Ограничения:
Условие покрытия - на одну цепочку может быть назначено ВС не более, чем одного типа
Z xf,s £ 1 " є S . (3)
f єF
Условие разбиения - в оптимальной совокупности цепочек каждый рейс, может присутствовать в одной и только одной цепочке
Z Zs,sxf,s =1 "і є L (4)
где
/ • Л j?
i,s f,s
f єF sєS
[ 1, если цепочка 5 включает рейс г е Ь <7; = \
10, если цепочка 5 не включает рейс г е Ь
i,s
Условия мощности парка - количество цепочек, на которые назначен самолет данного типа, не должно превосходить количества имеющихся самолетов данного типа
2 Х/,5 £ N/ V/е Е . (5)
5еБ
Условие баланса - для любого типа самолета / е Е и любого аэропорта а е А количество
цепочек, начинающихся в данном аэропорту, должно быть равно количеству цепочек, заканчи-
вающихся в нем, при условии, что на эти цепочки назначен самолет данного типа
2 Х/,5 = 2 Х/,5 "/ е Е; "а е А. (6)
5 е ¡8(/,а) 5 е ОБ(/,а)
Исходные данные:
• полетное расписание (А, Ь, Т);
• имеющийся в наличии авиационный парк (Е, N/, Сар/ ) ;
• удельные затраты С/ г на полеты по рейсу г е Ь самолета типа / е Е ;
• доход Я/ г, полученный от назначения самолета / е Е на рейс г е Ь .
Задача (1) - (6) является задачей целочисленного программирования и может быть решена, например, методом ветвей и границ [6]. Результатом решения задачи является оптимальный, с точки зрения общей прибыли, набор цепочек рейсов, на каждую из которых назначен самолет определенного типа.
3. Сравнительный анализ предложенной формулировки задачи и возможности ее расширения
Цепочки рейсов довольно успешно используются в задачах планирования расписаний, поскольку предоставляют возможности по их интеграции, прежде всего, по совместному решению задач расстановки типов ВС по рейсам и составлению бортовых полетных планов и связок для экипажей [7]. Применение цепочек также оказалось эффективным при построении расписаний, устойчивых к воздействию случайных факторов, таких как погодные условия, поломка самолета или болезнь экипажа, забастовки персонала и т. д. [8].
В математических формулировках задач, рассмотренных в работах, связанных с использованием цепочек рейсов, в том числе и в постановке (1) - (6) данной статьи, каждая цепочка порождает столько бинарных неизвестных, сколько типов ВС может быть на нее назначено. При этом, однако, задача (1) - (6) выгодно отличается от уже существующих тем, что не содержит никаких других неизвестных, которые отвечают за стоянку ВС в аэропортах полетного расписания и т.п. [5, 7, 8].
В предлагаемой постановке условие покрытия (3) предполагает, что на цепочку назначается не более одного типа ВС, что в сочетании с условием (4) обеспечивает назначение в точности одного самолета на каждый рейс полетного расписания. Условия (5) и (6) гарантируют, что в каждый момент времени используется не более, чем имеющееся количество N/ ВС каждого типа / е Е .
Кроме того, условие (6) обеспечивает сбалансированность всего расписания. Отсутствие дополнительных неизвестных делает задачу (1) - (6) более «экономной» с вычислительной точки зрения, что чрезвычайно важно при проведении полномасштабных расчетов. Это, как уже было упомянуто, связано с тем, что в задаче, решаемой на основе цепочек, существенно увеличивается, по сравнению с «рейсовой» задачей расстановки типов ВС [5], количество неизвестных, поскольку число всех возможных цепочек много больше числа исходных рейсов расписания. Например, в проведенном в данной статье расчете полномасштабной задачи расстановки типов ВС с однодневным полетным расписанием, состоящим из 84 рейсов, было построено более 30000 цепочек, что, в свою очередь, привело к задаче целочисленного программирования, содержащей около 230000 неизвестных (число различных типов ВС, которые использовала авиакомпания, было равно 7).
Математическая формулировка задачи FAM на основе цепочек (1) - (6) предоставляет дополнительные широкие возможности по установлению ограничений при составлении цепочек, позволяющие решать значительное количество технических и экономических задач. Примером может служить условие цикличности, т.е. условие о том, что цепочка должна начинаться и заканчиваться в одном и том же пункте; это может быть базовый аэропорт или аэропорт с более выгодными коммерческими условиями длительного технического обслуживания. Широко распространен этот подход в случае, если необходимо более гибко подходить к определению стыковочного времени, или реагировать на возможности аэропортов по приему определенных типов ВС.
Кроме указанных условий, в математическую постановку задачи (1) - (6) можно добавлять различные дополнительные ограничения. Например, для авиакомпании принципиально важно, какое количество часов тот или иной тип ВС проводит в воздухе. Этот параметр, так называемый «налет», фигурирует в лизинговых контрактах. За счет управления этим параметром для разных типов ВС при формировании условий оптимизационной задачи появляется возможность более приоритетного использования одного из типов ВС.
Большой интерес представляет собой возможность включения требований по выполнению необходимых форм технического обслуживания в задачу расстановки типов ВС. Учет подобных требований имеет смысл проводить еще при генерировании множества допустимых цепочек рейсов, т.к. это значительно снижает их общее количество [7].
Авиакомпании сами выбирают наиболее удобный для них способ решения задачи расстановки типов ВС, в зависимости от собственных возможностей, приоритетов и технических нужд, при этом в основном упор делается на известные алгоритмы FIFO/LIFO. В настоящее время ни одна российская авиакомпания не имеет в своем распоряжении работающей автоматизированной системы для поиска оптимальной расстановки типов ВС, поэтому результаты работы в данном направлении будут приносить ощутимое увеличение как дохода авиакомпании, так и эффективности принимаемых управленческих решений.
4. Модельный пример
В качестве расчетного примера было использовано полетное расписание условной авиакомпании, осуществляющей рейсы между четырьмя аэропортами: CDG (Charles De Gaulle, Париж, Франция), LED (Пулково, С.Петербург, Россия), OVB (Толмачево, Новосибирск, Россия), SVO (Шереметьево, Москва, Россия). Всего в расписании содержится 22 рейса; парк ВС состоит из А320 (Airbus A320-210) - 4 борта; B735 (Boeing 737-500) - 2 борта; B772 (Boeing 777-200) - 3 борта. Все исходные данные для рейсов полетного расписания приведены в табл. 1. Указан идентификационный номер каждого рейса, аэропорты его вылета и прилета, времена вылета и прилета в формате GMT+0 (т.е. время «по Гринвичу»), а также прогноз общего пассажирского спроса на рейс.
С точки зрения покупателя спрос на рейс есть величина совершенно бессмысленная, однако для проведения расчетов прогноз спроса на рейс определялся как сумма прогнозов спроса на все маршруты, в которые данный рейс входит. Под маршрутом здесь понимается выбранная пассажиром комбинация одного либо нескольких рейсов для совершения перелета из выбранного им начального аэропорта в конечный. Зная прогнозы спроса на все указанные маршруты, несложно вычислить прогноз спроса и на данный рейс. Значения прогноза спроса на маршруты, а, значит, и на рейсы часто оказываются не целыми, а вещественными числами, так как они основаны на статистической обработке исторических данных для общего числа проданных билетов.
Табл. 2 содержит информацию по вместимости типов ВС и удельным затратам по перевозке одного пассажира на 1 км пути самолетом данного типа. Оборотные времена каждого типа ВС в каждом аэропорту полетного расписания собраны в табл. 3.
Таблица 1
Рейсы полетного расписания и прогноз спроса
Номер рейса Аэропорт вылета Аэропорт прибытия Время вылета Время прибытия Прогноз спроса
1 LED CDG 08:00 11:00 144.653
2 LED CDG 16:00 19:00 132.975
3 LED OVB 13:00 17:00 48.9623
4 LED OVB 20:00 00:00 48.9623
5 LED SVO 07:00 08:00 288.094
6 LED SVO 15:00 16:00 369.597
11 CDG LED 08:00 11:00 174.
12 CDG LED 15:00 18:00 165.
13 CDG SVO 07:00 11:00 135.
14 CDG SVO 13:00 17:00 133.5
15 CDG OVB 12:00 18:00 22.5
21 OVB LED 02:00 06:00 78.4751
22 OVB LED 10:00 14:00 89.0911
23 OVB SVO 01:00 05:00 89.2936
24 OVB SVO 11:00 15:00 53.6776
25 OVB CDG 04:00 10:00 19.4626
31 SVO LED 06:00 07:00 281.678
32 SVO LED 13:00 14:00 245.
33 SVO OVB 12:00 16:00 100.094
34 SVO OVB 19:00 23:00 109.481
35 SVO CDG 08:00 12:00 130.616
36 SVO CDG 07:00 21:00 202.294
Таблица 2 Таблица 3
Исходные данные по типам ВС Оборотное время (мин.)
Тип ВС Кол-во Удельные затраты Cap
A320 4 0.08 164
B735 2 0.0775 138
B772 3 0.077 305
Аэропорт A320 B735 B772
CDG 35 40 60
LED 40 45 55
OVB 45 50 70
SVO 40 45 60
Для выполнения расчетов по описанным выше математическим моделям был создан программный комплекс со встроенным оптимизатором. В результате для «рейсовой» модели задачи FAM найдено оптимальное решение (табл. 4). Общее количество переменных в задаче целочисленного программирования составило 124, а количество ограничений оказалось равно 115. Время счета программы составило 3.7 с на PC с процессором Intel®Core™2 Duo CPU [email protected] и RAM 2 Gb.
Таблица 4
Оптимальное решение «рейсовой» задачи FAM для модельного примера
Тип ВС Номера рейсов
A320 4, 12, 15, 24, 25, 35
B735 2, 13, 22, 33
B772 1, 3, 5, 6, 11, 14, 21, 23, 31, 32, 34, 36
Для каждого подмножества рейсов, на которые в полученном оптимальном решении назначен один и тот же тип ВС, построены цепочки стыкующихся между собой рейсов. Количество цепочек не должно превышать числа имеющихся ВС данного типа и каждый рейс подмножества должен содержаться в одной, и только в одной цепочке. В результате получено более 20 различных наборов цепочек, причем в одном случае оказалось возможным использовать только три из четырех имеющихся ВС типа А320, что, конечно же, является дополнительным преимуществом такого набора (табл. 5).
Таблица 5
Набор цепочек, полученный из решения «рейсовой» задачи БАМ
Тип ВС Кол-во ВС Цепочки рейсов
A320 4 24, 25 - 15, 35 - 12 - 4
B735 2 13 - 33 , 22 - 2
B772 3 11 - 3 , 21 - 5 - 32 - 6 - 36 , 23 - 31 - 1 - 14 - 34
Для альтернативного способа решения задачи расстановки парка ВС, основанного на предварительном построении цепочек рейсов, также было получено оптимальное решение в созданном программном комплексе. Из 22 рейсов полетного расписания было образовано 137 цепочек, что соответствует 411 неизвестным в задаче целочисленного программирования. Матрица ограничений включает 174 строки. Время расчета на том же компьютере, что был использован и в предыдущем случае, оказалось равным 0.73 с., а сам результат, т.е. оптимальный набор цепочек, совпал с указанным в табл. 5 как по расстановке типов ВС, так и по значению функции цели.
Если в качестве дополнительного условия при формировании цепочек потребовать их цикличности (замкнутости), т.е. совпадения начального и конечного аэропортов, то их количество окажется равным всего 39. Для 117 неизвестных в оптимизационной задаче определены 64 ограничения, и время счета составило менее 0.5 с. Полученный оптимальный набор цепочек отличается от предыдущего (табл. 6), а функция цели (ожидаемая прибыль, связанная с расстановкой типов ВС) уменьшилась примерно на 6%. Последнее вызвано, очевидно, значительным сужением области допустимых решений.
Таблица 6
Набор замкнутых оптимальных цепочек
Тип ВС Кол-во ВС Цепочки рейсов
A320 4 25 - 15 , 24 - 34 , 22 - 4 , 1 - 12
B735 2 35 - 14 , 11 - 2
B772 3 13 - 32 - 6 - 36 , 21 - 5 - 33 , 23 - 31 - 3
Кроме расчетов для модельного примера были проведены и вычисления оптимальной расстановки типов ВС по рейсам однодневного полетного расписания для одной из крупнейших российских авиакомпаний. В рассмотренном расписании содержалось 84 рейса, авиакомпания использовала 7 различных типов ВС. Расчет основан на реальных экономических данных и учитывает следующие операционные ограничения:
• по имеющемуся количеству ВС каждого типа;
• по емкости и дальности полета типов ВС;
• по возможности взлета/посадки типов ВС в аэропортах полетного расписания;
• по оборотному времени для каждого типа ВС в аэропортах полетного расписания.
Расчетная оптимальная расстановка типов ВС показала увеличение прибыли более чем на
25% в день по сравнению с расстановкой, реализованной в самой авиакомпании, а также привела к сокращению числа используемых в день самолетов и повышению коэффициента утилизации (отношению общего времени, в течение которого ВС данного типа находятся в воздухе, к временному интервалу рассматриваемого расписания).
5. Заключение
В статье дана математическая формулировка задачи оптимальной расстановки парка ВС по рейсам полетного расписания авиакомпании, основанной на использовании цепочек стыкующихся между собой рейсов. Проведен сравнительный анализ задачи по результатам расчетов, для модельного примера и для однодневного полетного расписания одной из крупнейших российских авиакомпаний в созданном авторами программном комплексе. Показано, что применение оптимизационных подходов к задачам составления расписаний в деятельности авиакомпаний дает высокую экономическую отдачу.
ЛИТЕРАТУРА
1. Виноградов Л.В., Фридман Г.М., Шебалов С.М. Математическое моделирование в оптимизации авиационных перевозок: перспективы развития и эффект от использования // Научный Вестник МГТУ ГА. - 2008. - № 132.
2. Barnhart C., Belobaba P., and Odoni A. Application operation research in the air transport industry. Transportation Science vol. 37, No. 4, 2003.
3. Егорова А.А., Козлов С.А. Информационные системы: методы и средства проектирования // Научный Вестник МГТУ ГА. - 2006. - № 105.
4. Липский В. Комбинаторика для программистов. - М.: Мир, 1988.
5. Smith B.C. Robust Airline Fleet Assignment. Ph.D. thesis. Georgia Institute of Technology, USA, 2004.
6. Корбут А. А., Финкельштейн Ю.Ю. Дискретное программирование - М.: Наука, 1969.
7. Barnhart, C., Boland N.L., Clarke L.W., Johnson E.L., Nemhauser G.L., Shenoi R.G. Flight String Models for Aircraft Fleeting and Routing. Transportation Science, 32, 3, 1998.
8. Ageeva Y. Approaches to Incorporating Robustness into Airline Scheduling. Masters Thesis, Operations Research Center, Massachusetts Institute of Technology, 2000.
FLEET ASSIGNMENT PROBLEM SOLUTION BASED ON FLIGHT STRINGS APPROACH
Fridman G.M., Zenkova N.A.
An approach to the fleet assignment problem solution based on flight flows generation is presented. The analysis reveals that such an approach has its own advantages which are discussed in the paper. Numerical results are presented for the model input data as well as for the real-scale data of a major Russian airline.
Key words: flight flows, optimal fleet assignment problem, integer programming.
Сведения об авторах
Фридман Григорий Морицович, 1964 г.р., окончил СПбГМТУ (1986), доктор технических наук, профессор кафедры экономической кибернетики и математических методов в экономике СПбГУЭФ и кафедры прикладной математики и математического моделирования СПбГМТУ, автор более 60 научных работ, область научных интересов - методы оптимизации, оптимизация планирования операций в авиатранспортной индустрии, механика жидкости.
Зенкова Надежда Александровна, окончила СПбГМТУ (2008), аспирантка СПбГМТУ, эксперт по управлению доходностью ЗАО «Сирена-Трэвел», автор 3 научных работ, область научных интересов -математическое программирование, методы оптимального управления, оптимизация планирования операций в авиатранспортной индустрии.