Научная статья на тему 'Построение и исследование алгоритмических моделей управления транспортными потоками'

Построение и исследование алгоритмических моделей управления транспортными потоками Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
185
69
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ГРАФ / ИСТОЧНИК / СТОК / ПРОПУСКНАЯ СПОСОБНОСТЬ / МАКСИМАЛЬНЫЙ СТАЦИОНАРНЫЙ ПОТОК / ТРАНСПОРТНЫЕ ПОТОКИ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Омарова Гульзира Алимовна, Чернов Константин Юрьевич

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

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

Текст научной работы на тему «Построение и исследование алгоритмических моделей управления транспортными потоками»

ПОСТРОЕНИЕ И ИССЛЕДОВАНИЕ АЛГОРИТМИЧЕСКИХ МОДЕЛЕЙ УПРАВЛЕНИЯ ТРАНСПОРТНЫМИ ПОТОКАМИ

Г. А. Омарова, К.Ю. Чернов

Институт вычислительной математики и математической геофизики СО РАН,

630090, Новосибирск, Россия

УДК 519.179.2

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

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

This work is devoted to the analysis and research of different algorithms of the solution of the task about the maximum flow on the graph, representing a real transport network.

Key words: graph, source, sink, residual capacity, maximum stationary flow, flow networks.

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

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

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

— транспортный поток нестабилен и многообразен, получение объективной информации о нем является наиболее сложным и ресурсоемким элементом системы управления;

— критерии качества управления дорожным движением противоречивы: необходимо обеспечивать бесперебойность движения, одновременно снижая ущерб от движения, накладывая ограничения на скорость и направления движения;

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

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

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

Несмотря на то, что первые фундаментальные работы по математической теории управления транспортными потоками были выпущены десятилетия назад, по мнению ряда известных специалистов, проблема образования предзаторных и заторных ситуаций еще до конца не изучена. Данная область сейчас активно развивается, и появляется множество новых работ, В качестве примеров академических журналов, посвященных динамике автомобильного транспортного движения, можно привести издания „Transportation Research" и „Operation Research" [1].

1. Классические алгоритмы транспортных задач. Задача о максимальном стационарном потоке была поставлена в 1955 г, Т. Е, Харриеом, который вместе с генералом (в отставке) Ф, С, Россом предложил упрощенную модель железнодорожного транспортного потока и выдвинул именно эту специальную задачу как центральную задачу, подсказываемую этой моделью. Вскоре после этого был высказан в качестве гипотезы, а затем и установлен главный результат — теорема о максимальном потоке и минимальном разрезе, С тех пор появилось большое число доказательств этой теоремы,

В том же году Л, Форд и Д, Фалкереон впервые построили алгоритм, специально предназначенный для решения этой задачи. Их алгоритм получил название „алгоритм Форда —Фалкерсона" [2].

В дальнейшем решение задачи много раз улучшалось,

В 2010 году исследователи Д, Келнер и А, Мондры из МТИ вместе со своими коллегами Д, Спилманом из Польского университета и Шень-Xva Тоном из Южно-Калифорнийского университета продемонстрировали очередное улучшение алгоритма впервые за 10 лет [3].

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

1.1. Алгоритмы Форда — Фалкерсона и Эдмондса — Карпа.

Описание. Общая идея данных алгоритмов заключается в следующем: изначально величине потока присваивается значение 0: f(v 1,г>г) = 0 для всех V\,V2 Е V. Затем величина потока итеративно увеличивается посредством поиска увеличивающего пути (путь от источника s к стоку t, вдоль которого можно послать больший поток). Процесс повторяется, пока можно найти увеличивающий путь.

На вход алгоритмов подается сеть N = ((V,E),c,s,t). На выходе получается максимальный поток / из s в t.

Определения. Назовем остаточной сетью Gf(V: Ef, Cf, s, t) сеть с остаточной пропускной способностью Cf(u,V) = c(u,v) — f(u,v).

Алгоритм.

f(u, v) <— 0 для всех ребер (и, v)

Пока есть путь Р из s в t в Gf такой, что для каждого ребра (и, v) £ Р значение остаточной пропускной способности Cf(u,V) > 0

Найти Cmin — тт{с^(и, v) \ (u,v) € Р}

Для каждого ребра (и, у) 6 Р

/(«, у) 4- /(и, у) + Стгп ¡(V, и) 4- /(V, и) ~ Сгпы

Различие алгоритмов Форда — Фалкереона и Эдмондса — Карпа в том, что в первом случае путь Р — любой увеличивающий путь, тогда как во втором случае Р — кратчайший увеличивающий путь.

