Метод анализа транспортной сети для выявления узких мест

Метод анализа транспортной сети для выявления узких мест

Ахмедиярова А. Т., Утепбергенов И. Т., Касымова Д. Т. Институт информационных и вычислительных технологий Алматы, Казахстан i.utepbergenov@gmail.com

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

Ключевые слова: дорожная сеть города, модель дорожной сети, потоковые данные, пропускная способность, перекресток, ориентированный мультиграф.

Введение

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

Сегодня имеется обширная литература по изучению и моделированию автотранспортных потоков. Несколько академических журналов посвящены исключительно динамике автомобильного движения. Наиболее авторитетны Transportation Research, Transportation Science, Mathematical Computer Simulation, Operation Research, Automatica, Physical Review E, Physical Reports. Количество публикуемых статей исчисляется сотнями.

Вопросам разработки и исследования эффективности различных методов управления транспортными потоками (ТП), закономерностям их поведения на улично-дорожной сети (УДС) посвящены работы Д. Дрю, Х. Иносе, Т. Хама-ды, I. Gaishun, Т. Х. Кормена [1-4]. В последние десятилетия в России в практике управления потоками на улично-дорожной сети города накоплен значительный опыт, научные и методологические основы которого обобщены в работах В. В. Зырянова, В. Т. Капитанова, Г. И. Клинков-штейна, Ю. А. Кременца, М. П. Печерского, М. В. Яшиной и других [5, 6]. Вопросам нахождения интегрального максимального потока транспортной сети мегаполиса посвящены работы Жогаля С. И., Максимея И. В., Зайченко Ю.П], Полякова К. Ю., Швецова В. И., Сукача Е. И. и других [7-11]. Анализ литературных источников по управлению транспортными потоками [1-6, 11, 12], аналитических моделей исследования операций [7, 8, 13] и теории автоматического управления [8, 9] позволил обосновать возможность применения имитационного моделирования для исследования динамики транспортных потоков региона [11, 14]. На основе

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

Постановка задачи

Требуется провести поток M из пункта S в пункт T за время, не превышающее Time. Если это невозможно сделать из-за пробок на дорогах, то выявить эти места и передать на выход. Скорость всех машин усреднена.

Для решения задачи вводятся следующие данные:

1) дорожная сеть города - дороги, перекрестки (обычные), перекрестки со светофорами, кольца;

2) параметры дороги:

а) Pmax(i, j)eR+ - максимальная пропускная способность дуги (i, j);

б) Preal(i, j)eR+ - реальный усредненный за период времени Time поток;

в) zerotime(i, j)eR+- время прохождения дуги, если на ней нет ни одной машины;

3) 5е(0,1) - светофорный параметр (для каждого перекрестка свой), обозначающий, какую часть времени какой свет горит (соответственно, другой свет горит 1 - 5 времени);

4) параметры кольца:

а) Circle_numbereZ+ - число входящих (исходящих) в кольцо дорог;

б) CirclemaxeR+ - максимальная пропускная способность кольца;

в) Circlereal.1, ..., Circlereal.Circle_numbereR+ - реальные усреднённые за период времени Time потоки между 1-й исходящей дорогой и 2-й, между 2-й и 3-й, ..., между Circle_number и 1-й;

г) Circletime.1, ..., Circletime.Circle_numbereR+ - по аналогии с zerotime(i, j) и Circlereal;

5) потоковые данные:

а) S - пункт отправки потока;

6) T - пункт принятия потока;

в) MeZ+- величина потока (сколько машин подается в точку S);

г) TimeeR+- время, которое не должен превысить поток из S в T.

Теоретическая модель

В качестве модели используется ориентированный взвешенный мультиграф [4, 11, 12, 14]. Каждая дорога - это

дуга графа, каждый перекрёсток без светофора - вершина. Перекрёсток со светофором и кольцо - это более сложные конструкции, которые, тем не менее, приводятся к первым двум (дорога, перекрёсток без светофора) следующим образом [15, 16].

Перекрёсток со светофором. Изначально перекрёсток без светофора - обычная вершина (за исключением того, что ей приписан параметр 5), которая преобразуется в полный граф К4, как показано на рис. 1.

Рис. 1. Преобразование перекрёстка со светофором

Пропускная способность Ртах(1, j) каждой из этих шести дуг равна минимуму пропускной способности инцидентных основных дуг (не красного цвета) [15]. Так как светофор горит 5 времени в одну сторону и (1 - 5) - в другую, то, соответственно, реальные пропускные способности будут 5 • Ртах и (1 - 5) • Ртах (рис. 2).

Усредненный поток Ргеа1(1, j) каждой дуги равен 0 (будем считать, что машины проходят перекресток мгновенно). Соответственно, zerotime (1, j) из предыдущего предположения тоже равен 0.

