Обобщенная задача построения сети Штейнера: различия между версиями

Перейти к навигации Перейти к поиску
м
нет описания правки
мНет описания правки
 
(не показано 7 промежуточных версий этого же участника)
Строка 6: Строка 6:




Формально исходными данными обобщенной задачи построения сети Штейнера является неориентированный мультиграф G = (V, E), в котором каждое ребро <math>e \in E \;</math> имеет неотрицательную стоимость cost c(e), а для каждой пары вершин <math>i, j \in V \;</math> имеется требование связности <math>r_{i,j} \in \mathbb{Z} \;</math>. Допустимое решение представляет собой подмножество ребер <math>E' \subseteq E \;</math>, такое, что каждая пара вершин <math>i, j \in V \;</math> соединена по меньшей мере <math>r_{i,j} \;</math> реберно-непересекащихся путей в графе G' = (V, E').
Формально исходными данными обобщенной задачи построения сети Штейнера является неориентированный мультиграф G = (V, E), в котором каждое ребро <math>e \in E \;</math> имеет неотрицательную стоимость c(e), а для каждой пары вершин <math>i, j \in V \;</math> имеется требование связности <math>r_{i,j} \in \mathbb{Z} \;</math>. Допустимое решение представляет собой подмножество ребер <math>E' \subseteq E \;</math>, такое, что каждая пара вершин <math>i, j \in V \;</math> соединена по меньшей мере <math>r_{i,j} \;</math> реберно-непересекащихся путей в графе G' = (V, E').




Строка 12: Строка 12:




Эта задача обобщает несколько классических задач конструирования сетей. Среди них можно упомянуть минимальное остовное дерево, дереве Штейнера и лес Штейнера. Наиболее общим случаем с ранее известной 2-аппроксимацией была задача построения леса Штейнера [1, 4].
Эта задача обобщает несколько классических задач конструирования сетей. Среди них можно упомянуть [[минимальное остовное дерево]], [[дерево Штейнера]] и [[лес Штейнера]]. Наиболее общим случаем с ранее известной 2-аппроксимацией была задача построения леса Штейнера [1, 4].




Уильямсон и др. [8] первыми представили нетривиальный алгоритм аппроксимации для обобщенной задачи построения сети Штейнера, получив 2k-аппроксимацию, где <math>k = max_{i,j \in V} \{ r_{i, j} \} \;</math>. Этот результат был улучшен до O(log k)-аппроксимации в работе Геманса и др. [3].
Уильямсон и др. [8] первыми представили нетривиальный аппроксимационный алгоритм для обобщенной задачи построения сети Штейнера, получив 2k-аппроксимацию, где <math>k = max_{i,j \in V} \{ r_{i, j} \} \;</math>. Этот результат был улучшен до O(log k)-аппроксимации в работе Геманса и др. [3].


== Основные результаты ==
== Основные результаты ==
Строка 32: Строка 32:




Для любого подмножества вершин <math>S \subseteq V \;</math> обозначим за <math>\delta (S) \;</math> множество ребер, строго одна из конечных точек которых принадлежит к S. Задача заключается в нахождении подмножества ребер минимальной стоимости <math>E' \subseteq E \;</math>, такого, что для любого подмножества вершин <math>S \subseteq V</math> выполнялось бы свойство <math>| \delta (S) \cap E' | \ge f(S) \;</math>.
Для любого подмножества вершин <math>S \subseteq V \;</math> обозначим за <math>\delta (S) \;</math> множество ребер, у которых строго одна из конечных точек принадлежит к S. Задача заключается в нахождении подмножества ребер минимальной стоимости <math>E' \subseteq E \;</math>, такого, что для любого подмножества вершин <math>S \subseteq V</math> выполнялось бы свойство <math>| \delta (S) \cap E' | \ge f(S) \;</math>.




Задачу можно эквивалентно представить в виде целочисленной программы. Для каждого ребра <math>e \in E \;</math> обозначим за <math>x_e \;</math> индикаторную переменную, обозначающую, принадлежит ли ребро e к решению.
Задачу можно эквивалентно представить в виде целочисленной программы. Для каждого ребра <math>e \in E \;</math> обозначим за <math>x_e \;</math> индикаторную переменную, обозначающую, принадлежит ли ребро e к решению.


Задача (IP)
'''Задача (IP)'''


Найти <math>min \sum_{e \in E} c(e) x_e \;</math>
Найти <math>min \sum_{e \in E} c(e) x_e \;</math>
Строка 43: Строка 43:
при условиях
при условиях


8S \subseteq V (1)
(1) <math>\sum_{e \in \delta (S)} x_e \ge f(s) \; \; \; \forall S \subseteq V</math>
eeS(S)
хе€{0,1} Ve € £ (2)


(2) <math>x_e \in \{ 0, 1 \} \; \; \; \forall e \in E</math>


Легко увидеть, что обобщенная сеть Штейнера представляет собой специальный случай задачи (IP), где для каждого S \subseteq V выполняется f(S) = maxi2S;j26Sfri;jg.
 
Легко увидеть, что обобщенная сеть Штейнера представляет собой специальный случай задачи (IP), где для каждого <math>S \subseteq V \;</math> верно <math>f(S) = max_{i \in S, j \notin S} \{ r_{i, j} \} \;</math>.




'''Техника'''
'''Техника'''


Алгоритм аппроксимации использует технику LP-округления. Исходная линейная программа (LP) получается из программы (IP) в результате замены ограничения целочисленности (2) на ограничение
Аппроксимационный алгоритм использует технику LP-округления. Исходная линейная программа (LP) получается из программы (IP) в результате замены ограничения целочисленности (2) на ограничение
8e 2E
 
(3)
(3) <math>0 \le x_e \le 1 \; \; \; \forall e \in E</math>
0 < xe < 1
 


Предполагается, что имеется оракул разделения для (LP). Легко увидеть, что такой оракул существует, если (LP) получено из обобщенной задачи построения сети Штейнера. Главный результат, использовавшийся в процессе разработки и анализа алгоритма, представлен в следующей теореме.
Предполагается, что имеется оракул разделения для (LP). Легко увидеть, что такой оракул существует, если (LP) получено из обобщенной задачи построения сети Штейнера. Главный результат, использовавшийся в процессе разработки и анализа алгоритма, представлен в следующей теореме.




'''Теорема 1. В любом базовом решении задачи (LP) имеется по меньшей мере одно ребро e 2 E с xe > 1/2.'''
'''Теорема 1. В любом базовом решении задачи (LP) имеется по меньшей мере одно ребро <math>e \in E \;</math> с <math>x_e \ge 1/2 \;</math>.'''




Алгоритм аппроксимации выполняет итеративное LP-округление. Пусть имеется базовое оптимальное решение (LP); обозначим за E* \subseteq E подмножество ребер e с xe > 1/2. Ребра из E* удаляются из графа (и затем добавляются к решению), после чего задача рекурсивно решается на оставшемся графе за счет решения (LP) на G* = (V, En Ј*), где для каждого подмножества S \subseteq V имеется новое требование f(S) \S(S) \ E* j. Следующее наблюдение приводит к получению аппроксимации с коэффициентом 2: если E0 является 2-аппроксимацией для оставшейся задачи, то E0 [ E* является 2-аппроксимацией для исходной задачи.
Аппроксимационный алгоритм выполняет итеративное LP-округление. Пусть имеется базовое оптимальное решение (LP); обозначим за <math>E^* \subseteq E \;</math> подмножество ребер e с <math>x_e \ge 1/2 \;</math>. Ребра из E* удаляются из графа (и затем добавляются к решению), после чего задача рекурсивно решается на оставшемся графе при помощи решения (LP) на G* = (V, E \ E*), где для каждого подмножества <math>S \subseteq V \;</math> имеется новое требование <math>f(S) - | \beta (S) \cap E^* | \;</math>. Следующее наблюдение приводит к получению аппроксимации с коэффициентом 2: если E' является 2-аппроксимацией для оставшейся задачи, то <math>E' \cap E^* \;</math> является 2-аппроксимацией для исходной задачи.




Пусть дано любое решение (LP). Множество S \subseteq V называется плотным в том и только том случае, если ограничение (1) удовлетворяется для S в виде равенства. Доказательство теоремы 1 включает построение большого ламинарного семейства плотных множеств (семейства, в котором для любой пары множеств либо одно множество содержит другое, либо множества не пересекаются). После этого применяется продуманная схема учета, которая назначает ребра множествам ламинарного семейства, чтобы показать, что существует по меньшей мере одно ребро e 2 E с xe > 1/2.
Пусть дано любое решение (LP). Множество <math>S \subseteq V \;</math> называется ''плотным'' в том и только том случае, если ограничение (1) удовлетворяется для S в виде равенства. Доказательство теоремы 1 включает построение большого ''ламинарного семейства'' плотных множеств (семейства, в котором для любой пары множеств либо одно множество содержит другое, либо множества не пересекаются). После этого применяется продуманная схема учета, которая назначает ребра множествам ламинарного семейства, чтобы показать, что существует по меньшей мере одно ребро <math>e \in E \;</math> с <math>x_e \ge 1/2 \;</math>.


== Применение ==
== Применение ==
Задача о создании обобщенной сети Штейнера – очень простая и естественная задача проектирования сетей, имеющая множество вариантов применения в различных областях, включая разработку сетей коммуникаций, проектирование СБИС и маршрутизацию транспорта. Одним из примеров может служить построение сетей коммуникаций с повышенной живучестью, остающихся функциональными даже после отказа некоторых компонентов сети (подробнее см. в [ ]).
Задача о создании обобщенной сети Штейнера – очень простая и естественная задача проектирования сетей, имеющая множество вариантов применения в различных областях, включая разработку сетей коммуникаций, проектирование СБИС и маршрутизацию транспорта. Одним из примеров может служить построение сетей коммуникаций с повышенной живучестью, остающихся функциональными даже после отказа некоторых компонентов сети (подробнее см. в [5]).


== Открытые вопросы ==
== Открытые вопросы ==
Алгоритм 2-аппроксимации Джейна [ ] для обобщенной задачи построения сети Штейнера основан на LP-округлении и имеет достаточно большое время выполнения. Было бы любопытно разработать алгоритм комбинаторной аппроксимации для этой задачи.
Алгоритм 2-аппроксимации Джейна [6] для обобщенной задачи построения сети Штейнера основан на LP-округлении и имеет достаточно большое время выполнения. Было бы любопытно разработать алгоритм комбинаторной аппроксимации для этой задачи.




4501

правка

Навигация