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

Актуальность задачи максимального потока в применении к современным вычислительным сетям Текст научной статьи по специальности «Математика»

CC BY
739
65
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ОПТИМИЗАЦИЯ / OPTIMIZATION / ПЛАНИРОВАНИЕ / СЕТЕВЫЕ ПОТОКИ / NETWORK FLOWS / ТЕОРИЯ ГРАФОВ / GRAPH THEORY / ЗАДАЧА МАКСИМАЛЬНОГО ПОТОКА / MAXIMUM FLOW PROBLEM / ЗАДАЧА ПАРАМЕТРИЧЕСКОГО ПОТОКА / PARAMETRIC FLOW PROBLEM / SCHEDULING

Аннотация научной статьи по математике, автор научной работы — Мальковский Николай Владимирович

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

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

This paper is devoted to one of the main problems of graph theory, maximum flow problem, and its application for efficient network load balancing. The paper contains a guide to the maximum flow problem including brief history of the problem, related graph theory problems and basic algorithm concepts. Network load balancing model is considered based on a special case of parametric flow problem.

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



инжЕнерия Га программного 1 □Бёспечения \

Компьютерные инструменты в образовании, 2014 № 4: 3-9 УДК: 519.852.35 http://ipo.spb.ru/journal

АКТУАЛЬНОСТЬ ЗАДАЧИ МАКСИМАЛЬНОГО ПОТОКА В ПРИМЕНЕНИИ К СОВРЕМЕННЫМ ВЫЧИСЛИТЕЛЬНЫМ

СЕТЯМ*

Мальковский Николай Владимирович Аннотация

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

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

1. ВВЕДЕНИЕ

Основные концепции теории потока в графах были сформулированы в 1950х годах в работах Форда и Фалкерсона [1, 2] наряду с развитием математического программирования и математической теории оптимизации в целом. Несмотря на то, что сформулированная ими задача была частным случаем задачи линейного программирования и могла быть решена с помощью симплекс-метода [3] (был сформулирован немного ранее), предложенный Фордом и Фалкерсоном подход опирался только на итеративное применение базовых графовых алгоритмов — обходов в ширину и глубину. Во многих случаях этот подход показал себя более простым и эффективным. Изначально задача потока формулировалась для транспортных потоков (в [1] задача неформально описывается как нахождение максимальной пропускной способности железнодорожной сети между двумя городами) и различных вариантов транспортной задачи, однако впоследствии концепция была использована во многих других областях (подробный обзор можно найти, например, в [4]). Этот подход оказался довольно удачным (стоит отметить, что результаты Форда и Фалкерсона включены во многие учебные пособия по основам алгоритмов, в том числе наиболее известный [5]) и впоследствии был развит в работах Диница [6], Эдмондса и Карпа [7], Карзанова [8], Гольдберга и Таръяна [9] и многих других. В [7] показано, что увеличение потока по кратчайшим дополняющим путям ведет к полиномиальному времени решения задачи максимального потока. В [6] предложен более эффективный алгоритм, который опирается на более сложную композицию обходов графа, но все еще входит в концепцию относительно простой композиции базовых

*Работа выполнена при частичной поддержке РФФИ (проект №13-07-00250-а).

графовых алгоритмов. В [9] был предложен другой подход к решению задачи максимального потока: этот подход напрямую опирался на теоретические результаты [1], но при этом не оперировал с дополняющими путями. Вместо этого использовались еще более простые операции локального характера. Общий результат, описанный в [9], показывает, что применение специальных локальных операций, при этом сохраняя простой инвариант, сходится за полиномиальное число применений этих операций. При этом остается свобода относительно выбора порядка этих операций, что может существенно повлиять на сложность алгоритма. Подробный обзор существующих методов и эвристик для решения задачи максимального потока можно найти в [10]. В [4] описано множество известных практических задач, которые сводятся к задаче максимального потока. Статья организована следующим образом: во втором разделе приведены базовые понятия задачи максимального потока и два основных подхода к решению задачи (нахождение дополняющих путей и проталкивание предпотока); в третьем разделе приведены общие сведения и существующие подходы к решению задачи параметрического потока; в четвертом разделе приведены задачи теории графов, которые допускают сведение к задаче максимального потока; в пятом разделе приведена модель вычислительной сети, для которой оптимальная балансировка загрузки сводится к задаче параметрического потока.

2. ЗАДАЧА МАКСИМАЛЬНОГО ПОТОКА

