Структура данных для кратчайших путей

19

Пусть G - невзвешенный неориентированный граф с n вершинами и m ребрами. Можно ли предварительно обработать G и создать структуру данных размером mpolylog(n) чтобы он мог отвечать на запросы вида «расстояние между u и v » за время O (n)?

Проблема кажется слишком простой, чтобы быть нерешенной.

ilyaraz
источник
1
В ответ на ваше последнее замечание о том, что «слишком простой, чтобы его нельзя было решить»: если на вопрос нужно отвечать в постоянное время, он действительно хорошо изучен. Но суть вашего вопроса в том, что вы предоставляете O (n) время для запроса (вместо O (1) или тривиально O (m)). Хотя я думаю, что это интересный вопрос, я не думаю, что этот вопрос имеет фундаментальное значение.
Цуёси Ито
1
@TsuyoshiIto - я не понимаю, почему вопрос теряет свою «фундаментальную важность», если он допускает суперконстантное, но сублинейное время запроса. Например, предположим, что я могу решить вышеуказанную проблему с тем ограничением, что на удаленные запросы можно ответить за O(n1ε) время для некоторого ε>0 , а время обработки не превышает O(n3ε) - разве это не даст мне субкубический алгоритм для вычисления кратчайших путей? Я лично считаю, что это очень интересный вопрос.
Rachit
Я не знаю, существует ли общий путь или нет, но есть хороший способ в ограниченных графиках срезов, см. Запрос Кратчайшего пути на ограниченных графиках срезов
Saeed
Также, если вы можете создать деревья кратчайшего пути (начиная с каждого узла), а затем ответить на запрос кратчайшего пути (по связанному корню) в O ( n ) , или аналогичным образом вы можете построить данные структура с меньшим объемом памяти. m=Ω(n2)O(n)
Саид

Ответы:

9

Это очень интересный вопрос. На высоком уровне вы спрашиваете, можно ли предварительно обработать граф таким образом, чтобы запросы по кратчайшему пути стали независимыми от плотности графа, без использования большого дополнительного пространства - интересно, но, как вы говорите, не решено.

Если вы довольны приблизительными расстояниями, вот способ получить приближение. Пусть G - взвешенный неориентированный граф с n узлами и m ребрами. В следующей статье показано, что для приближенных дистанционных запросов проектирование структур данных для графов с m ребрами не сложнее, чем для графов, в которых каждый узел имеет степень, ограниченную m / n :2Gnmmm/n

Р. Агарвал, П. Б. Годфри, С. Хар-Пелед, Приближенные дистанционные запросы и компактная маршрутизация в разреженных графах, INFOCOM 2011

Итак, предположим, что - ограниченный граф с m / n- степенью. Выборка α = O ( m / n ) узлов равномерно случайным образом; Назовите эти ориентиры. Во время фазы предварительной обработки сохраняйте расстояние от каждого узла ориентира до каждого другого узла на графике; это требует O ( м ) пространства. Для каждого узла u сохраните его ближайший ориентир ( u ) . Кроме того, храните график в структуре данных, скажем, как список смежности.Gm/nα=O(m/n)O(m)u(u)

