Научная статья на тему 'О математическом моделировании дорожной сети'

О математическом моделировании дорожной сети Текст научной статьи по специальности «Математика»

CC BY
579
141
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «О математическом моделировании дорожной сети»

О математическом моделировании дорожной сети

В.П.Степанов

Кафедра ПО ЭВМ и ИТ МГТУ им. Н.Э.Баумана [email protected]

Введение. Предложен алгоритм решения задачи определения оптимального и всех близких к нему маршрутов проезда от одного предприятия связи до другого предприятия в городе. Задача сведена к определению путей между двумя вершинами на формируемом графе. Для решения задачи предложена модификация алгоритма Дейкстры.

Постановка задачи. Известными для решения задачи являются: дорожная сеть города, место отправления и место назначения. Необходимо выбрать оптимальный и все близкие к нему маршруты проезда из места отправления до места назначения, которые учитывают реальную обстановку на дорогах: возможные заторы на дорогах и варианты их объезда, задержки перед светофорами на перекрестках, различные скорости движения транспорта на отдельных участках дорожной сети. В качестве критерия для выбора маршрута может служить время, пройденный путь и т. д. Свести эти критерии к одному затруднительно.

Существует ряд реализованных программ, позволяющих искать кратчайший путь по карте [1 - 4]. В рассмотренных системах используются различные критерии оптимальности пути - от критерия кратчайшего расстояния до сложных критериев оценки времени с учетом информации о пробках. В отмеченных работах в основном рассматривается алгоритмы поиска только оптимального пути. Только в работе [7] описан алгоритм поиска К маршрутов отклонения от оптимального на основе оптимального маршрута, проходящего через К вершин графа.

Математическая модель. Множество всех возможных трасс поездки по улицам города представляется в виде ориентированного графа С = (А, где А -множество вершин, W - множество дуг. Вершинам этого графа соответствуют: перекрестки на улицах города, место отправления і є А и место назначения ] є А. Вершины графа - это места дорожной сети, где имеются возможности выбора дальнейшего маршрута поездки по городу. Ребрам графа соответствуют магистрали и улицы между двумя вершинами. Для ребер графа задаются матрица расстояний Ь = |18а| и матрица возможных скоростей движения С = |с8Й|, 8, d є А. Для каждой

вершины графа 8 є А с учетом наличия или отсутствия светофора задаются значения г8 - время задержки на перекрестке. Тогда ^ - время движения по ребру (8, d) определяется по формуле

tsd сsd + ^8, 8, d є А. (1)

Для заданных начальных и конечных вершин графа і и ] требуется определить маршрут проезда Кц, затрачивающего минимальное время, а также множество всех близких к оптимальному маршрутов, которые отличаются от оптимального на заданную величину Е [5]. Определение множества близких к оптимальному маршрутов позволяет при окончательном выборе учесть дополнительные неформализованные требования.

Алгоритм решения. Алгоритм решения задачи состоит из двух этапов. Определения кратчайшего по времени маршрута проезда Кц сводится к решению известной задачи кратчайшего пути на неориентированном графе. Для ее решения применяются известный алгоритм [6], основанный на расстановке пометок на вершинах графа. Для определения множества близких к оптимальному решений применяется алгоритм, основанный на методе последовательного анализа вариантов [7] и использовании правила отбраковки бесперспективных вариантов до получения окончательного решения.

В алгоритме Дейкстры для поиска кратчайшего пути вершинам графа приписывают временные или постоянные пометки. Пометки определяют для вершины верхнюю границу длины пути от 1 вершины к текущей. Величины временных пометок вершин постепенно уменьшаются. Значение пометки определяет возможную длину пути от начальной до этой вершины. На каждом шаге алгоритма только одна из пометок с минимальным значением на рассматриваемом уровне выбирается в качестве постоянной. Это значит, что значение пометки является длиной кратчайшего пути из 1 вершины в текущую вершину.

