Сепараторы в графах: различия между версиями

Перейти к навигации Перейти к поиску
м
Строка 4: Строка 4:


== Постановка задачи ==
== Постановка задачи ==
Задача о (сбалансированном) сепараторе заключается в нахождении сечения минимального (реберного) веса в графе, такого, что два сегмента графа имеют примерно одинаковый (вершинный) вес.
Задача о (сбалансированном) сепараторе заключается в нахождении разреза минимального (реберного) веса в графе, такого, что два сегмента графа имеют примерно одинаковый (вершинный) вес.




Более формально: пусть даны неориентированный граф <math>G = (V, E) \;</math> с неотрицательной весовой функцией на ребрах <math>c: E \to \mathbb{R}_+ \;</math> и неотрицательной весовой функцией на вершинах <math>\pi : V \to \mathbb{R}_+ \;</math>, а также константа <math>b \le 1/2 \;</math>. Сечение <math>(S : V \; \backslash \; S)</math> называется b-сбалансированным, или (b, 1 - b)-сепаратором, если <math>b \; \pi (V) \le \pi (S) \le (1 - b) \pi(V) \;</math> (где <math>\pi(S) \;</math> обозначает <math>\sum_{v \in S} \pi (v) \;</math>).
Более формально: пусть даны неориентированный граф <math>G = (V, E) \;</math> с неотрицательной весовой функцией на ребрах <math>c: E \to \mathbb{R}_+ \;</math> и неотрицательной весовой функцией на вершинах <math>\pi : V \to \mathbb{R}_+ \;</math>, а также константа <math>b \le 1/2 \;</math>. Разрез <math>(S : V \; \backslash \; S)</math> называется b-сбалансированным, или (b, 1 - b)-сепаратором, если <math>b \; \pi (V) \le \pi (S) \le (1 - b) \pi(V) \;</math> (где <math>\pi(S) \;</math> обозначает <math>\sum_{v \in S} \pi (v) \;</math>).




Строка 21: Строка 21:
Тесно связана с этой задачей следующая:
Тесно связана с этой задачей следующая:


'''Задача 2 (самое разреженное сечение (для материальных потоков))'''
'''Задача 2 (самый неплотный разрез (относительно произведения))'''


Дано: граф с взвешенными вершинами и ребрами <math>G = (V, E, c, \pi) \;</math>.
Дано: граф с взвешенными вершинами и ребрами <math>G = (V, E, c, \pi) \;</math>.
Строка 29: Строка 29:




Задача 2 представляет собой наиболее общий случай задачи нахождения самого разреженного сечения, решенной Лейтоном и Рао. Если установить веса всех вершин равными 1, получим однородную версию этой задачи:
Задача 2 представляет собой наиболее общий случай задачи нахождения самого неплотного разреза, решенной Лейтоном и Рао. Если установить веса всех вершин равными 1, получим однородную версию этой задачи:




'''Задача 3 (самое разреженное сечение (однородное))'''
'''Задача 3 (самый неплотный разрез (однородная версия))'''


Дано: граф с взвешенными ребрами G = (V, E, c).
Дано: граф с взвешенными ребрами G = (V, E, c).


Требуется: найти сечение <math>(S : V \; \backslash \; S)</math>, минимизирующее соотношение <math>(c( \delta (S))) / (|S| | V \; \backslash \; S |)</math>.
Требуется: найти разрез <math>(S : V \; \backslash \; S)</math>, минимизирующий соотношение <math>(c( \delta (S))) / (|S| | V \; \backslash \; S |)</math>.




Самое разреженное сечение возникает в интегральной версии задачи линейного программирования, двойственной задаче параллельного управления несколькими товарными потоками (задача 4). Экземпляр задачи управления несколькими товарными потоками определяется на графе с взвешенными ребрами: для каждого из k ''товаров'' обозначаются источник <math>s_i \in V \;</math>, сток <math>t_i \in V \;</math> и спрос <math>D_i \;</math>. Допустимое решение этой задачи определяет для каждого товара функцию потока на E, таким образом направляя поток определенного объема из <math>s_i \;</math> в <math>t_i \;</math>.
Самый неплотный разрез возникает в интегральной версии задачи линейного программирования, двойственной задаче параллельного управления несколькими товарными потоками (задача 4). Экземпляр задачи управления несколькими товарными потоками определяется на графе с взвешенными ребрами: для каждого из k ''товаров'' обозначаются источник <math>s_i \in V \;</math>, сток <math>t_i \in V \;</math> и спрос <math>D_i \;</math>. Допустимое решение этой задачи определяет для каждого товара функцию потока на E, таким образом направляя поток определенного объема из <math>s_i \;</math> в <math>t_i \;</math>.




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