Кольцо. Пусть дано кольцо. Тогда его можно преобразовать под предлагаемую модель, как показано на рис. 3.

Рис. 3. Преобразование кольца

В результате получим структуру в рамках простых вершин и дуг. В качестве Ртах(1, j) берем С1гс1етах. В качестве Ргеа1(1, 1+1) и zerotime(i, 1+1) берем С1гс1егеа1л и С1гс1ейтел, где рассматривается путь между 1-й и 1+1-й дорогами. Чтобы

анализировать движение, нам еще потребуется специальная функция для расчета времени проезда единицы потока по данной дуге [7, 8].

Функция для расчета времени проезда выбранного маршрута. Предлагаемая функция время прохождения единицей потока данного участка (дуги) выглядит следующим образом:

h

Она получает на вход пропускную способность дуги, усредненный поток и время, которое бы потребовалось единице потока, чтобы проехать по этой дуге, будь она пуста (нет других машин). Эта функция носит эмпирический характер и может задаваться многими способами. При реализации алгоритма была использована формула [9, 17]

h

Pmax

Разработка алгоритмов и программ

Предлагаемый алгоритм по входным данным будет проверять возможность пропуска данного потока пунктами (из вершины S в вершину T) за время, не превышающее данное. Алгоритм на выходе будет либо выдавать, что поток проходит, либо - если это невозможно - выявлять пути (Memory. стоимость) и конкретные перекрёстки (список TrafficWay, по структуре аналогичный Memory^^), на которых возникают заторы, мешающие успешному проезду заданного потока в заданное время.

Алгоритм TrafficWay

1 шаг. Используем алгоритм Mflow, в котором:

а) в качестве начального и конечного пунктов берем вершины S и T;

б) в качестве c;j берем Pmax(i, j);

в) в качестве cost(i, j) берем h (Pmax(i, j), Preal(i, j), zerotime(i, j));

г) в качестве М берем Time.

2 шаг. Преобразуем полученный в предыдущем шаге список в

Memory.стоимость = round (Time - Memory.стоимость) + + 1.

Затем получаем F как сумму всех Memory.стоимость.

3 шаг. Полученный на втором шаге максимальный поток F сравниваем с M:

а) если M <= F, то на выходе алгоритм завершает работу с выводом «Успех»;

б) если M > F, то переходим к 4-му шагу.

4 шаг. Берем первый путь из списка Memory^^ и начинаем по нему идти:

а) берем первую дугу - переходим к пункту «б»;

б) сравниваем Preal(i, j) текущей дуги с суммой Pmax(j, k) всех исходящих из вершины дуг, в которую входит текущая. Если эта сумма больше, чем Preal(i, j) (на рис. 4 a < b + c + d), то переходим к следующей дуге, если такая существует, и повторяем пункт «б»; если не существует, то переходим к пункту «г»; если сумма меньше Preal(i, j), то переходим к пункту «в»;

в) если сумма оказалась меньше, то в список TrafficWay (в строку с номером, аналогичным номеру записи текущего пути в списке Memory.путь) заносим номер вершины, в которую входила текущая дуга;

Пропускные способности

Реальный поток

Рис. 4. Пояснение к шагу 4б

а

г) если следующей дуги в пути не существует, то переходим к шагу 5.

5 шаг. Берем следующий путь и переходим к шагу 4а. Если такого пути нет, то переходим к шагу 6.

6 шаг. Если TrafficWay пуст, то алгоритм завершает свою работу с выходом «Некорректные входные данные». Если TrafficWay содержит записи, то алгоритм также завершает работу и на выходе выдает два списка: Метогу.путь - хранит пути и TrafficWay - хранит пробки.

Полученные алгоритмы были реализованы на языке С++. Главное меню программы показано на рис. 5. Входные данные берутся из текстового файла. Программа анализирует транспортную сеть на прохождение по ней потока (рис. 6), ищет пробки и предлагает короткий вариант маршрута.

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

Улицы

Время пути

Маршрут

Выход

Рис. 5. Главное меню программы

ЕЙ Время пути

ПунктА Пункт В Время л

ул. Сатпаева просп. Досгык 20

просп. Абая просп. Досгык 15

ул. Курмангазы просп. Досгык 10

просп. Абая ул. Фурманова 13

ул. Сатпаева ул. Фурманова 7

ул. Курмангазы ул. Фурманова 10

просп. Аль-Фараби просп. Досгык 23

ул. Шевченко просп. Досгык е

просп. Абая ул. Желгоксан 5

ул. Хаджи Мукана просп. Досгык 28

просп. Абая просп. Сакена СейФуллина 30 *