Рассмотрим ориентированный граф G =< V, Е >, Е с V х V с заданной функцией с : Е ^ (здесь и далее = {х е К.|х > 0}) и выделенными вершинами я, г е V — истоком и стоком соответственно. Будем называть функцию с — пропускными способностями ребер. Функцией потока для графа G с пропускными способностями с называется функция f : Е ^ удовлетворяющая условиям:

¡(в) < с(е) и Уу Ф я, г: ^ f(e) = ^ е е out(v)f(e),

еет(у)

где 1н(у) и оиг(у) — множества всех входящих в V и исходящих из V ребер соответственно, при этом величина

уа1(Л ¡(в) = ^ е е оиг(s)f (в)

еет(г)

называется величиной потока. Задача заключается в максимизации величины потока. Все ограничения выражаются в виде линейных равенств и неравенств с линейной функцией минимизации. Таким образом, задача максимального потока является частным случаем задачи линейного программирования и может быть решена с помощью симплекс-метода или более позднего метода внутренней точки [11] (этот подход появился уже после подавляющего числа теоретических работ по теоретическим аспектам задачи максимального потока, включая [1, 2, 6-8], в которых уже была показана полиномиальность задачи максимального потока).

Пусть Е1 = {(и, у)1(и, V) е Е, с((и, V)) - ¡((ы, у)) > 0} и {(у, и)|(и, V) е Е, f((u, у)) > 0} — называется остаточной сетью потока £ Пусть 5 с V, я е 5, г £ 5 — яг разрез или просто разрез. Назовем величиной разреза

уа1(Б) = ^ с(и, V).

(и,у):ие5 ,vеV\5

Основным результатом работ Форда и Фалкерсона является следующая теорема:

Теорема Форда-Фалкерсона:

1) max val(f) = min val(S);

2) поток f максимален ^ < V, Ef > не содержит пути из s в t;

3) если поток f максимален, то множество достижимых из s вершин в остаточной сети Ef образуют минимальный разрез.

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

В [8] была впервые сформулирована концепция предпотока, на основе которой впоследствии в [9] был предложен способ нахождения максимального потока. Функция f называется предпотоком, если:

f(e) < c(e) и Vv Ф s, t: ^ f(e) > ^ e е out(v)f(e).

eein(v)

При этом величина

excess(v) = J] f(e) - J] f(e)

eein(v) eeout(v)

называется избытком вершины v. Если для всех промежуточных вершин избыток равен нулю, то такой предпоток становится потоком. Пусть d : V ^ N, d(s) = |V|, d(t) = 0. Будем называть предпоток f совместимым с d, если выполняется:

Ve = (u, v) е Ef d(u) > d(v) + 1.

Общий алгоритм строится на последовательных применениях двух простых операций: push и relabel. Обозначим cf (e) = c(e) - f (e) — остаточная пропускная способность. Операция push: пусть f — совместимый с d предпоток,

v Ф s, t; ex(v) > 0, cf ((v, u)) > 0, d(u) = d(v) - 1,

тогда операция push(v, u) заключается в увеличении f((v, u)) на величину min(cf ((v, u)), ex(v)). Операция relabel: f — совместимый с d предпоток,

( v Ф s, t; ex(v) > 0, \ Vu : cf ((v, u)) > 0 ^ d(u) > d(v) - 1,

тогда операция relabel(v) заключается в присвоении d(v) величины maxcf ((v,u))>0 d(u) + 1.

Обе операции не нарушают совместимости. В [8] показано, что применение в произвольном порядке корректных операций push и relabel за конечное число итераций приводит к состоянию, в котором все промежуточные вершины имеют нулевой избыток, то есть предпоток становится потоком, причем максимальным. Количество операций при применении в произвольном порядке — O(n2m), n — число ребер, m — число вершин. Если использовать определенный порядок операций, то можно добиться оценки O(n3) и O(nm \og(n2/m)) при использовании специальных структур данных.

3. ЗАДАЧА ПАРАМЕТРИЧЕСКОГО ПОТОКА

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

с : Е х Ж ^ Ж.

Например, можно рассматривать суммарную пропускную способность ребра за некоторый интервал времени. Теоретически такая величина должна линейно зависеть от длины интервала, однако на практике это условие может не выполняться. Подробно о применении задачи параметрического потока можно прочесть в [12]. Там же представлен эффективный алгоритм нахождения максимального потока/минимального разреза для всех значений параметра одновременно, если выполняются следующие условия:

для ребер (я ^ V) возрастают от Л, для ребер (V ^ г) убывают от Л, для всех остальных постоянны.

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

4. БЛИЗКИЕ ЗАДАЧИ

Наиболее близкой к задаче максимального потока является задача максимального паросочетания в двудольном графе. Задача заключается в нахождении максимального по мощности множества ребер двудольного графа, не пересекающегося по вершинам (то есть любая вершина графа должна быть инцидентна не более чем одному ребру из множества). Довольно легко свести задачу максимального паросочетания к задаче максимального потока (см., например, в [13]). При этом, если мы припишем каждому ребру некоторое вещественное число — вес и рассмотрим задачу нахождения максимального по сумме весов паросочетания, то получим известную задачу о назначениях, которая часто встречается на практике. Задача о назначениях не сводится к задаче максимального потока, но сводится к еще одной близкой задаче — потоке минимальной стоимости (описание которой есть в [1]), которая допускает решения, сочетающие идеи алгоритмов нахождения максимального потока и алгоритмов нахождения кратчайших расстояний в графе. Еще более обобщая задачу о назначениях можно получить одну из формулировок транспортной задачи. Пусть задан типовой ресурс, который добывается в п шахтах и в котором заинтересованы т фабрик, желающих получить ресурс в количестве ц, г = 1,2,..., т. Задана матрица стоимостей перевозок единичного объема ресурса ^ размером т х п с вещественными элементами. Задача заключается в минимизации затрат на транспортировку ресурсов, то есть нужно найти такую матрицу распределения ресурсов X, которая бы минимизировала функционал

т п

г=1 ]=\

