Дистанционный оракул
В вычислениях оракул расстояний ( DO ) — это структура данных для вычисления расстояний между вершинами графа .
Введение
[ редактировать ]Пусть G ( V , E ) — неориентированный взвешенный граф с n = | В | узлы и m = | Е | края. Нам хотелось бы ответить на запросы вида «каково расстояние между узлами s и t ?».
Один из способов сделать это — просто запустить алгоритм Дейкстры . Это требует времени и не требует дополнительного места (кроме самого графика).
Чтобы более эффективно отвечать на многие запросы, мы можем потратить некоторое время на предварительную обработку графа и создание вспомогательной структуры данных.
Простая структура данных, которая достигает этой цели, представляет собой матрицу , которая определяет для каждой пары узлов расстояние между ними. Эта структура позволяет нам отвечать на запросы в постоянное время. , но требует дополнительное пространство. Его можно инициализировать вовремя используя алгоритм кратчайших путей для всех пар, такой как алгоритм Флойда – Уоршалла .
DO находится между этими двумя крайностями. Он использует менее пространство, чтобы ответить на вопросы менее чем за время. Большинству ДО приходится идти на компромисс с точностью, т. е. они возвращают не точное расстояние, а скорее его аппроксимацию с постоянным коэффициентом.
Приблизительный DO
[ редактировать ]Торуп и Цвик [1] описать более 10 различных DO. Затем они предлагают новый DO, который для каждого k требует места. , так что на любой последующий запрос о расстоянии можно приблизительно ответить за время . Возвращенное приблизительное расстояние не превышает максимального значения. , то есть частное, полученное путем деления расчетного расстояния на фактическое расстояние, лежит между 1 и . Время инициализации .
Некоторые особые случаи включают в себя:
- Для мы получаем простую матрицу расстояний.
- Для мы получаем структуру, используя пространство, которое отвечает на каждый запрос за постоянное время и с коэффициентом аппроксимации не более 3.
- Для , мы получаем структуру, используя пространство, время запроса , и растянуть .
Более высокие значения k не улучшают пространство или время предварительной обработки.
DO для общих метрических пространств
[ редактировать ]Оракул состоит из уменьшающегося набора из k +1 наборов вершин:
- Для каждого : содержит каждый элемент , независимо, с вероятностью . Обратите внимание, что ожидаемый размер является . Элементы называются i-центрами .
Для каждого узла v вычислите его расстояние от каждого из этих наборов:
- Для каждого : и . то есть является i-центром, ближайшим к v , и это расстояние между ними. Обратите внимание, что при фиксированном v это расстояние слабо увеличивается с i . Также обратите внимание, что для каждого v , и .
- .
Для каждого узла v вычислите:
- Для каждого : . содержит все вершины из которые строго ближе к v, чем все вершины в . Частичные союзы s — шары возрастающего диаметра, содержащие вершины с расстояниями до первой вершины следующего уровня.
Для каждого v вычислите его группу :
Можно показать, что ожидаемый размер самое большее .
За каждую связку , создайте хеш-таблицу , содержащую все , расстояние .
Общий размер структуры данных
После инициализации этой структуры следующий алгоритм находит расстояние между двумя узлами u и v :
- пока :
- (поменяйте местами два входных узла; это не меняет расстояние между ними, поскольку граф неориентированный).
- возвращаться
Можно показать, что на каждой итерации расстояние растет максимум на . С , существует не более k -1 итераций, поэтому, наконец, . Теперь по неравенству треугольника , , поэтому возвращаемое расстояние не превышает .
Улучшения
[ редактировать ]Приведенный выше результат позже был улучшен Патраску и Родитти. [2] кто предлагает DO большого размера который возвращает аппроксимацию коэффициента 2.
Сокращение от оракула пересечения множества
[ редактировать ]Если имеется ДО с коэффициентом аппроксимации не более 2, то можно построить оракул пересечения множеств (SIO) со временем запроса. и требования к пространству , где n — количество наборов, а N — сумма их размеров; см. установленное пересечение oracle#Reduction до приблизительного расстояния oracle .
Считается, что проблема SIO не имеет нетривиального решения. Тоесть, это требует пространство, чтобы вовремя отвечать на вопросы , например, используя n на таблицу размером n с пересечением каждых двух наборов. Если эта гипотеза верна, это означает, что не существует ДО с коэффициентом аппроксимации менее 2 и постоянным временем запроса. [2]
Ссылки
[ редактировать ]- ^ Торуп, М .; Цвик, У. (2005). «Приблизительное расстояние оракула». Журнал АКМ . 52 : 1–24. CiteSeerX 10.1.1.295.4480 . дои : 10.1145/1044731.1044732 . S2CID 5425739 .
- ^ Jump up to: а б Патраску, М. ; Родитти, Л. (2010). Оракулы расстояния за границей Торупа-Цвика . 2010 51-й ежегодный симпозиум IEEE по основам информатики (FOCS). п. 815. дои : 10.1109/FOCS.2010.83 . ISBN 978-1-4244-8525-3 .