Аноним

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

Материал из WEGA
Строка 10: Строка 10:


== Нотация ==
== Нотация ==
Пусть даны ориентированный граф G = (V, E) и весовая функция w: E ! R на его ориентированных ребрах. Маркировка расстояния для вершины-источника s представляет собой функцию d: V ! R, такую, что d(v) имеет минимальную длину среди всех путей из s в v, где длина пути P определена как Pe2P w(e).
Пусть даны ориентированный граф G = (V, E) и весовая функция <math>w: E \to \mathbb{R} \;</math> на его ориентированных ребрах. Маркировка расстояния для вершины-источника s представляет собой функцию <math>d: V \to \mathbb{R} \;</math>, такую, что d(v) имеет минимальную длину среди всех путей из s в v, где [[длина пути]] P определена как <math>\sum_{e \in P} w(e) \;</math>.




Задача 1 (Поиск кратчайших путей с единственным источником)
'''Задача 1 (Поиск кратчайших путей с единственным источником)'''


Дано: ориентированный граф G = (V, E), весовая функция w: E ! R, вершина-источник s 2 V.
Дано: ориентированный граф G = (V, E), весовая функция <math>w: E \to \mathbb{R} \;</math>, вершина-источник <math>s \in V \;</math>.


Требуется: если граф G не содержит циклов отрицательной длины, вывести маркировку расстояния d для вершин-источников. В противном случае выдать сообщение, что в графе имеется цикл отрицательной длины.
Требуется: если граф G не содержит циклов отрицательной длины, вывести маркировку расстояния d для вершин-источников. В противном случае выдать сообщение, что в графе имеется цикл отрицательной длины.




Алгоритм Факчаренфола и Рао [ ] предназначен для случая планарных графов и выполняется за время O(n log n), улучшив время O(n3/2) алгоритма Липтона, Роуза и Тарьяна [ ] и O(n4/3 log nL) – алгоритма Хензингера, Клейна, Рао и Субраманиама [6].
Алгоритм Факчаренфола и Рао [4] предназначен для случая планарных графов и выполняется за время <math>O(n \; log^3 \; n)</math>, улучшив время <math>O(n^{3/2}) \;</math> алгоритма Липтона, Роуза и Тарьяна [9] и <math>O(n^{4/3} \; log \; nL)</math> – алгоритма Хензингера, Клейна, Рао и Субраманиама [6].


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




Декомпозиция графа представляет собой множество подмножеств P1, P2, ... Pk (не обязательно непересекающихся), таких, что объединение всех подмножеств равно V и для всех ребер e = (u, v) 2 E существует уникальное множество Pi, содержащее e. Вершина v является граничной вершиной множества Pi, если v 2 Pi и существует ребро e = (v, x), такое, что x $ Pi. Подграф, порожденный на подмножестве Pi, называется фрагментом декомпозиции.
[[Декомпозиция графа]] представляет собой множество подмножеств <math>P_1, P_2, ..., P_k \;</math> (не обязательно непересекающихся), таких, что объединение всех подмножеств равно V и для всех ребер <math>e = (u, v) \in E \;</math> существует уникальное множество <math>P_i \;</math>, содержащее e. Вершина v является [[граничная вершина|граничной вершиной]] множества <math>P_i \;</math>, если <math>v \in P_i \;</math> и существует ребро e = (v, x), такое, что <math>x \notin P_i \;</math>. Подграф, порожденный на подмножестве <math>P_i \;</math>, называется фрагментом декомпозиции.




Строка 49: Строка 49:


Пусть дано вложение фрагмента. Дыра представляет собой ограниченную грань, в которой все смежные вершины являются граничными вершинами. В идеале можно надеяться на то, что существует планарное вложение любого фрагмента рекурсивной декомпозиции, в котором все граничные вершины располагаются на одной грани и упорядочены по кругу, т.е. в каждом фрагменте не имеется дыр. Это не всегда оказывается верным, но алгоритм работает с любой декомпозицией с константным количеством дыр в каждом фрагменте. Эту декомпозицию можно найти за время O(n log n) при помощи алгоритма Миллера [12] для поиска простого циклического сепаратора.
Пусть дано вложение фрагмента. Дыра представляет собой ограниченную грань, в которой все смежные вершины являются граничными вершинами. В идеале можно надеяться на то, что существует планарное вложение любого фрагмента рекурсивной декомпозиции, в котором все граничные вершины располагаются на одной грани и упорядочены по кругу, т.е. в каждом фрагменте не имеется дыр. Это не всегда оказывается верным, но алгоритм работает с любой декомпозицией с константным количеством дыр в каждом фрагменте. Эту декомпозицию можно найти за время O(n log n) при помощи алгоритма Миллера [12] для поиска простого циклического сепаратора.


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

правок