при условии удовлетворенности всех заказов и ограниченности ресурсов в шахтах:

п т

= Ч, 0 < Хи = п.

1=1 ]=\

В такой постановке транспортная задача допускает линейное сведение к задаче потока минимальной стоимости.

5. БА1АНСИРОВКА ЗАГРУЗКИ В ВЫЧИСЛИТЕЛЬНОМ СЕТИ

Теория потоков может быть эффективно применена к задаче оптимальной балансировки загрузки, которая изучалась в работах [14-20], используя различные методы оптимизации. Стоит отметить, что в этих работах очень мало внимания уделяется произвольным топологиям сети и ограничениям пропускных способностей каналов. В [21] предложена модель балансировки загрузки однотипных заданий между несколькими вычислительными узлами, соединёнными произвольным набором связей. Ставится задача выполнения некоторого набора однотипных заданий с произвольным начальным разбиением подзадач по вычислительным узлам. Такая постановка отличается от задач [14,15] тем, что минимизации подвергается время выполнения последнего задания вместо среднего времени отклика, а также допущением, что все задания известны и доступны изначально. Для такой постановки можно найти точное оптимальное (минимальное) время выполнения всего пакеты заданий с учетом производительности узлов, пропускных способностей и начального распределения заданий. Точность этого времени зависит от погрешности измерений этих величин и задержек коммуникации, там же в [21] приведены некоторые свойства устойчивости рассмотренной модели относительно этих помех.

Более формально модель выглядит следующим образом:

• Сеть состоит из п вычислителей.

• q¿ е Ж+ — начальный уровень загрузки ¿-го узла, обозначим Q = }п=1 — вектор загрузки.

• Связи между узлами имеют ограниченные пропускные способности. Будем считать, что эти связи задаются матрицей С = [C¿j}nС¿у е Ж, С¿у > 0 отлично от нуля только в том случае, если связь существует и обозначает пропускную способность связи от агента г к агенту у.

• p¿ е Ж+ — производительность г-го узла, обозначим P = [Рг}п=1 — вектор производительности.

Требуется найти такое управляющее воздействие и = {Ц/}П.=1 и скалярный параметр т, разрешающие следующую оптимизационную задачу:

[ е - т((и - ит)вп + Р) < 0п,

минимизировать т, при условиях < Q - т^ - ^)вп > 0п,

I 0 < Щ < Cij,

где 6п — единичный вектор длины п. При этом, управляющее воздействие представляет собой количество загрузки, которое должно быть передано по каждому из каналов в единицу времени, а параметр т —- время, за которое все задания могут быть исполнены.

Такая постановка во многом схожа с подходами, изученными в [22,23], применительно к планированию передачи сообщений в сети. Эта оптимизационная задача сводится к задаче параметрического потока, которая, как было указано ранее, имеет эффективные алгоритмы её решения.

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

6. ЗАКЛЮЧЕНИЕ

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

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

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

1. FordL.R., Fulkerson D.R. Maximal flow through a network// Canadian journal of Mathematics, 1956. Т. 8. № 3. P. 399-404.