Введем следующие обозначения: У(8) - множество ребер, входящих или выходящих из вершины 8 (У(8) с W ); |У(8)| - мощность множества; р^ - пометки вершины 8 6 А, ] = 0, 2, ...,|У(8)| - 1; В - множество вершин с постоянными пометками для ] = 0.

Алгоритм первого этапа поиска оптимального маршрута состоит из шести шагов:

Шаг 1. Присвоить пометке начальной вершины р10 = 0 и считать постоянной. Для всех остальных вершин 8 6 А\{1} установить р80 = <х> и считать эти пометки временными. Установить d = 1; В = {1}. Обновить метки.

Шаг 2. Для всех вершин 8 е У^) вычисляются новые значения

Рч = р^ + , ] = 0, 2, ..., |У(8)| -1. (2)

Таким образом, для каждой вершины будет определено время проезда для всех возможных путей от исходной вершины 1 до вершины 8 .

Для ] = 0 временные пометки вычисляются, используя выражение

Р80 = Ш1П[ р$0 , ( Рd0 + tds )] (3)

и превращаются эти пометки в постоянные.

Шаг 3. Среди всех вершин с временными пометками 8 е А\В найти такую вершину к, для которой значение пометки минимально рк0 = т1п р80 .

Шаг 4. Считать пометку рк0 постоянной и установить d = к. В множество В добавить вершину к.

Шаг 5. Если d Ф ^ то перейти к шагу 2. Если d = ^ то рк0 является длиной

__ и __ Тк • •

кратчайшего пути Кц из вершины 1 в вершину ].

Шаг 6. Если все пометки всех вершин постоянные, т.е. В = А, то на этом определение времени оптимального пути завершается.

После этого происходит восстановление маршрута проезда.

На втором этапе алгоритма задается допустимое значение отклонения от

оптимального значения Е. На первом этапе, в отличие от алгоритма Дейкстры, для

каждой вершины в зависимости от мощности множества У(8) вычисляются по формуле (2) и запоминается не одно, а ряд значений пометок. Затем для каждой вершины отбрасываются те значения пометок, для которых выполняется соотношение

Рч > (Рк0 + Е), 8 є У(а), ] = 0, 2, |У(8)І - 1. (4)

ТЛ __ и __ __ V-»

В случае дальнейшего продолжения получения вариантов путей из таких значений пометок, их значения будут только возрастать.

Схема работы алгоритма для примера. На рис. 1 приведена схема работы изложенного алгоритма для примера графа, состоящего из 9 вершин и 20 ребер. Приведенные для всех вершин ряд значений чисел внутри выделенных прямоугольников

Рис. 1. Схема работы алгоритма

представляют собой ряд значений пометок, которые получены на втором шаге алгоритма. На первом месте в этом ряду располагаются пометки, получаемые по алгоритму Дейкстры. Эти пометки выделены жирным шрифтом. Полученный оптимальный путь с длиной 7 проходит через вершины 1-7-4. Для поиска близких к оптимальному маршрутов задается E = 27. Зачеркнутые значения величин пометок означают отброшенные варианты вариантов путей согласно неравенству (4). В конце работы алгоритма получены два близких к оптимальному маршрута с длинами б и 34, проходящие, соответственно, через вершины 1-2-7-4 и 1-8-5-4.

Программная реализация алгоритма. Алгоритм решения задачи реализован в виде программного комплекса (ПК) на языке JAVA для IBM PC. Программный комплекс предназначен для работы через систему меню с использованием мыши. Меню включает в себя следующие пункты: загрузка файла карты, определение узлов графа на карте, построение ребер графа, удаление узлов, удаление ребер, поиск путей, сохранение и удаление найденных решений.

Карта улиц города Москвы загружается из внешнего файла. Исходные данные генерируются на основе данных программы Mosmap [8]. Затем с помощью указателя мыши на перекрестках улиц назначаются вершины графа. При этом имеется возможность ввода характеристики вершин графа - перекрестков: название и время задержки. После этого указывается схема соединений вершин графа между собой для