Строка 49: Строка 49:
Дано: граф с взвешенными ребрами <math>G = (V, E, c) \;</math>, товары <math>(s_1, t_1, D_1), ..., (s_k, t_k, D_k) \;</math>.
Дано: граф с взвешенными ребрами <math>G = (V, E, c) \;</math>, товары <math>(s_1, t_1, D_1), ..., (s_k, t_k, D_k) \;</math>.


Требуется: обеспечить управление несколькими товарными потоками, направляющее <math>f D_i \;</math> единиц товара i из <math>s_i \;</math> в <math>t_i \;</math> для каждого i одновременно, не нарушая заданной емкости каждого ребра.
Требуется: обеспечить управление несколькими товарными потоками, направляющее <math>f D_i \;</math> единиц товара i из <math>s_i \;</math> в <math>t_i \;</math> для каждого i одновременно, не нарушая заданной пропускной способности каждого ребра.


Цель: максимизация f.
Цель: максимизация f.




Задача 4 может быть решена за полиномиальное время при помощи методов линейного программирования. Она также допускает произвольную аппроксимацию при помощи нескольких более эффективных комбинаторных алгоритмов (см. раздел «Реализация»). Максимальное значение f, для которого возможно управление несколькими товарными потоками, называется [[максимальный поток|максимальным потоком]] для данного экземпляра задачи. ''Минимальным сечением'' является минимальное соотношение <math>(c( \delta (S)))/(D(S, V \; \backslash \; S)) \;</math>, где <math>D(S, V \; \backslash \; S) = \sum_{i: | \{ s_i, t_i \} \; \cap \; S | = 1} D_i</math>. Эта двойственная интерпретация приводит нас к самой общей версии задачи – нахождению неоднородного самого разреженного сечения (задача 5).
Задача 4 может быть решена за полиномиальное время при помощи методов линейного программирования. Она также допускает произвольную аппроксимацию при помощи нескольких более эффективных комбинаторных алгоритмов (см. раздел «Реализация»). Максимальное значение f, для которого возможно управление несколькими товарными потоками, называется [[максимальный поток|максимальным потоком]] для данного экземпляра задачи. ''Минимальным разрезом'' является минимальное соотношение <math>(c( \delta (S)))/(D(S, V \; \backslash \; S)) \;</math>, где <math>D(S, V \; \backslash \; S) = \sum_{i: | \{ s_i, t_i \} \; \cap \; S | = 1} D_i</math>. Эта двойственная интерпретация приводит нас к самой общей версии задачи – нахождению неоднородного самого неплотного разреза (задача 5).




'''Задача 5 (самое разреженное сечение (неоднородное))'''
'''Задача 5 (самый неплотный разрез (неоднородная версия))'''


Дано: граф с взвешенными ребрами  <math>G = (V, E, c) \;</math>, товары <math>(s_1, t_1, D_1), ..., (s_k, t_k, D_k) \;</math>.
Дано: граф с взвешенными ребрами  <math>G = (V, E, c) \;</math>, товары <math>(s_1, t_1, D_1), ..., (s_k, t_k, D_k) \;</math>.


Требуется: найти минимальное сечение <math>(S : V \; \backslash \; S)</math>, иначе говоря, сечение с минимальным соотношением <math>(c( \delta (S)))/(D(S, V \; \backslash \; S)) \;</math>.
Требуется: найти минимальный разрез <math>(S : V \; \backslash \; S)</math>, иначе говоря, разрез с минимальным соотношением <math>(c( \delta (S)))/(D(S, V \; \backslash \; S)) \;</math>.




(Большая часть посвященных этой теме работ затрагивает либо однородную, либо общую неоднородную версии, нередко называя их просто «задачами о самом разреженном сечении»).
(Большая часть посвященных этой теме работ затрагивает либо однородную, либо общую неоднородную версии, нередко называя их просто «[[Самый неплотный разрез|задачами о самом неплотном разрезе]]»).


== Основные результаты ==
== Основные результаты ==
4817

правок

Навигация