2. FordL.R., Fulkerson D.R. Flows in networks. Princeton: Princeton University Press, 1962.

3. Dantzig G.B. et al. The generalized simplex method for minimizing a linear form under linear inequality restraints // Pacific Journal of Mathematics, 1955. Т. 5. № 2. P. 183-195.

4. Ahuja R.K. et al. Applications of network optimization // Handbooks in Operations Research and Management Science, 1995. Т. 7. P. 1-83.

5. Cormen T.H., Leiserson C.E., Rivest R.L., Stein C . Introduction to algorithms. Cambridge: MIT press, 2003.

6. ДиницЕ.А. Алгоритм решения задачи о максимальном потоке в сети со степенной оценкой / Докл. АН СССР, 1970. Т. 194. № 4. С. 754-757.

7. Edmonds J., Karp R.M. Theoretical improvements in algorithmic efficiency for network flow problems //Journal of the ACM (JACM), 1972. Т. 19. № 2. P. 248-264.

8. Карзанов А.В. Нахождение максимального потока в сети методом предпотоков // ДАН СССР, 1974. Т. 215. № 1. С. 49-52.

9. Goldberg A.V., Tarjan R.E. A new approach to the maximum-flow problem // Journal of the ACM (JACM), 1988. Т. 35. № 4. P. 921-940.

10. Goldberg A.V., Tarjan R.E. Efficient maximum flow algorithms // Communications of the ACM, 2014. Т. 57. № 8. P. 82-89.

11. Nesterov Y., Nemirovskii A., Ye Y. Interior-point polynomial algorithms in convex programming. Philadelphia: Society for Industrial and Applied Mathematics, 1994. Т. 13.

12. Gallo G., Grigoriadis M.D., Tarjan R.E. A fast parametric maximum flow algorithm and applications // SIAM Journal on Computing, 1989. Т. 18. № 1. P. 30-55.

13. Lovasz L., Plummer M.D. Matching theory //New York, 1986.

14. Tantawi A.N., Towsley D. Optimal static load balancing in distributed computer systems // Journal of the ACM (JACM), 1985. Т. 32. № 2. P. 445-465.

15. Kim C., Kameda H. An algorithm for optimal static load balancing in distributed computer systems // IEEE Transactions on Computers, 1992. Т. 41. № 3. P. 381-384.

16. Kim C., Kameda H. Optimal static load balancing of multi-class jobs in a distributed computer system // In: Proceedings of the 10th International Conference on Distributed Computing Systems, May 1990, P. 562—569.

17. Ni L.M., Hwang K. Optimal load balancing in a multiple processor system with many job classes // Software Engineering, IEEE Transactions on, 1985. № 5. P. 491-496.

18. Grosu D., Chronopoulos A.T. Noncooperative load balancing in distributed systems // Journal of Parallel and Distributed Computing, 2005. Т. 65. № 9. P. 1022-1034.

19. Grosu D., Chronopoulos A.T., Leung M.Y. Load balancing in distributed systems: An approach using cooperative games // Parallel and Distributed Processing Symposium, IEEE Computer Society, 2001. P. 196.

20. Altman E., Kameda H., Hosokawa Y. Nash equilibria in load balancing in distributed computer systems // International Game Theory Review, 2002. Т. 4. № 2. P. 91-100.

21. Мальковский Н.В. Модель балансировки загрузки в вычислительной сети с использованием задачи параметрического потока // Стохастическая оптимизация в информатике, 2014. Т. 10, в. 1. (Submitted).

22. Gusfield D. On scheduling transmissions in a network, Tech. Report YALEU DCS TR 481, Department of Computer Science, Yale University, New Haven, CT, 1986.

23. ItaiA., Rodeh M. Scheduling transmissions in a network // Journal of Algorithms, 1985. Т. 6. № 3. P. 409-429.

ABOUT MAXIMUM FLOW PROBLEM AND ITS APPLICATION TO MODERN

COMPUTATIONAL NETWORKS

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

Malkovskii N. V. Abstract

This paper is devoted to one of the main problems of graph theory, maximum flow problem, and its application for efficient network load balancing. The paper contains a guide to the maximum flow problem including brief history of the problem, related graph theory problems and basic algorithm concepts. Network load balancing model is considered based on a special case of parametric flow problem.

Keywords: optimization, scheduling, network flows, graph theory, maximum flow problem, parametric flow problem.

Мальковский Николай Владимирович, аспирант кафедры системного программирования СПбГУ, malkovskynv@gmail.com

(с) Наши авторы, 2014. Our authors, 2014.

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