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