Сложность. На каждом шаге алгоритмы добавляют поток увеличивающего пути к уже имеющемуся потоку. Если пропускные способности всех ребер — целые числа, то и потоки через все ребра всегда будут целыми. Следовательно, на каждом шаге алгоритмы увеличивают поток по крайней мере на единицу. Значит, они сойдутся не более чем за О (к) шагов, где к — максимальный поток в графе. Можно выполнить каждый шаг за время О(Е), где Е — число ребер в графе, тогда общее время работы алгоритмов ограничено 0(кЕ).

Если величина пропускной способности хотя бы одного из ребер — иррациональное число, то алгоритм Форда —Фалкереона может работать бесконечно, даже не обязательно сходясь к правильному решению [4].

В процессе работы алгоритм Эдмондса — Карпа будет находить каждый дополняющий путь за время 0(Е). Общее число увеличений потока, выполняемое данным алгоритмом, составляет 0(УЕ). Таким образом, сложность алгоритма Эдмондса-Карпа равна 0(УЕ2).

1.2. Алгоритм Диница.

Описание. Алгоритм Диница был предложен в 1970 году израильским (бывшим русским) ученым Ефимом Диницем [5]. Временная сложность алгоритма составляет 0(У2Е). Получить такую оценку позволяет введение понятий вспомогательной сети и блокирующего потока. В сетях с единичными пропускными способностями существует более сильная оценка временной сложности: О(ЕУ).

На вход алгоритма подается сеть N = ((V, Е), с, в, ¿). На выходе получается максимальный поток / из в в

Определения. Определим (Ин1(у) как длину кратчайшего пути из н г, у г, графе О/. Тогда вспомогательная сеть Gf — сеть С/, = (V, Е^, с/\еь, 5, £), где

Еь = {(и, у) еЕ; I <йв£(и) = <йя£(и) + 1}.

Блокирующий поток в — t поток / такой, что граф С — (У, Е'ь) не содержит в — £ пути, где

Е'ь = {(и,у)\/{и,у) <С^Еь{и,у)}.

Алгоритм.

/(и, у) <— 0 для всех ребер (и, у)

Создать Сх из С/ сети N. Если = оо остановиться и вывести /

Найти блокирующий поток /' в Сх

Дополнить поток / потоком /' и перейти к шагу 2

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

обходом в ширину за время О(Е), а блокирующий поток на каждом уровне графа может быть найден за время 0(VE). Поэтому время работы алгоритма Диница есть 0(V2E).

1.3. Алгоритм проталкивания предпотока.

Описание. Данный алгоритм был впервые опубликован в 1986 году А. Голдбергом и Р. Тарьяном [6], Он не является частным случаем алгоритма Форда — Фалкерсона, Реализованный без специальных усовершенствований, алгоритм выполняется за время 0(V2E).

На вход алгоритма подается сеть N = ((V, Е), с, s, t). На выходе получается максимальный поток / из s в t. Алгоритм основан на применении двух операций — проталкивание и подъем.

Определения. Будем называть потомком вершины и любую вершину v, такую, что остаточная сеть содержит ребро (и, v). Избыточным потоком будем называть величину еи = ^^ f(w,u). Предпотоком назовем функцию / : V х V —> M со следующими евойетва-wev

ми для любых вершин и н v:

1) f(u,v) ^ c(u,v) для любых u,veV- ограниченность пропускной способностью;

2) f(u,v) = —f(v,u) для любых u,v EV — антисимметричность;

3) для любого и Е V \ {s,t} выполнено неравенство ^^ f(w, и) ^ 0 — неотрицатель-

w€V

ность избыточного потока.

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

Припишем каждой вершине неотрицательное целое число, называемое высотой. Высоту вершины и обозначим hu.

Инициализация.

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

— /(s, и) = c(s,u);

— f(u, s) = -c(s,u).

Для всех остальных пар вершин предпоток равен нулю.

Начальная высота равна для источника и 0 для всех остальных вершин,

1.4. Проталкивание. Проталкивание из вершины и к вершине v возможно при выполнении следующих условий:

— вершина и переполнена;

— остаточная сеть содержит ребро (u,v) (v — потомок и);

— v ниже и: hu > hv.

Проталкивание заключается в том, что поток f(u,v) увеличивается на величину Sf(u,v) = min(eu,c(u,v) — f(u,v)). На столько же увеличивается избыточный поток ev. Обратный поток f(v,u) и избыточный поток еи уменьшаются на ту же величину.

Подъем. Подъем вершины и возможен при выполнении следующих условий:

— вершина и переполнена;

— ни один потомок и не ниже и.

