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).