Когда запрашивается расстояние между и v , растут шары вокруг обоих узлов - шар узла w определяется как набор узлов, которые строго ближе к w, чем к его ближайшему ориентиру, например, ( w ) . Можно ожидать, что размер каждого шарика O ( n 2 / m ) , в ожидании. Пусть Γ ( u ) = B ( u ) N ( B ( u ) ) , где B ( uuvww(w)O(n2/m)Γ(u)=B(u)N(B(u)) - шар узла u, а N ( B ( u ) ) - множество соседей узлов в B ( u ) . Можноожидать,что размер Γ ( u ) равен O ( n ) в ожидании.B(u)uN(B(u))B(u)Γ(u)O(n)

Отвечая на вопрос: если , вернуть min x Γ ( u ) Γ ( v ) { d ( u , x ) + d ( v , x ) } ; иначе, если d ( u , ( u ) ) d ( v , ( v)Γ(u)Γ(v)minxΓ(u)Γ(v){d(u,x)+d(v,x)} , вернуть d ( u , ( u ) ) + d ( ( u ) , v ) ; иначе вернуть d ( v , ( v ) ) + d ( ( v ) , u ) . Нетрудно показать, что это 2- приближение.d(u,(u))d(v,(v))d(u,(u))+d((u),v)d(v,(v))+d((v),u)2

С точки зрения времени запроса, обратите внимание, что растущим шарам требуется времени для графа с m / n- градусной степенью ; построение Γ ( u ) и Γ ( v ) с учетом соответствующих шаров занимает O ( n ) времени (поскольку в структуре данных хранятся соседи); и проверка того, является ли Γ ( u ) Γ ( v ) пустой или нет, также занимает O ( n ) время.O(n)m/nΓ(u)Γ(v)O(n)Γ(u)Γ(v)O(n)

Вышеуказанные границы находятся в ожидании; Я думаю, что это легко дерандомизировать конструкцию. К сожалению, этот метод не позволяет получить приближение лучше, чем . Это очень интересный вопрос, хотя ....2

Rachit
источник
Вышеупомянутая техника не использует тот факт, что ваш входной граф является невзвешенным; может быть, есть что-то интересное, что вы можете сделать, используя этот факт, но я не могу придумать способ получения точных расстояний. Например, можно сократить время запроса до и получить расстояние, ограниченное 2 d + 1 , где d - точное расстояние между u и v . O(n2/m)2d+1duv
Рахит
Я понял, что не понимаю, почему это 2-приближение. Торуп-Цвик в тех же ситуациях дает 3-ок.
Ильяраз
@ilyaraz: Обратите внимание, что схема Торупа-Цвика не требует проверки (и, следовательно, отвечает на запросы почти в постоянное время). Смотрите документ, который я упомянул выше, для доказательства растяжения 2 . Γ(u)Γ(v)2
Рахит
4

То, что вам нужно, называется «оракул расстояния». К сожалению, я не очень знаком с дистанционными оракулами, поэтому могу только отослать вас к основополагающему документу благодаря Торупу и Цвику:

Миккель Торуп и Ури Цвик. Приблизительное расстояние оракулов. STOC '01, 2001.

Вот выдержка из аннотации:

Пусть - неориентированный взвешенный граф с | V | = n и | E | = М . Пусть k будет целым числом. Мы показываем, что G = ( V , E ) можно предварительно обработать за ожидаемое время O ( k m n 1 / k ) , построив структуру данных размером O ( k n 1 + 1 / k).G=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k) , так что на любой последующий дистанционный запрос можно ответить примерно за O ( k ) время. Приблизительное возвращаемое расстояние имеет растяжение не более 2 k - 1 , т. Е. Частное, полученное путем деления расчетного расстояния на фактическое расстояние, лежит между 1 и 2 k - 1 . [...] Требуемое пространство нашего алгоритма является [...] по существу оптимальным.O(kn1+1/k)O(k)2k12k1

Согласно их результатам, то, что вы запрашиваете, в основном выполнимо даже для взвешенных графиков: выбор дает оракула размера O ( n 2 ), полученного в ожидаемое время O ( m n ) , который может ответить на ваши запросы кратчайшего пути с 1 - растянуть в O ( 1 ) раз!k=1O(n2)O(mn)1O(1)

Дистанция оракулов - это очень хорошо изученная область, так что я думаю, вы сможете копать дальше.

Габор Ретвари
источник
2
Версия журнала: JACM 2005 .
Цуёси Ито
3
Используя пространство можно наивно хранить справочную таблицу. Итак, эта статья (о которой я знал) здесь неактуальна. O(n2)
Ильяраз
1
Справедливо. В результате наиболее близко к тому , что вы запрашиваете AFAIK для графов со средней степенью , что дает стретч-2 пути с O ( п 3 / 2 ) пространств в O ( Θ(logn)O(n3/2)время запроса. (Р. Агарвал, П. Годфри и С. Хар-Пелед, «Приблизительные запросы расстояния и компактная маршрутизация в разреженных графах», INFOCOM 2011.)O(n)
Габор Ретвари,
Используя вложение показателей в 1 , можно получить оракула с пробелом O ( n log 2 n ) , временем запроса O ( log 2 n ) и мультипликативной ошибкой O ( log n ) . 1O(nlog2n)O(log2n)O(logn)
Ильяраз