дорожной сети города. Далее клавишами мыши указываются начальная и конечная вершины ребра. С помощью контекстного меню можно задать характеристики дорог -ребер графа: название улицы, длина, средняя скорость движения. ПК дает возможность оперативного изменения характеристик вершин и ребер графа на карте города, а также показать карту города с требуемой подробностью. Главное окно ПК при его запуске имеет вид, приведенный на рис. 2.

В ПК реализованы три алгоритма: алгоритм Дейкстры, алгоритм нахождения К кратчайших маршрутов и предлагаемый алгоритм нахождения всех Е близких к оптимальному маршрутов.

В верхней части окна расположено главное меню и кнопка «Режим редактирования». В центре окна находится карта, а справа - окно с закладками «Результаты» и «Свойства». В расположенном внизу окна статус-строке отображается информация о находящей рядом с курсором мыши дороге и время поиска оптимальных маршрутов.

Главное меню ПК содержит следующие пункты:

1 Файл - «Загрузить» - открывает диалоговое окно для выбора файла карты.

2 Файл - «Сохранить» - сохраняет текущий граф карты.

3 Вид - «Очистить маршрут» - стирает отображенный на карте маршрут.

4 Вид - «Показывать расстояния» - для каждого участка дороги отображает эасстояние или время движения с заданной на этом участке скоростью.

Г*>1 Карта ______________________________________________ЕММ

5 Поиск пути - «Переключатель расстояние» - при выбранном переключателе параметром отображения на карте или поиска путей является расстояние.

Файл Вид Поиск пути

Результаты Свойства

Перекресток: ГОЛЬЯНОВСКИМ ПР., ГОСПИТАЛЬНЫМ ВАЛ УЛ., СЕМЕНОВСКИИ ВАЛ УЛ.

Рис. 2. Главное окно программного комплекса

6 Поиск пути - «Переключатель время»- при выбранном переключателе параметром отображения на карте или поиска путей является время.

7 Поиск пути - «Алгоритм Дейкстры» - ищет кратчайший путь между 2-мя точками, поставленными на карте.

8 Поиск пути - «К кратчайших путей» - выводит диалоговое окно для запроса требуемого количество путей и производит поиск маршрутов между двумя точками.

9 Поиск пути - «Е близкие к оптимальному маршруты» - выводит диалоговое окно для запроса значение Е и производит поиск маршрутов между двумя точками.

Кнопка «Режим редактирования» служит для перевода карты в режим

__ ТЛ и V-»

редактирования - поиска пути. В режиме поиска маршрута правой кнопкой мыши определяется точка начала поиска, которая выделяется на карте синим кружком, а левой кнопкой мыши - точка окончания поиска, отображаемая на карте зеленым кружком. В режиме редактирования пользователь может выбрать дорогу для редактирования, которая отображается на карте зеленым цветом. Все характеристики дороги можно изменять. Чтобы изменения были доступны и для последующих запусков программы, их нужно сохранить в файле.

Вычисленные возможные варианты маршрутов проезда между этими пунктами различными цветами выделяются на карте.

На рис. 3 приведен пример представления результатов поиска маршрутов

Рис. 3. Представление результатов поиска маршрутов

Проведенные расчеты и анализ полученных результатов. С помощью разработанного ПК проведены расчеты с целью исследования производительности алгоритмов и зависимости скорости поиска от входных данных. При проведении всех расчетов задавались параметры: К = 5, Е = 1 км.

Расчеты зависимости времени поиска маршрутов от числа вершин в кратчайшем пути проводились на карте города Москвы, представляющей собой граф с 12214 вершинами и 35598 ребрами. Была выбрана одна начальная вершина и

