О математическом моделировании дорожной сети
В.П.Степанов
Кафедра ПО ЭВМ и ИТ МГТУ им. Н.Э.Баумана [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