Struktura danych dla najkrótszych ścieżek


19

Niech będzie nieważonym niekierowanym wykresem z wierzchołkami i krawędziami . Czy jest możliwe przetworzenie i utworzenie struktury danych o rozmiarze aby mógł odpowiadać na zapytania o formie „odległość między a ” w czasie O (n)?GnmGm⋅polylog(n)uv

Problem wydaje się zbyt podstawowy, aby go rozwiązać.


1
W odpowiedzi na twoją ostatnią uwagę na temat „zbyt podstawowy, aby go rozwiązać”: jeśli na pytanie należy odpowiedzieć w stałym czasie, jest ono rzeczywiście dobrze zbadane. Ale chodzi o to, że pozwalasz O (n) na zapytanie (zamiast O (1) lub trywialne O (m)). Chociaż uważam, że jest to interesujące pytanie, nie sądzę, aby miało to fundamentalne znaczenie.
— Tsuyoshi Ito,

1
@TsuyoshiIto - Nie rozumiem, dlaczego pytanie traci swoje „podstawowe znaczenie”, jeśli pozwala na super-stały, ale subliniowy czas zapytania. Załóżmy na przykład, że mogę rozwiązać powyższy problem z ograniczeniem, że na zapytania dotyczące odległości można odpowiedzieć w czasie dla niektórych , a czas przetwarzania wynosi najwyżej - czy nie dałoby mi to sub-sześciennego algorytmu do obliczania najkrótszych ścieżek? Osobiście uważam, że jest to bardzo interesujące pytanie. O(n1−ε)ε>0O(n3−ε)
— Rachit

Nie wiem, czy istnieje ogólny sposób, czy nie, ale istnieje dobry sposób na ograniczone wykresy szerokości, patrz zapytanie Najkrótsza ścieżka na ograniczonych wykresach szerokości
— Saeed,

Również jeśli możesz stworzyć najkrótsze drzewa ścieżek (zaczynając od każdego węzła), a następnie odpowiedzieć na najkrótszą ścieżkę zapytania (przez powiązany katalog główny) w , lub w podobny sposób możesz zbudować struktura danych o mniejszym rozmiarze pamięci. m=Ω(n2)O(n)
— Saeed,

Odpowiedzi:


9

To bardzo interesujące pytanie. Na wysokim poziomie pytasz, czy można wstępnie przetworzyć wykres w taki sposób, aby zapytania o najkrótszą ścieżkę stały się niezależne od gęstości wykresu, bez zajmowania dużo dodatkowej przestrzeni - ciekawe, ale, jak mówisz, nierozwiązane.

Jeśli jesteś zadowolony z przybliżonych odległości, oto sposób na uzyskanie przybliżenia. Niech będzie ważonym niekierowanym wykresem z węzłami i krawędziami . W poniższym artykule pokazano, że w przypadku zapytań o przybliżoną odległość projektowanie struktur danych dla wykresów o krawędziach nie jest trudniejsze niż wykresy, w których każdy węzeł ma stopień ograniczony przez :G n m m m / n2Gnmmm/n

R. Agarwal, PB Godfrey, S. Har-Peled, Przybliżone zapytania odległości i kompaktowe wyznaczanie tras na rzadkich wykresach, INFOCOM 2011

Załóżmy zatem, że jest wykresem ograniczonym do . Próbki węzły losowo jednolite; nazywaj te punkty orientacyjne. Podczas fazy przetwarzania wstępnego zapisz na wykresie odległość od każdego punktu orientacyjnego do każdego innego węzła; wymaga to przestrzeni . Dla każdego węzła zapisz jego najbliższy punkt orientacyjny węzeł . Ponadto przechowuj wykres w strukturze danych, powiedzmy jako listę przylegania.m / n α = O ( m / n ) O ( m ) u ℓ ( u )Gm/nα=O(m/n)O(m)uℓ(u)

W przypadku zapytania o odległość między i , kulki rosną wokół obu węzłów - kulka węzła jest definiowana jako zbiór węzłów, które są bliżej niż do najbliższego punktu orientacyjnego, powiedzmy . Można wykazać, że rozmiar każdej kulki wynosi , zgodnie z oczekiwaniami. Niech , gdzie jest kulą węzła a jest zbiorem sąsiadów węzłów w . Można wykazać, że rozmiar wynosi , w oczekiwaniu.v w w ℓ ( w ) O ( n 2 / m ) Γ ( u ) = B ( u ) ∪ N ( B ( u ) ) B ( u ) u N ( B ( u ) ) B ( u ) Γ ( u ) O ( n )uvwwℓ(w)O(n2/m)Γ(u)=B(u)∪N(B(u))B(u)uN(B(u))B(u)Γ(u)O(n)

Odpowiadając na zapytanie: jeśli , zwróć ; w przeciwnym razie, jeśli , zwróć ; w przeciwnym razie zwróć . Łatwo wykazać, że jest to przybliżenie .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(v,ℓ(v))d ( v , ℓ ( v ) ) + d ( ℓ ( v ) , u ) 2d(u,ℓ(u))+d(ℓ(u),v)d(v,ℓ(v))+d(ℓ(v),u)2

