Było kilka pytań ( 1 , 2 , 3 ) na temat przechodniego uzupełniania, które zmusiły mnie do zastanowienia się, czy coś takiego jest możliwe:
Załóżmy, że otrzymujemy wykres skierowany na dane wejściowe i chciałby odpowiedzieć na zapytania typu „? ”, tzn. pytając, czy istnieje krawędź między dwoma wierzchołkami w przechodnianym zakończeniu wykresu ? (równoważnie „jest ścieżka do do w ? ”).
Zakładaj po danym możesz uruchomić przetwarzanie wstępne na czas a następnie wymagane na czas odpowiedzieć na pytania .
Oczywiście, jeśli (tzn. żadne przetwarzanie wstępne nie jest dozwolone), najlepiej możesz odpowiedzieć na zapytanie na czas . (uruchom DFS z do i zwróć true, jeśli istnieje ścieżka).
Innym trywialnym wynikiem jest to, że jeśli , możesz obliczyć zamknięcie przechodnie, a następnie odpowiedzieć na zapytania w .
Co powiesz na coś pośrodku? Powiedz, jeśli masz pozwolenie czas wstępnego przetwarzania, czy możesz odpowiadać na zapytania szybciej niż ? Może to poprawić?
Inna odmiana to: załóżmy, że masz czas przygotowania, ale tylko miejsca, czy można użyć przetwarzania wstępnego, aby odpowiadać na zapytania wydajniej niż ?
Czy możemy ogólnie powiedzieć coś o kompromis, który pozwala odpowiadać na takie zapytania?
Nieco podobna struktura kompromisu jest rozważana w systemach GPS, w których utrzymywanie kompletnej tabeli routingu wszystkich par odległości między lokalizacjami jest niemożliwe, dlatego wykorzystuje ideę wyroczni odległości, która przechowuje tabelę częściową, ale pozwala na znaczne przyspieszenie zapytań w stosunku do obliczania odległości całej wykres (zwykle daje jedynie przybliżoną odległość między punktami).
Odpowiedzi:
Istnieją niewielkie wyrocznie osiągalności dla płaskich wykresów,
Mikkel Thorup: Kompaktowe wyrocznie dla osiągalności i przybliżonych odległości w płaskich digrafach . J. ACM 51 (6): 993-1024 (2004)
ale są „twarde” dla grafów ogólnych (nawet grafów rzadkich)
Mihai Patrascu: Ujednolicenie krajobrazu dolnych granic sondy komórkowej . SIAM J. Comput. 40 (3): 827–847 (2011 r.)
Niemniej jednak istnieje algorytm, który może obliczyć oznakowanie zbliżone do optymalnego
Edith Cohen, Eran Halperin, Haim Kaplan, Uri Zwick: Zapytania dotyczące zasięgu i odległości za pomocą etykiet 2-Hop . SIAM J. Comput. 32 (5): 1338–1355 (2003)
Maxim A. Babenko, Andrew V. Goldberg, Anupam Gupta, Viswanath Nagarajan: Algorytmy optymalizacji etykiety piasty . ICALP 2013: 69–80
Opierając się na pracach Cohena i in. i inne, istnieje sporo badań stosowanych (społeczność baz danych) patrz np
Ruoming Jin, Guan Wang: Prosta, szybka i skalowalna baza danych Oracle . PVLDB 6 (14): 1978–1989 (2013)
Yosuke Yano, Takuya Akiba, Yoichi Iwata, Yuichi Yoshida: Szybkie i skalowalne zapytania dotyczące osiągalności na wykresach przez przycięte etykietowanie punktami orientacyjnymi i ścieżkami . CIKM 2013: 1601–1606
źródło
Odpowiem częściowo na twoje pytanie: wydaje się, że istnieją pewne powody, dla których taka konstrukcja może być trudna do uzyskania.
Załóżmy, że biorąc pod uwagę dowolny n-węzłowy wykres skierowany na krawędź m, możesz go wstępnie przetworzyć w czasie T (m, n), aby odpowiedzi na zapytania o osiągalność można było odpowiedzieć w czasie q (m, n). Następnie, na przykład, możesz znaleźć trójkąt na n-węźle grafu m-edge wT.( O ( m ) , O ( n ) ) + n q( O ( m ) , O ( n ) ) czas. W związku z tymT.( m , n ) = O (n2)) i q( m , n ) = O ( n ) oznaczałoby przełomowy wynik. Działa najlepszy algorytm do wyszukiwania trójkątówO (nω) czas i nie jest jasne, czy ω = 2 .
Aby zobaczyć redukcję, załóżmy, że chcemy znaleźć trójkąt na jakimś wykresiesol . Zbuduj 4-warstwowy wykres na 4 zestawachn węzły każdy X, Y, Z, W gdzie każdy oryginalny węzeł v w sol ma kopie vX,vY,vZ,vW. . Teraz dla każdej krawędzi( u , v ) w sol dodaj skierowane krawędzie (uX,vY) , (uY,vZ) , (uZ,vW.) . To kończy wykres. Teraz wykonaj wstępne przetwarzanie wT.( O ( m ) , O ( n ) ) czas i zapytaj o vX,vW. dla każdego v .
Prawdopodobnie przy odrobinie pracy można zmienić redukcję, aby wyświetlić również trójkąty na wykresie (obecnie wyświetla tylko węzły w trójkątach). Jeśli można to zrobić efektywnie, prawdopodobnie można uzyskać warunkową dolną granicę w oparciu o wymaganie 3SUMn2 + o ( 1 ) również czas, wykorzystując wynik Patrascu z 2010 roku.
źródło