Подъем заключается в том, что из всех потомков и выбирается вершина v с минимальной высотой, после чего высота вершины и становится равной hv + 1,

Алгоритм.

Инициализировать предпоток, избыточные потоки и высоты.

Пока возможны проталкивание или подъем, выполнить любую возможную операцию.

Сложность. Определения нужного действия и проталкивания выполняются за константное время. Следовательно, все определения нужного действия и проталкивания требуют 0(у2Е) операций.

Перенос вершины и в множество потомков с не меньшей высотой требует ее исключения из множества потомков с меньшей высотой. Поскольку множества потомков хранятся как векторы, а исключение элемента вектора требует количества операций, пропорционального его длине, такой перенос может требовать О (У) операций. Значит, выполнение переносов для всех соседей требует 0((^У) операций, где в,и — степень вершины и. Остальные действия, выполняемые в ходе подъема, требуют меньшего количества операций, значит, подъем требует 0(с£иУ) операций. Одна вершина может выдержать 2У — 1 подъемов, следовательно, все ее подъемы требуют 0((1иУ2) операций, а все подъемы всех вершин — с/\иУ2) = 0(у2Е) операций,

и

2. Решение задачи на основе дорожной сети Новосибирской области. 2.1. Постановка задачи. Пусть дана целочисленная транспортная сеть N = ((У, Е), с, в, £), где У — \у\,У2, ■.. ,уп} — множество вершин, Е — {е\, е^,..., еп} — множество ребер. Для произвольных £ У с(у 1,^2) 6 N и {0} — пропускная способность ребра (г>1,г>2). Заданы источник в 6 У и сток £ е У,

Функция / : УхУ —>■ Ж называется потоком, если она удовлетворяет следующим условиям:

1) f(vl,V2) < с(ь1,У2) для любых г?х, г;г £ У ограниценность пропускной способностью;

2) _/(г?1, г?г) = —/(^2^1) для любых г>1,г>2 £ У антисимметричность;

3) для любого VI 6 У \ {з,£} выполняется равенство ^^ /(^ъ^г) = 0 сохранение

потока.

Задача состоит в том, чтобы найти поток /, такой, что У^ /(в, ь) — максимальна,

используя различные алгоритмы с целью сравнения производительности. При этом ориентированный граф С = (У, Е) представляет собой реальную дорожную сеть Новосибирской области. Ввод исходных данных и вывод результата необходимо сделать в удобной и понятной для конечного пользователя форме (на карте),

2.2. Хранение данных.

В качестве основного средства для организации хранения данных выбрана реляционная СУБД РоМдгоЖ.^!.. В качестве основных достоинств данной СУБД можно отметить:

— возможность реализации алгоритмов непосредственно в БД на языке 14. РдЖ^!.:

— планирование и оптимизация запросов силами БД;

— наличие функций для работы с геоинформационными объектами (с использованием расширения PostGIS);

— наличие готовых решений для импорта данных из ОрспЯ! пчч Мир.

Однако, помимо самой СУБД, также целесообразно использовать имеющиеся расширения: PostGIS и РСКои1дп§, Первое предоставляет полезные функции для работы с геоинформационными объектами, координатами, геометрическими объектами. Второе — функ-

ции для поиска по графу, которые будут необходимы для реализации выбранных алгоритмов.

Представление графа. Учитывая способ организации хранения данных, граф решено представить в виде таблицы „ways" (пути), В ней будет содержаться информация о ребрах графа. Таблица состоит из следующих столбцов:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

— class_id — класс дороги;

— length — длина дороги;

— xl, vi, х2, у2 — координаты начальной и конечной вершин (EPSG:4326);

— reverse^cost — стоимость проезда по ребру в обратном направлении;

— cost — стоимость проезда по ребру в прямом направлении;

— the^geom — данные о геометрии ребра;

— source — внутренний номер начальной вершины;

— target — внутренний номер конечной вершины.

Также для ускорения поиска по таблице вводятся следующие индексы по столбцам source и target.

Необходимости отдельно хранить список вершин нет, поскольку он может быть получен простым SQL-запросом в БД:

SELECT DISTINCT vid FROM (

SELECT source AS vid FROM ways UNION SELECT target AS vid FROM ways ) AS ql;

Получение и загрузка данных. Первым этапом является получение данных из проекта OpenStreetMap — некоммерческого веб-картографического проекта по созданию силами сообщества участников-пользователей Интернета подробной свободной и бесплатной географической карты мира. Данные извлекаются в формате XML для дальнейшей загрузки в БД, Для ускорения данного этапа было решено воспользоваться готовыми выгрузками данных по областям РФ, которые доступны на сайте http://gis-lab.info/projects/osm^dump/. Файл в формате ,osm,bz2 содержит заархивированные данные в формате XML,