Jeśli chodzi o czas zapytania, zwróć uwagę, że rosnące kule wymagają czasu dla wykresu ograniczonego do ; konstruowanie i danych odpowiednich piłkach zajmuje czasu (ponieważ sąsiedzi są zapisani w strukturze danych); i sprawdzenie, czy jest pusta, czy też nie zajmuje czasu.m / n Γ ( u ) Γ ( v ) O ( n ) Γ ( u ) ∩ Γ ( v ) O ( n )O(n)m/nΓ(u)Γ(v)O(n)Γ(u)∩Γ(v)O(n)

Powyższe granice są oczekiwane; Myślę, że łatwo jest odandomizować konstrukcję. Niestety, ta technika nie pozwala uzyskać przybliżenia lepszego niż . To bardzo interesujące pytanie ...2


Powyższa technika nie wykorzystuje faktu, że wykres wejściowy jest nieważony; być może jest coś interesującego, co możesz zrobić, wykorzystując ten fakt, ale nie mogę wymyślić sposobu na uzyskanie dokładnych odległości. Na przykład, możliwe jest skrócenie czasu zapytania do i uzyskanie odległości ograniczonej przez , gdzie jest dokładną odległością i . 2 d + 1 d u vO(n2/m)2d+1duv
— Rachit

Uświadomiłem sobie, że nie rozumiem, dlaczego jest to przybliżenie 2. Thorup-Zwick w tych samych sytuacjach daje 3-ok.
— ilyaraz

@ilyaraz: Zauważ, że schemat Thorup-Zwick nie wymaga sprawdzania (a zatem odpowiada na zapytania w niemal stałym czasie). Zobacz papier, o którym wspomniałem powyżej, na dowód odcinka . 2Γ(u)∩Γ(v)2
— Rachit

4

To, czego potrzebujesz, nazywa się „wyrocznią na odległość”. Niestety, nie znam się zbytnio na wyroczniach dystansowych, dlatego mogę skierować was tylko do przełomowej pracy z powodu Thorupa i Zwicka:

Mikkel Thorup i Uri Zwick. Wyrocznie w przybliżeniu na odległość. STOC '01, 2001.

Oto fragment streszczenia:

Niech będzie niekierowanym ważonym wykresem z oraz . Niech będzie liczbą całkowitą. Pokazujemy, że można wstępnie przetwarzać w oczekiwanym czasie w , konstruując strukturę danych o rozmiarze , tak aby dowolne kolejne na zapytanie o odległość można odpowiedzieć w przybliżeniu w czasie . Przybliżona zwrócona odległość wynosi co najwyżej , tzn. Iloraz uzyskany przez podzielenie szacunkowej odległości przez rzeczywistą odległość wynosi od 1 do . [...] Wymagane miejsce w naszym algorytmie jest [...] zasadniczo optymalne.| V | = n | E |G=(V,E)|V|=nk G = ( V , E ) O ( k m n 1 / k ) O (|E|=mkG=(V,E)O(kmn1/k)O ( k ) 2 k - 1 2 k - 1O(kn1+1/k)O(k)2k−12k−1

Zgodnie z ich wynikami, to, o co prosisz, jest w zasadzie wykonalne nawet dla wykresów ważonych: wybranie daje odległość wyroczni o rozmiarze uzyskaną w oczekiwanym czasie , który może odpowiedzieć na twoje najkrótsze zapytania o ścieżkę za pomocą -stretch w czasie !O ( n 2 ) O ( m n ) 1 O ( 1 )k=1O(n2)O(mn)1O(1)

Wyrocznie wyrocznie to bardzo dobrze zbadana dziedzina, więc wierzę, że będziesz mógł dalej kopać.


2
Wersja czasopisma: JACM 2005 .
— Tsuyoshi Ito,

3
Korzystając z przestrzeni można naiwnie przechowywać tablicę przeglądową. Tak więc ten artykuł (o którym wiedziałem) nie ma tutaj znaczenia. O(n2)
— ilyaraz

1
Słusznie. Wynik najbardziej zbliżony do żądania AFAIK to wykresy o średnim stopniu które dają ścieżki stretch-2 z miejscem w zapytaniu czas. (R. Agarwal, P. Godfrey i S. Har-Peled, „Przybliżone zapytania o odległość i kompaktowe wyznaczanie trasy na rzadkich wykresach”, INFOCOM 2011.)O ( n 3 / 2 ) O ( √Θ(log⁡n)O(n3/2)O(n)
— Gabor Retvari

Wykorzystując wbudowane metryki Bourgaina w , można wymyślić wyrocznię ze spacją , czasem zapytania i błędem multiplikatywnym . O ( n log 2 n ) O ( log 2 n ) O ( log n )ℓ1O(nlog2⁡n)O(log2⁡n)O(log⁡n)
— ilyaraz
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.