ул. Тимирязева просп. Сакена СейФуллина 23

просп. Абая ул. Наурызбай батыра 17

просп. Абая ул. Пушкина 5

просп. Абая ул. Чайковского 7

просп. Абая ул. Байгурсынова 20

ул. Шевченко просп. Сакена СейФуллина 5

ул. Сатпаева ул. Желгоксан 3

ул. Сатпаева просп. Сакена СейФуллина 23

просп. Аль-Фараби просп. Сакена СейФуллина 10

ул. Сатпаева ул. Байгурсынова 10

ул. Сатпаева ул. Наурызбай батыра 15 V

Добавить Удалить Редактировать | [ Закрыть

1 -1 II

Рис. 6. Окно «Время пути»

Доказательство корректности алгоритма

Утверждение. Алгоритм TrafficWay корректен, его временная сложность O ((n 2 + m2) mC), где n - число вершин графа (V, E), m - число дуг, C = max{Pmax..}.

Доказательство. Данный алгоритм работает по следующему принципу. Сначала он ищет поток, который можно в принципе пустить из пункта S в пункт T за время, не превосходящее Time (так как F был максимальный поток за единицу времени, то чтобы понять, сколько машин успеют пройти за время Time из S в T, нужно было взять Time минус время, потраченное на элементарном пути, плюс еще одна единица, которая успела доехать до T в последний момент), и после того, как нашел его, начинает проверку.

Если входной поток не превысил максимальный, то считаем, что он успевает благополучно пройти из S в T за время Time. Если превысил, то мы предполагаем, что на пути нашего потока встречаются заторы и начиная с четвертого шага начинаем искать их. Для этого поочередно берем пути из списка Memory^^, который был сформирован еще при выполнении алгоритма Mflow, и по каждому из них идём и проверяем, чтобы реальный (усредненный) поток, входя в вершину, мог весь пройти сквозь нее, т. е. пропускные способности всех исходящих дуг позволяли ему это.

Если, пройдя по всем путям, мы не найдем пробок (TrafficWay будет пуст), то, скорее всего, входные данные (поток M или время Time) были заданы некорректно. Если же пробки найдены, то мы запоминаем с помощью TrafficWay, в каком пути и на каком узле они возникли, после чего передаем на выход эти два списка.

Вычислим временную сложность данного алгоритма по шагам.

Выполнение алгоритма Mflow дает временную сложность O ((n 2 + m) mC). Изменение Memory.стоимость и затем суммирование занимает не более чем O (mC) операций. Далее, когда начинаем проверять все пути (не более чем mC) и на каждом пути сравниваем каждую дугу (не более чем m) с суммой исходящих (не более m), получаем O (m 3C). В итоге получаем O (n 2mC + m 2C + mC + m 3C) = O ((n 2m + + m 3 + m + m 2)C) = O ((n 2 + m 2) mC).

Утверждение доказано.

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

Заключение

В результате исследования построены:

• алгоритм для определения кратчайшего пути в ориентированном мультиграфе;

• алгоритм Mflow для нахождения максимального потока, стоимость которого не превышает заданную;

• алгоритм TrafficWay для анализа транспортной сети и выявления на ней узких мест.

Доказана корректность алгоритма TrafficWay.

Полученные алгоритмы реализованы на языке С++.

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

Литература

1. Дрю Д. Теория транспортных потоков и управление ими / Д. Дрю. - М.: Транспорт, 1972. - 424 с.

2. Иносэ Х. Управление дорожным движением / Х. Ино-сэ, Т. Хамада. - М.: Транспорт, 1983. - 248 с.

3. Gaishun I. Investigation of Some Problems of Mathematical Systems Theory for Multistep Processes / I. Gaishun // J. Comput. Syst. Sci. Int. - 2005. - Т. 44, Is. 2. - P. 163-166.

4. Кормен Т. Х. Алгоритмы : построение и анализ / Т. Х. Кормен. - 2-е изд. - М.: Вильямс, 2006. - 1296 с.

5. Капитанов В. Т. Управление транспортными потоками в городах / В. Т. Капитанов, Е. Б. Хилажев. - М.: Транспорт, 1985. - 94 с.

6. Клинковштейн Г. И. Организация дорожного движения : учеб. для вузов / Г. И. Клинковштейн. - 5-е изд., пере-раб. и доп. - М.: Транспорт, 2001. - 247 с.

7. Жогаль С. И. Задачи и модели исследования операций : учеб. пособие / С. И. Жогаль, И. В. Максимей. - Гомель: Бел-ГУТ, 1999.

8. Зайченко Ю. П. Исследование операций : учеб. пособие / Ю. П. Зайченко. - Киев: Слово, 2002. - 320 с.

9. Поляков К. Ю. Теория автоматического управления / К. Ю. Поляков. - СПб., 2008. - С. 4-20.

10. Швецов В. И. Алгоритмы распределения транспортных потоков / В. И. Швецов // Автоматика и телемеханика. -2009. - № 10. - С. 148-157.

11. Сукач Е. И. Применение имитационного моделирования для исследования динамики транспортных потоков региона / Е. И. Сукач // Изв. Гомел. гос. ун-та им. Ф. Скори-ны. - 2006. - № 4 (37). - С. 96-99.

12. Chudak F. The traffic equilibrium problem / F. Chudak, D. S. V. Eleuterio. -2006.

13. Новиков Ф. А. Дискретная математика для программистов / Ф. А. Новиков. - 3-е изд. - СПб.: Питер, 2009. -384 с.

14. Beckman M. Studies in the economics of transportation / M. Beckman, C. B. McGuire, C. B. Winsten. - CT: Yale Univ. Press, 1956.

15. Попков В. К. Математические модели связности / В. К. Попков. - Новосибирск: Изд-во ИВМиМГ СО РАН, 2006. - 409 с.

16. Фрэнк Г. Сети, связь и потоки / Г. Фрэнк, И. Фриш. -М.: Связь, 1978. - 448 с.

17. Sobol I. M. The Monte Carlo Method / I. M. Sobol. -Moscow: Nauka, 1968. - 64 p.

Problem of Transport Network Analysis for Identifying Bottlenecks

Ahmediyarova A. T., Utepbergenov I. T., Kassymova D. T. Institute of Information and Computing Technologies, Almaty, Kazakhstan i.utepbergenov@gmail.com

Abstract: The analysis was done and an algorithm was developed for calculating a route in the urban transport network. Based on the input data, this algorithm determines the capability to pass the given flow between two points during the time, not exceeding the given one, by calculating the travel time by alternative routes. The algorithm is based on the determination of the shortest path in the directed multigraph. The calculation results are given for different routes, obtained using the developed program.

Keywords: The road network of the city, Model of road network, Flow data, Bandwidth, Crossroads, A directed multigraph.

References

1. Dryu D. Teoriya transportnyih potokov i upravlenie imi, Moscow, Transport, 1972, 424 p.

2. Inose H., Hamada T. Upravlenie dorozhnyim dvizhe-niem. Moscow, Transport, 1983, 248 p.

3. Gaishun I. Investigation of Some Problems of Mathematical Systems Theory for Multistep Processes, J. Comput. Syst. Sci. Int., 2005, T. 44, Is. 2, pp. 163-166.

4. Kormen T. H. Algoritmyi: postroenie i ana-liz. Moscow, Vilyams, 2006, 1296 p.

5. Kapitanov V. T., Hilazhev E. B. Upravlenie trans-portnyimi potokami v gorodah, Moscow, Transport, 1985, 94 p.

6. Klinkovshteyn G. I. Organizatsiya dorozhnogo dvi-zheni-ya. Uchebnik dlya vuzov, Moscow, Transport, 2001, 247 p.

7. Zhogal S. I., Maksimey I. V. Zadachi i modeli is-sle-dovaniya operatsiy. Uchebnoe posobie, Gomel, Bel-GUT, 1999.

8. Zaychenko Yu. P. Issledovanie operatsiy. Kiev, Slovo, 2002, 320 p.

9. Polyakov K.Yu. Teoriya avtomaticheskogo upravleniya. St. Peterburg, 2008, pp. 4-20.

10. Shvetsov V. I. Algoritmyi raspredeleniya trans-portnyih potokov, Automatics and telemechanics [Avtomatika i teleme-hanika], 2009, no. 10, pp. 148-157.

11. Sukach E. I. Primenenie imitatsionnogo modeliro-vani-ya dlya issledovaniya dinamiki transportnyih potokov regiona, Izvestiya Gomelskogo gosudarstvennogo univer-siteta imeni F. Skorinyi, 2006, no. 4 (37), pp. 96-99.

12. Chudak F., Eleuterio D. S. V. The traffic equilibrium problem. 2006.

13. Novikov F. A. Diskretnaya matematika dlya program-mistov. St. Peterburg, Piter, 2009, 384 p.

14. Beckman M., McGuire C. B., Winsten C. B. Studies in the economics of transportation. CT, Yale Univ. Press, 1956.

15. Popkov V. K. Matematicheskie modeli svyaznosti, Novosibirsk, Izdatelstvo IVMiMG SO RAN, 2006, 409 p.

16. Frenk G., Frish I. Seti, svyaz i potoki. Moscow, Svyaz, 1978, 448 p.

17. Sobol I. M. The Monte Carlo method. Moscow, Nauka, 1968, 64 p.