Математические структуры и моделирование 2015. № 1(33). С. 56-62
УДК 51.74
моделирование транспортных сетей с помощью раскрашенных взвешенных сетей
петри
В.М. Кинько
студент, e-mail: [email protected] И.П. Бесценный
доцент кафедры кибернетики, к.ф.-м.н., e-mail: [email protected]
Омский государственный университет им. Ф.М. Достоевского
Аннотация. Большинство существующих методов в области математического моделирования транспортных потоков используют непрерывные функции от времени. Дискретизация процесса движения по координатам и по времени значительно упрощает процесс симуляции поведения автомобилей на перекрёстках, а при достаточно малом шаге дискретизации погрешность симуляции мала. Известны способы дискретного моделирования движения через управляемый светофором перекрёсток при помощи раскрашенных сетей Петри. Создаваемая при этом модель имеет громоздкое математическое описание. Существуют программные средства для анализа и симуляции произвольных сетей Петри, они из-за своей универсальности имеют сложный интерфейс. В данной статье предлагается следующий подход к имитационному моделированию динамики транспортного потока: по заданным географическим данным заранее строится раскрашенная сеть Петри с естественными ограничениями. Параметры этой сети считываются разработанной авторами относительно простой программой из файла конфигурации. В интерактивном режиме задаются интенсивности транспортных потоков разных направлений и режимы работы светофоров на каждом перекрёстке. После запуска симуляции сети Петри можно оценить загруженность автомобилями различных участков транспортной сети. Программа имеет простой интерфейс и позволяет улучшить организацию дорожного движения путём «полуавтоматической» оптимизации светофорных циклов. Запуская симуляцию при разных режимах работы светофоров, пользователь выбирает оптимальный.
Ключевые слова: транспортная сеть, сеть Петри, графы, моделирование,
C++.
В последние десятилетия во многих крупных городах исчерпаны или близки к исчерпанию возможности экстенсивного развития транспортных сетей. Поэтому актуальность улучшения организации движения не подлежит сомнению. Самый распространённый способ регулирования городского движения — определение оптимального режима работы светофоров. Из двух вариантов —
Математические структуры и моделирование. 2015. № 1(33)
57
моделирование движения транспорта по заранее предсказанным интенсивностям потоков или непосредственная адаптация работы светофора по фактически измеренным интенсивностям, решение первой задачи считается более перспективным.
Хороший обзор существующих методов моделирования транспортных потоков содержится в [1]. Почти все они используют непрерывные функции от времени, что влечет большие затраты компьютерных ресурсов на вычисления. Создание дискретных моделей транспортных потоков на основе клеточных автоматов [2] сопряжено с трудностями неоднородности и анизотропности среды. Поэтому наилучший метод дискретного моделирования транспортной сети заключается в использовании раскрашенных сетей Петри. С теоретическими основами сетей Петри можно ознакомиться в [7,8]. Дискретизация процесса движения по координатам и по времени значительно упрощает процесс компьютерной симуляции поведения автомобилей на перекрёстках, а при достаточно малом шаге дискретизации погрешность симуляции мала.
В роли узлов сети выступают "машиноместа" — отрезки дороги, которые могут поместить на себе одну машину. Машины моделируются фишками сети Петри. Различные цвета фишек будут отображать различные их маршруты. Важное ограничение: каждая вершина может содержать не больше одной фишки одновременно, так как в каждом отрезке дороги не может находиться более одной машины в каждый момент времени. Это называется свойство "безопасности" сети.
Вершины переходов сети Петри задаются условиями для перехода из одного узла сети в другой. Разрешение перехода зависит от сигнала светофора. Так как переход с одного отрезка дороги занимает определённое время, то и соответствующие дуги будут иметь задержку, равную времени перехода. Значит, эта сеть будет временной.
Светофор — то также сеть Петри, но не раскрашенная. Её единственная фишка отображает текущее состояние светофора, вершины сети светофора связаны с некоторым набором вершин дорожной сети. Когда фишка переходит в очередную вершину светофора, его состояние меняется — переходы с одних узлов дорожной сети блокируются, а с других — разрешаются. Сеть светофора тоже временная потому, что переходы не происходят мгновенно, а по истечении какого-то времени. Светофор в данной модели блокирует только узлы тех дорог, с которых поток машин направлен внутрь перекрёстка, но не блокирует те узлы, которые выводят машины из перекрёстка, как показано на рисунке 1.
Подробное математическое описание раскрашенной временной сети Петри на примере одного перекрёстка приведено в [3]. Существуют программные средства для анализа и симуляции произвольных сетей Петри, например, [9]. Но они из-за своей универсальности имеют сложный интерфейс.
В данной статье предлагается следующий подход к имитационному моделированию динамики транспортного потока: по заданным географическим данным заранее строится раскрашенная сеть Петри с естественными ограничениями, которые способствуют упрощению модели. Параметры этой сети считываются разработанной авторами относительно простой программой из файла конфи-
58 В.М. Кинько, И.П. Бесценный. Моделирование транспортных сетей...
гурации. Заложенные в модель принципы позволяют масштабировать её на произвольное число идущих друг за другом перекрёстков.
Дорожная сеть — это два класса объектов: дороги и перекрёстки. Дорога состоит из левых и правых полос. Полосой называется некоторое количество неразрывно связанных мест, где может находиться машина. Большинство автомобилей умещается с достаточным зазором в прямоугольнике 3 на 6 метров. Длинные автобусы и грузовики будут в модели занимать 2 или 3 таких прямоугольника. Исходя из средней скорости движения в 40 км/ч, достаточно выбрать шаг дискретизации времени равным 0,25 секунд. В начале полосы могут находиться особые узлы, производящие и уничтожающие машины, такие узлы зовутся краевыми. Краевые узлы отмечены на рисунке 1 цветом — производящие зелёным, уничтожающие — красным.
Перекрёсток — несколько узлов, соединяющих между собой от двух до четырёх дорог. Эти узлы обеспечивают достижимость каждой полосы, направленной из перекрёстка, из каждой полосы, направленной в перекрёсток.
После построения дорожной сети цветам меток назначаются типы машин. Тип машины определяется её маршрутом. Каждый тип соответствует одному маршруту по кратчайшему пути от одного краевого узла (производящего) до другого (уничтожающего).
На каждом производящем краевом узле создаётся план генерации, который набору типов машин, создающихся в данном узле, ставит в соответствие набор времён со средним распределением. Каждый раз, когда в симуляции проходит заданное время, на узле будет генерироваться машина данного типа. Также можно задать диапазон времени, за которое в этом узле появляется машина.
Во время работы программы диапазоны времени для краевых производящих узлов, диапазоны времени работы режимов светофора и разрешённые направления движения на перекрёстке при каждом режиме можно изменять для
Математические структуры и моделирование. 2015. № 1(33)
59
того, чтобы более детально проанализировать, как будет работать дорожная сеть при данных нагрузках. Процесс симуляции можно приостановить, чтобы оценить загруженность машинами на различных участках дороги и изменить соответствующие значения для краевых узлов и светофоров.
Для симуляции рассматриваемой модели был создан программный продукт на языке C++ с использованием графической библиотеки HGE.
HGE — это лёгкая в изучении, но тем не менее очень эффективная библиотека для отображения 26-графики с аппаратным ускорением. Она задействует в своей работе DirectX 8.0, запускается даже на старых видеокартах и может использоваться вместе с любым компилятором C++. Преимущества HGE состоят в удобной и полной документации, чёткой направленности на 26-графику и свободной лицензии The zlib/libpng license, что делает её свободной для любого (даже коммерческого) использования [5,6].
В качестве исходных данных для построения дорожной сети используется файл layout.txt. Он имеет следующий формат:
• От первой строки до строки, начинающейся со слова [roa6] — комментарии.
• После строки, начинающейся со слова [roa6] и до строки, начинающейся со слова [junction] — описание дорог сети. В описании один параметр отделяется от другого пробелом или символом табуляции. Параметры описываются в следующем формате:
- Имя_дороги — Определяет имя дороги для отображения в симуляторе. Составляет 10 или менее символов, может включать в себя символы, цифры, латинские буквы. Не может включать в себя пробелы. Должно быть уникальным.
- Длина — до трёх цифр, задаёт длину всех полос данной дороги.
- Правых_полос — одна цифра, определяет количество правых полос.
- Левых_полос — одна цифра, определяет количество левых полос.
- Является_ли_граничной — при установке знака «+» на одном из концов дороги узлы будут преобразованы в краевые — на правых полосах в производящие машины, на левых — в уничтожающие.
• После строки, начинающейся со слова [junction] и до конца файла — описание параметров перекрёстков сети. В описании один параметр отделяется от другого пробелом или символом табуляции. Параметры описываются в следующем формате:
- Дорога1 Дорога2 ДорогаЗ Дорога4 — имена дорог, образующих перекрёсток, должны совпадать с именами дорог из секции [roa6]. Имена четвёртой или третьей и четвёртой дорог могут отсутствовать, в таком случае их можно заменить пробелами или символами табуляции.
60 В.М. Кинько, И.П. Бесценный. Моделирование транспортных сетей...
- Имеет_ли_светофор — при установке знака «+» на перекрёсток будет установлен светофор, в другом случае создастся неконтролируемый перекрёсток.
- Продолжительность_желтого — до трёх цифр, задаёт время жёлтого сигнала светофора. Между фазами светофор на некоторое время включает жёлтый свет — блокирует все дороги для въезда и даёт время машинам на перекрёстке выехать, чтобы освободить место для нового входного потока.
- Зеленый_влево Зелёный_вверх Зелёный_вправо Зеленый_вниз — до трёх цифр, задаёт время зелёного сигнала для каждой из четырёх фаз, соответствующей каждой из четырёх дорог.
- Зеленый_для_двух_одновременно — при установке знака «+» светофор будет открывать для движения не одну дорогу, а две — соответствующую фазе и противоположную ей.
После заполнения файла layout.txt и запуска программы файл будет считан и переведён во внутренний формат. Программа оперирует различными сущностями, представленными на рисунке 2. По данным из этого файла будет построена дорожная сеть, в ней будут проложены маршруты для машин по алгоритму Беллмана-Форда [4].
Рис. 2. Схема связей сущностей в программе
После построения маршрутов и создания дорожной сети программой будет отображён интерфейс, показанный на рисунке 3. Чёрными линиями обозначаются дороги, квадратами на пересечении дорог — перекрёстки. Квадраты на краях дороги — краевые узлы. При наведении на один из узлов или перекрёстков он выделяется зелёным цветом. На рисунке 3 для примера выделен управляемый светофором перекрёсток. На экране отображается детальная информация о загруженности перекрёстка и прилежащих дорог. Также отображается
Математические структуры и моделирование. 2015. № 1(33)
61
текущий сигнал светофора и разрешённые при данном сигнале направления движения для каждой дороги. Значения времени действия сигналов светофора и разрешённых направлений для каждой дороги можно изменить с помощью стрелок клавиатуры. При возникновении конфликта направлений программа автоматически его разрешает в пользу последнего выбора пользователя. Симуляцию можно начать и приостановить нажатием клавиши пробела.
JUNCTION □
EOAD PUSHKINA , LENGTH I □ , С А Е 5 I Е□А□ MIEA , LENGTH I □ , С А Е 5 I Е □ А □ PUSHKIN ДЕ .. LENGTH ID.- С A Е 5 □
Е □ А □ MIEP2, LENGTH ID.- С A Е 5 I
□N JUNCTION = □
CUEEENT LIGHT РНА5Е = □
LIGHT PHASE I/В:
YELLOW TIME 30
ALL PHA5E TIME = I BO LEFT EDAD = WN WE W5
UP EDAD = NONE
EIGHT EOAD = NONE
DOWN EOAD = 5 E
LIGHT PHA5E Е/Б:
PAUSED
Рис. 3. Интерфейс программы при выделенном перекрёстке
В первой версии программы симулируются только однополосные двусторонние дороги. Перекрёсток может включать в себя от двух до четырёх дорог. Тем не менее созданная программа симуляции микроскопической имитационной модели дорожной сети с помощью временных раскрашенных сетей Петри является важным шагом на пути к созданию системы управления трафиком.
Литература
1. Швецов В.И. Математическое моделирование транспортных потоков / Институт системного анализа РАН, Москва, 2003 г. 52 с. URL: http://www.isa.ru/ transnet/TrafficReview.pdf.
2. Лобанов А.И. Модели клеточных автоматов. Московский физико-технический институт, 2010 г. URL: http://crm.ics.org.ru/uploads/crmissues/kim_ 2010_2_3/crml0304.pdf.
62 В.М. Кинько, И.П. Бесценный. Моделирование транспортных сетей...
3. Mariagrazia Dotoli, Maria Pia Fanti. An urban traffic network model via coloured timed Petri nets. Dipartimento di Elettrotecnica ed Elettronica, Politecnico di Bari, 27 p. URL: http://dee.poliba.it/labcontrolli/file_pdf/Wodes04. pdf.
4. Bellman R. On a Routing Problem // Quarterly of Applied Mathematics. 1958. Vol 16, N. 1. C. 87-90.
5. The zlib/libpng License (Zlib)| Open Source Initiative. URL: http://opensource. org/licenses/Zlib.
6. Haaf’s Game Engine — hardware acclerated 2d engine. URL: http://hge. relishgames.com/.
7. Бурков B.H., Новиков Д.А. Элементы теории графов. URL: http://www.mtas. ru/start/t_garf.pdf.
8. Питерсон Дж. Теория сетей Петри и моделирование систем. М.: Мир, 1984. 264 с.
9. К. Jensen, L.M. Kristensen, L. Wells. Coloured Petri Nets and CPN Tools for Modelling and Validation of Concurrent Systems. International Journal on Software Tools for Technology Transfer. June 2007. Volume 9, Issue 3-4. P. 213-254.
traffic network modeling with timed coloured petri nets
V.M. Kinko
Student, e-mail: [email protected]
I.P. Bestsennyi
Associate Professor, Ph.D. (Math.), e-mail: [email protected] Omsk State University n.a. F.M. Dostoevskiy
Abstract. Program based on graph approach to traffic network modeling allows to do micro-simulations, predict traffic jams and plan traffic lights schedule.
Keywords: traffic network, petri nets, graphs, modeling, C++.