Предполагается, что СУБД PostgreSQL, а вместе с ней и расширения PostGIS и PGRouting установлены и настроены.

Вторым этапом является загрузка полученных данных в БД, Производится она с помощью утилиты osm2pgrouting, предварительно сконфигурированной (можно использовать поставляемый с утилитой конфигурационный файл „mapconfig^for^cars.xml") для сохранения данных о дорогах (остальные данные, соответственно, отбрасываются). Этот этап — основной, именно на нем по имеющимся данным строится интересующий нас граф. По завершении данного этапа будет получена таблица „ways", с которой мы будем работать в дальнейшем. Помимо этого, на ее основе автоматически создаются служебные таблицы pgrouting, которые необходимы для корректной работы алгоритмов поиска на графе.

Запуск osm2pgrouting можно произвести следующим образом:

# оsm2pgrouting -file RU-NVS.osm -conf mapconfig_for_cars.xml \ -dbname routing -user postgres -clean

Таблица, используемая при написании данной работы, содержит 103163 строки (\Е\ = 103163). Число вершин - 83284 (|V| = 83284).

Построение транспортной сети на основе графа и реализация алгоритмов. После того, как на втором этапе получения данных был построен граф, необходимо задать пропускные способности для ребер графа. В проекте OSM существует несколько типов дорог. Их список можно найти в документации к OSM: http://wiki.0penstreetmap.0rg/wiki/Kev:highway.

Каждое ребро имеющегося графа принадлежит одному из этих типов. В таблице ways на это указывает поле classed. Определять, какую пропускную способность имеет то или иное ребро, будем по значению этого поля.

После того, как была построена транспортная сеть, можно приступить к реализации алгоритмов решения задачи. Все функции написаны непосредственно в БД на языке PL/pgSQL, Это дает определенные преимущества, но также накладывает некоторые ограничения. Из преимуществ можно отметить более тесную интеграцию исполнителя алгоритма и БД, в которой хранится транспортная сеть. Частично пропадает необходимость сильно оптимизировать алгоритм благодаря планировщику PostgreSQL; можно ускорить поиск по таблицам с помощью построения индексов. Из недостатков стоит отметить усложненное хранение временных данных (например, для построения вспомогательных сетей).

В качестве алгоритмов для решения задачи выбраны алгоритм Эдмондса — Карпа и алгоритм Диница, Их выбор обусловлен в частности особенностями выбранного способа хранения данных — использование таких алгоритмов как алгоритм проталкивания пред-потока, или алгоритм „поднять в начало" требует хранения большого количества временных данных (например, при реализации алгоритма проталкивания предпотока требуется хранить для каждой вершины два множества потомков: с неменьшей высотой и с меньшей высотой), в связи с чем временные затраты на организацию хранения подобной информации будут гораздо выше, чем возможный выигрыш в скорости.

Алгоритм Эдмондса — Карпа.

Алгоритм реализован в функции edmonds^carp. В качестве входных параметров передаются номера вершин источника и стока. Выход алгоритма представляет собой таблицу со следующими столбцами:

— gid (integer) — номер ребра;

— flow (integer) — значение потока / на ребре;

— _max_flow (integer) — значение пропускной способности с на ребре;

— _prio (integer) — „приоритет" ребра (номер итерации).

На этапе инициализации создается временная таблица „temp_ways", столбцы которой повторяют столбцы исходной таблицы „ways", за исключением того, что столбец classed заменяется на значение пропускной способности функцией classid_to_max_flow, а так же добавляется новый столбец flow, в котором будет храниться значение потока на ребре.

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

Далее представлена вышеописанная функция.

Алгоритм Диница. Алгоритм реализован в функции dinie, В качестве входных параметров передаются номера вершин источника и стока. Выход алгоритма представляет собой таблицу со следующими столбцами:

Рис. 3. Выбор вершин от проспекта Дзержинского до Толмачевского шоссе

Рис. 1. Выбор вершин от 10-го Бронного переулка до 5-го Гэсстроевского переулка

Рис. 2. Обе вершины лежат на одном отрезке ул. Успенского

— gid (integer) — номер ребра;

— flow (integer) — значение потока / на ребре;

— _max_flow (integer) — значение пропускной способности с па ребре;

— _prio (integer) — „приоритет" ребра (помер итерации).

Инициализация производится аналогично алгоритму Эдмопдса — Карпа, однако, помимо таблицы „temp_ways", создается таблица „temp_paths", в которой будет храниться блокирующий ноток.

Затем в цикле выполняется поиск блокирующего потока и вычисляется его размер, после чего обновляются значения потока в таблице „temp_ways". Алгоритм заканчивает работу, как только не удается найти блокирующий ноток.

Визуализация. Ввод исходных данных и получение результата визуализированы с помощью веб-интерфейса па основе OpenLayers — библиотеки с открытым исходным кодом, написанной па JavaScript, предназначенной дня создания карт па основе программного интерфейса (API), подобного GoogleMap API. Она позволяет очень быстро и легко создать веб-интерфейс дня отображения картографических материалов, представленных в разли чпых форматах.

Пользователь выбирает две вершины графа на карте — источник и сток. Эти данные передаются в РНР-скринт (работающий па сервере), который обрабатывает их и вызывает функцию из PostgreSQL, куда передаются обработанные данные. После чего он получает результат работы функции, приводит его к необходимому виду и возвращает па сторону клиента, где эти данные обрабатываются OpenLayers и выводятся пользователю в удобном виде.

Монумент

уиии.1 П'

1 _

улиВа Ёерафимонич.!'

Ж6М

Рис. 4. Выбор вершин от ул. Ватутина до ул. Степная

Таблица

Время работы а.;п'оритмов при различных данных

S t N М А. Эдмондса-Карна А. Диница

3200 6200 1369 350 2,046 2,705

12302 17901 373 100 1,737 1,871

69008 15300 1332 150 1,822 2,299

6341 34195 563 250 1,767 2,042

485 361 366 400 2,128 2,749

714 997 237 300 1,912 2,489

20897 14798 117 200 1,946 2,172

7303 45533 274 700 2,574 3,184

367 13667 233 200 1,955 2,192

Результаты. Используемое оборудование и ПО:

- Intel Core2Duo Е8400 3.00GHz / 2Gb DDR2-800 / 250Gb 7200rpm;

- Debian GXU/Linux 3.2.0-4-amd64;

- PostgreSQL 9.1.8 / PostGIS 2.1.0 / PGRouting 2.0.0;

- nginx 1.2.1 / PHP 5.4.4.

Время работы алгоритмов па различных входных данных (см. табл.): s, t — источник и сток (номера вершин), N — количество задействованных ребер, М — величина максимального потока. Время работы алгоритмов указано в секундах. Визуализация работы алгоритмов па различных входных данных приведена па рис. 1-4.

Заключение. В ходе работы была создана программная система, состоящая из „клиентской" и „серверной" частей, которая решает задачу о максимальном потоке одним из двух алгоритмов по выбору пользователя — алгоритмом Эдмопдса — Карпа или алгоритмом Диница,

„Клиентская" часть представляет собой веб-приложение, отображающее карту Ореп-Sl reel Map. на которой происходит ввод исходных данных и вывод результата. Результат отображается в качестве маршрутов от источника к стоку, окрашенных в зависимости от „загруженности" дорог.

„Серверная" часть представляет собой БД, в которой хранится граф и реализуются вышеуказанные алгоритмы, а также PHP-скрипт, который используется для обмена данными между „клиентской" частью и БД.

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

Список литературы

1. Кравченко П. С., Омарова Г. А. Микроскопические математические модели транспортных потоков. Аналитический обзор // Журнал „Проблемы информатики". 2014. № 1. С. 71-78.

2. Ford L.R., Fulkerson D.R. Maximal Flow through a Network // Canad. J. Math. 1956. P. 399-404.

3. Christiano P., Keener J. A., Madry A., Spielman D. A., Shang-Hua Teng. Electrical Flows, Laplacian Systems, and Faster Approximation of Maximum Flow in Undirected Graphs // arXiv:1010.2921 [cs!dS].

4. zwick U. The smallest networks on which the Ford-Fulkerson maximum flow procedure may fail to terminate // Theoretical Computer Science. 1995. V. 148. P. 165-170.

5. Dinic E. A. Algorithm for Solution of a Problem of Maximum Flow in a Network with Power Estimation // Soviet Math Dokladv. 1970. V. 11. P. 1277-1280.

6. Goldb erg A. V., Tarjan R. E. A new approach to the maximum flow problem // Journal of the ACM. 1988. V. 35. P. 921-940.

Омарова Гульзира Алимовна — канд. физ.-мат. наук, науч. сотр.

Института вычислительной математики и математической геофизики СО РАН;

e-mail: [email protected]

Чернов Константин Юрьевич — студент НГУ;

e-mail: [email protected]

Дата, поступления — 18.06.2014

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