4551
правка
Irina (обсуждение | вклад) |
Irina (обсуждение | вклад) |
||
Строка 48: | Строка 48: | ||
== Техника == | == Техника == | ||
Далее будет на высоком уровне описана основная идея Рэкке. Для подмножества S | Далее будет на высоком уровне описана основная идея Рэкке. Для подмножества <math>S \subset V</math> обозначим за cap(S) совокупную пропускную способность ребер, пересекающих разрез (S, V \ S), а за dem(S) – совокупный спрос, который должен быть направлен через разрез (S, V \ S). Заметим, что <math>q = max_{S \subset V} dem(S)/cap(S)</math> – нижняя граница нагруженности любого решения. С другой стороны, из основных выводов работ [3, 13], относящихся к многопродуктовым потокам и разрезам, следует, что существует маршрутизация, такая, что максимальная нагруженность не превышает O(q log k), где k – число отдельных пар «источник-сток». Заметим, однако, что одного этого недостаточно для качественной маршрутизации в отсутствие информации, поскольку паре <math>(s_i, t_i)</math> могут требоваться разные маршруты для разных множеств значений спроса. Основная идея Рэкке заключалась в наложении древовидной структуры для маршрутизации на графе, позволяющей действовать в отсутствие информации. Этот подход формализован при помощи описанной далее иерархической декомпозиции. | ||
Рассмотрим следующую иерархическую декомпозицию графа G = (V, E). Начинаем с множества S = V и последовательно разбиваем множества до тех пор, пока каждое из них не будет состоять из одиночной вершины. Иерархическую декомпозицию можно естественным образом рассматривать как дерево T, корень которого соответствует множеству V, а листья – одноэлементным множествам {v}. Обозначим за | Рассмотрим следующую иерархическую декомпозицию графа G = (V, E). Начинаем с множества S = V и последовательно разбиваем множества до тех пор, пока каждое из них не будет состоять из одиночной вершины. Иерархическую декомпозицию можно естественным образом рассматривать как дерево T, корень которого соответствует множеству V, а листья – одноэлементным множествам {v}. Обозначим за <math>S_i</math> подмножество V, соответствующее вершине i в T. Назначим ребру дерева (i, j), где i является потомком j, пропускную способность <math>cap(S_i)</math> (заметим, что это пропускная способность пути из <math>S_i</math> в оставшуюся часть G, а не пути между <math>S_i</math> и <math>S_j</math> в графе G). Дерево T используется для моделирования маршрутов в G и наоборот. Пусть задан спрос на участке между вершинами u и v в графе G. Рассмотрим соответствующий (уникальный) маршрут между листьями, соответствующими {u} и {v}, в дереве T. Для любого множества значений спроса легко увидеть, что нагруженность в T не превышает нагруженность в G. И наоборот, Рэкке показал, что существует также дерево T, маршруты в котором могут быть отображены на потоки в G таким образом, что для любого множества значений спроса нагруженность в G не более чем в <math>O(log^3 n)</math> раз превышает нагруженность в T. В этом отображении поток вдоль пути (i, j) в дереве T соответствует подходящим образом построенному потоку между множествами <math>S_i</math> и <math>S_j</math> в графе G. Поскольку маршрут между любыми двумя вершинами в T уникален, получаем маршрутизацию (в отсутствие информации) для G. | ||
Рэкке использует изобретательный подход для доказательства существования такой иерархической декомпозиции. Полное описание построения не будет здесь приведено, однако полезно понимать, каким требованиям должна удовлетворять подобная декомпозиция. Во-первых, дерево T должно отражать все узкие места графа G, т.е. если существует множество значений спроса, вызывающее высокую нагруженность G, то оно должно также вызывать высокую нагруженность T. Естественный способ построения T выглядит следующим образом: начать с V, разбить V вдоль узкого места (формально – вдоль разреза с низким уровнем разреженности), рекурсивно повторить. Однако реализации этого слишком простого подхода недостаточно для успешной работы. Как будет показано ниже, дерево T также должно удовлетворять двум другим естественным условиям, называемым свойствами пропускной способности и веса и мотивированным следующим образом. Рассмотрим вершину i, соединенную с ее предком j в T. Это значит, что i должна направить поток dem( | Рэкке использует изобретательный подход для доказательства существования такой иерархической декомпозиции. Полное описание построения не будет здесь приведено, однако полезно понимать, каким требованиям должна удовлетворять подобная декомпозиция. Во-первых, дерево T должно отражать все узкие места графа G, т.е. если существует множество значений спроса, вызывающее высокую нагруженность G, то оно должно также вызывать высокую нагруженность T. Естественный способ построения T выглядит следующим образом: начать с V, разбить V вдоль узкого места (формально – вдоль разреза с низким уровнем разреженности), рекурсивно повторить. Однако реализации этого слишком простого подхода недостаточно для успешной работы. Как будет показано ниже, дерево T также должно удовлетворять двум другим естественным условиям, называемым свойствами пропускной способности и веса и мотивированным следующим образом. Рассмотрим вершину i, соединенную с ее предком j в T. Это значит, что i должна направить поток <math>dem(S_i)</math> из <math>S_i</math>, что вызывает нагруженность <math>dem(S_i)/cap(S_i)</math> в T. Однако, когда T отображается обратно на G, весь поток, выходящий из <math>S_i</math>, должен пройти через <math>S_j</math>. Чтобы гарантировать, что ребра между <math>S_i</math> и <math>S_j</math> не будут перегружены, необходимо, чтобы пропускная способность пути из <math>S_i</math> в <math>S_j</math> была не слишком мала по сравнению с пропускной способностью путей из <math>S_i</math> в оставшуюся часть графа <math>V \backslash S_i</math>. Это условие называется ''свойством пропускной способности''. Рэкке гарантирует, что это отношение всегда составляет <math>\Omega(1 / log \; n)</math> для всех <math>S_i</math> и <math>S_j</math>, соответствующих ребрам (i, j) дерева. ''Свойство веса'' объясняется следующим образом. Рассмотрим вершину j дерева T с потомками <math>i_1, ..., i_p</math>. Свойство веса, в сущности, требует, чтобы множества <math>S_{i_1}, ..., S_{i_p}</math> были тесно связанными друг с другом, даже если они ограничены подграфом Sj. Чтобы понять, зачем это нужно, рассмотрим любую коммуникацию между вершинами, например, i1 и i2 в дереве T. Для этого необходим маршрут из i1 в j и далее в i2, и, следовательно, в графе G <math>S_{i_1}</math> не может использовать ребра, не входящие в <math>S_j</math>, для коммуникации с <math>S_{i_2}</math>. Рэкке показывает, что эти условия являются достаточными и что можно получить удовлетворяющую им декомпозицию. | ||
правка