Транспортное сообщение – неотъемлемая часть нашей жизни. Каждый день миллионы людей едут в школу, в университет, на работу. Общественный и личный транспорт образуют единый транспортный поток. Это постоянное движение стало одним из символов всех крупных городов. На сегодняшний день мегаполисы переполнены автомобилями, а дороги не справляются с растущим числом автомобилей. Очевидной является необходимость расширения дорожных сетей. Зачастую тяжело принять решение о расширении, не имея данных, подтверждающих достаточность применяемых мер. Проводить натурные эксперименты в данной области слишком долго и дорого. На помощь приходит компьютерное имитационное моделирование (КИМ) [3, 8].
На сегодняшний день существует множество различных методологий моделирования транспортных потоков.
В работе [1] моделирование поведения водителя определяется модификацией известного ранее алгоритма «умного водителя», при котором положение автомобиля в пространстве описывается через координату, время, скорость и длину автомобиля. Автором работы не учитывается движение автомобилей при повороте налево. В статье [6] было уделено большее внимание описанию управления и оптимизации, нежели алгоритма моделирования. Известно, что в работе использовался дискретно-событийный подход, чтобы уменьшить время исполнения программы. Авторами статьи [9] был использован подход «Узел – функция – объект» (УФО). Метод основан на алфавите элементов, связей систем, подвергающихся анализу, а также их библиотек. Транспортный поток описывается протяжённостью, количеством автомобилей в потоке, а также параметрами, запрещающими или разрешающими проезд налево/направо/прямо. В статье [12] предлагается изолировать проблемный участок дороги, намеренно ограничивая скорость автомобилей в том же потоке. У водителей, находящихся на проблемном участке, появляется больше времени, чтобы предотвратить образование пробки. В работе [5] автор предлагает применять к моделированию транспортных потоков электродинамический принцип. Основные параметры транспортного потока ставятся в соответствие силе тока, напряжению и сопротивлению. В работе [7] рассмотрена модель системы, учитывающая сужения и расширения дорожного пространства, а также предложены меры по предотвращению образования заторов в узких местах.
Самыми проблемными являются перекрёстки – участки пересечения встречных или взаимно перпендикулярных автомобильных потоков.
В настоящей работе поставлена задача создания компьютерной имитационной модели, позволяющей исследовать поведение транспортных потоков на нескольких связанных между собой перекрёстках, оценки влияния соседних перекрёстков друг на друга и транспортной ситуации на каждом из них в отдельности.
Компьютерная программа моделирует проблемные участки дороги с точки зрения образования на них очередей из автомобилей. Для моделирования очередей в работе использованы элементы теории систем массового обслуживания (СМО) [2, 4, 10]. Чтобы компьютерная модель была более точной, за основу был взят микроскопический подход [11]. Для упрощения модели и уменьшения вычислительных затрат использованы элементы теории клеточных автоматов [13, 14].
Основные элементы системы и их свойства
Основными элементами системы являются: перекрёсток, поток, автомобиль, участок пересечения потоков.
Самым крупным элементом модели является перекрёсток. Каждый перекрёсток представляет собой СМО, с двумя обработчиками очереди и четырьмя потоками заявок. Два потока обрабатываются, два – ждут. Через некоторое время обрабатываемые потоки приостанавливаются, а ожидающие попадают на обработку. В свою очередь каждый поток представляет собой n одноканальных СМО, где n – количество полос в потоке. В каждой полосе первый автомобиль обрабатывается, остальные ждут своей очереди. Основными характеристиками перекрёстка являются:
- наличие в его составе восьми потоков автомобилей: четыре потока, входящих на территорию перекрёстка, и четыре потока, выходящих из него;
- два параметра, отвечающие за время движения/ ожидания вертикальных/ горизонтальных потоков. Сумма этих параметров даёт нам время цикла работы перекрёстка;
- количество полос для движения потоков автомобилей в каждом направлении.
Следующим элементом системы является автомобильный поток. В данной работе под автомобильным потоком подразумеваются все автомобили, въезжающие или выезжающие с перекрёстка в одном направлении.
Характеристиками входящих потоков являются:
- количество автомобилей, которые должны повернуть налево;
- количество автомобилей, которые должны повернуть направо;
- количество автомобилей, которые должны проехать прямо.
В зависимости от имеющегося числа полос автомобили распределяются по полосам в соответствии со своей целью. Автомобили, находящиеся в одной полосе, образуют очередь. Автомобиль после въезда на перекрёсток не может покинуть очередь, поэтому с точки зрения теории СМО система является «системой без отказов, с неограниченным временем ожидания». В системе перекрёстков нет явного обработчика очереди, эта роль возлагается на водителя каждого автомобиля. Поэтому все типичные для обработчика заявок параметры в нашем случае перекладываются на автомобили. Вот как это проявляется в свойствах автомобиля:
- время обработки заявки в данном случае – это время, которое необходимо автомобилю, чтобы выполнить манёвр поворота или проехать через перекрёсток прямо;
- задержка между обработками заявок – время, которое обязан выждать «второй» автомобиль в очереди после отъезда «первого», чтобы избежать столкновения с ним.
Третьим важным элементом системы является участок пересечения потоков. Без него движение происходило бы в идеальных условиях, где автомобильные потоки не пересекаются друг с другом, что противоречит устройству обычного городского перекрёстка.
Алгоритм работы программы
Первым этапом работы программы является опрос пользователя. Программой запрашиваются следующие данные: количество перекрёстков, параметры, общие для всей системы, индивидуальные параметры каждого перекрёстка. На основании полученных данных создаются элементы модели системы. Происходит процесс моделирования, по окончании которого пользователю представляется отчёт о результатах моделирования.
Алгоритм создания модели системы
В первую очередь создаются перекрёстки, заполняются необходимые поля класса «перекрёсток», вызывается «конструктор потоков», в завершение процедуры вызывается «конструктор участка пересечения».
В конструкторе потоков заполняются необходимые поля, создаются полосы, по которым будет происходить движение автомобилей, создаются автомобили, которыми заполнятся полосы.
На рис. 1 представлены блок-схемы, описывающие алгоритм создания системы.
а б
Рис. 1. Описание алгоритма создания системы: а – процедура создания перекрёстка; б – процедура создания потока
Создав модель системы, программа приступает к процессу моделирования. Основным параметром в процессе моделирования является время. До тех пор, пока значение параметра времени не достигнет финальной отметки, заданной пользователем, состояние системы будет обновляться путём обновления состояния всех перекрёстков в системе.
Перед обновлением состояния перекрёстка необходимо выполнить проверку: не пора ли остановить работу текущих потоков и запустить перпендикулярные им. Если цикл светофора завершился, данные обо всех автомобилях, проехавших за этот цикл, сохраняются. Выполняется процедура обновления соответствующих потоков, в зависимости от того, какие потоки должны функционировать в текущий момент времени.
В процессе обновления состояния потока в первую очередь необходимо произвести обновление состояния участка на пересечении перед потоком. В случае, если на участке пересечения будут автомобили с предыдущей части цикла светофора, то они должны уехать в первую очередь. Лишь после этого начнут своё движение первые автомобили из потока.
Автомобиль, оказавшийся на первой позиции в очереди, во время движения своего потока должен покинуть поток. Автомобиль может начать движение, если прошло достаточно времени с момента отъезда предыдущего автомобиля.
Когда первые автомобили из потока покинут очереди, их освободившиеся места займут следующие автомобили.
Обновление состояния первого автомобиля в очереди происходит так: изменим состояние автомобиля с «ожидания» на «движение» и зафиксируем время начала движения. Эту информацию можно будет использовать при анализе результатов работы системы. Затем, в зависимости от цели автомобиля (налево/направо/прямо) и потока, в котором он расположен, сообщаем автомобилю, в какой поток он должен двигаться. Покинув поток, автомобиль сообщает время своего отъезда следующему в очереди автомобилю, чтобы он мог соблюсти должный временной интервал во избежание столкновения. Если целью автомобиля является проезд прямо или направо, автомобиль беспрепятственно проезжает. В случае, когда автомобилю нужно проехать налево, ему может препятствовать встречный поток автомобилей. В таком случае автомобиль занимает место на пересечении потоков и ждёт возможности продолжить движение. В случае ожидания на пересечении, фиксируется изменение свойств автомобиля: его состояния и времени начала ожидания.
Блок-схемы, отображающие алгоритм моделирования работы системы, изображены на рис. 2 и 3.
Созданная программа может предоставить данные для анализа результатов работы системы. Полученные данные можно использовать для оценки пропускной способности проектируемых участков дорог или действующих перекрёстков, в случае обнаружения неполадок в работе. Программа может быть запущена с новыми параметрами системы для подтверждения оптимальности новых расчетных значений.
а б
Рис. 2. Описание алгоритма моделирования: а – описание процедуры моделирования; б – описание процедуры обновления состояния перекрёстка
а б
Рис. 3. Описание алгоритма моделирования: а – описание процедуры обновления потока; б – описание процедуры обновления состояния первого автомобиля в очереди
По окончании работы программы можно отследить общее количество машин, попавших в систему, проехавших через систему, оставшихся в очередях системы. Есть возможность узнать, сколько времени в среднем проводил автомобиль в движении или ожидании, в системе или на конкретном перекрёстке. Можно получить ту же характеристику по каждому автомобилю в отдельности.
При тестировании программы на создание системы из четырёх перекрёстков (по три полосы в каждом из четырёх направлений, по шесть автомобилей в полосе) и моделировании её работы в течение 600 секунд реального времени программе понадобилась 1 секунда. При этом было использовано 2,4 МБ памяти. Больше всего памяти понадобилось для класса «Автомобиль», самого многочисленного класса в системе. Компьютерное моделирование проводилось на процессоре Intel(R) Core(TM) i5-2520M CPU @ 2.50 GHz 2.50 GHz. Загрузка процессора не превысила 30 %.
Кроме большого количества варьируемых и отслеживаемых параметров элементов системы, можно отметить её универсальность: возможность моделирования любых конкретных объектов автомобильных сетей. Предусмотрена возможность добавления дополнительного функционала и логики поведения элементов системы.
Компьютерная модель может служить базой для проведения численных экспериментов в системе и получения выходных параметров для дальнейшего анализа и обработки.