несколько конечных вершин на разных расстояниях от начальной вершины. Для каждой такой пары вершин произведен поиск маршрутов с помощью трех алгоритмов, причем каждый из алгоритмов запускался несколько раз, а время поиска, измеряемое в миллисекундах, было усреднено и сведено в таблицу 1.

Результаты расчетов показывают, что алгоритм поиска всех Е близких к оптималь-ному маршрутов имеет вполне приемлемую производительность. Эффективность алгоритма объясняется тем, что граф дорожной сети города является существенно неполным.

Табл.1. Зависимость времени поиска от числа вершин в кратчайшем маршруте

Число вершин 35 67 88 117 172

Алгоритм Дейкстры 0,01 0,03 0,13 0,24 0,27

К маршрутов 3,94 7,41 27,34 66,41 117,63

Е близкие 0,36 0,99 4,37 5,78 6,93

При этом полученное оптимальное решение позволяет эффективно отбрасывать те частичные решения, для которых не выполняются условия (4). Значительное возрастание времени поиска К маршрутов происходит потому, что алгоритм осуществляет поиск всех возможных отклонений по вершинам предыдущего маршрута и только после этого выбирает нужное число маршрутов.

Для реализованных алгоритмов исследовались зависимости времени поиска маршрутов от размерности графа. Для проведения этих расчетов использованы четыре карты Москвы разного размера:

• весь город - граф с 12214 вершинами и 35598 ребрами;

• центр города внутри третьего транспортного кольца - граф с 4756 вершинами и

14446 ребрами;

• центр города в пределах Садового кольца - граф с 2002 вершинами и 6116

дугами;

• южная часть центра города - граф с 186 вершинами и 453 дугами.

Для расчетов выбраны две вершины, присутствующие на всех четырех картах. Произведен поиск пути между этими вершинами на каждой из четырех карт с помощью трех алгоритмов. Усредненное время поиска маршрутов при проведенных многочисленных расчетах, измеряемое в секундах, сведено в таблицу 2.

Табл. 2. Зависимость времени поиска маршрутов от размерности графов

Число вершин 186 2002 4756 12214

Алгоритм Дейкстры 0,005 0,006 0,009 0,012

К маршрутов 0,056 0,41 0,954 2,348

Е близкие 0,058 0,28 0,505 0,548

Полученные расчеты показывают, что время работы всех трех алгоритмов зависит нелинейно от числа вершин графа. Результаты расчетов показывают, что изложенный в работе алгоритм нахождения всех Е близких к оптимальному маршрутов является весьма эффективным для графов дорог значительных размеров.

Выводы

1. Предложена математическая модель задачи выбора оптимального и всех близких к нему маршрутов в виде задачи дискретного программирования и алгоритм ее решения. Определение близких к оптимальному решений позволяет при окончательном выборе маршрута учесть дополнительные неформализованные требования.

2. Предложенный алгоритм, являющийся модификацией известного алгоритма Дейкстры, реализован в виде программного комплекса на языке JAVA. Результаты проводимых расчетов представляются в удобном виде на электронной карте города.

3. Проведенные расчеты подтвердили, что алгоритм Дейкстры более эффективен для поиска оптимального пути. Предлагаемый алгоритм поиска всех близких к оптимальному маршрутов показывает хорошую производительность для графов дорог достаточно больших размеров.

Литература

1. www.mapquest.com

2. www.pocketgis.biz

3. www.mobimap.ru

4. www.auto-sputnik.ru

З. Степанов В.П. О математическом моделировании дорожной сети города для выбора маршрута проезда // Тезисы докладов научной конференции МГТУ имени Н.Э. Баумана.- М, МГТУ, 200З. - c.110-111.

6. Кристофидес Н. Теория графов. Алгоритмический подход. - М.: Мир, 197В. -432 c.

7. Моисеев Н.Н. Численные методы в теории оптимальных систем. - М.: Наука, 1971. - 424 c.

В. www.mosmap.ru

i Надоели баннеры? Вы всегда можете отключить рекламу.