Vzdálenost věštce - Distance oracle - Wikipedia
v výpočetní, a distanční věštec (DO) je datová struktura pro výpočet vzdáleností mezi vrcholy v a graf.
Úvod
Nechat G(PROTI,E) být neorientovaný vážený graf s n = |PROTI| uzly a m = |E| hrany. Rádi bychom odpověděli na dotazy ve tvaru „jaká je vzdálenost mezi uzly s at?".
Jedním ze způsobů, jak to udělat, je spustit Dijkstrův algoritmus. To vyžaduje čas , a nevyžaduje žádný další prostor (kromě samotného grafu).
Abychom mohli na mnoho dotazů odpovědět efektivněji, můžeme strávit nějaký čas předzpracováním grafu a vytvořením pomocné datové struktury.
Jednoduchá datová struktura, která tohoto cíle dosahuje, je matice který určuje pro každou dvojici uzlů vzdálenost mezi nimi. Tato struktura nám umožňuje odpovídat na dotazy v konstantním čase , ale vyžaduje extra prostor. Lze jej inicializovat včas pomocí algoritmu nejkratších cest všech párů, jako je například Floyd-Warshallův algoritmus.
DO leží mezi těmito dvěma extrémy. Využívá méně než místo za účelem odpovědi na dotazy za méně než čas. Většina DO musí dělat kompromisy ohledně přesnosti, tj. Nevrací přesnou vzdálenost, ale spíše její konstantní faktorovou aproximaci.
Přibližně DO
Thorup a Zwick[1] popsat více než 10 různých DO. Poté navrhnou nový DO pro každého k, vyžaduje prostor , takže na jakýkoli následný dotaz na vzdálenost lze přibližně včas odpovědět . Přibližná vrácená vzdálenost je maximálně natažená , tj. kvocient získaný dělením odhadované vzdálenosti skutečnou vzdáleností leží mezi 1 a . Čas inicializace je .
Některé speciální případy zahrnují:
- Pro dostaneme jednoduchou matici vzdálenosti.
- Pro dostaneme strukturu pomocí prostor, který odpovídá na každý dotaz v konstantním čase a v přibližném faktoru maximálně 3.
- Pro , dostaneme strukturu pomocí prostor, čas dotazu a protáhnout se .
Vyšší hodnoty k nezlepšují prostor ani dobu předzpracování.
DO pro obecné metrické prostory
Věštec je postaven na zmenšující se sbírce k+1 sady vrcholů:
- Pro každého : obsahuje každý prvek z , nezávisle, s pravděpodobností . Všimněte si, že očekávaná velikost je . Prvky se nazývají i-centra.
Pro každý uzel proti, vypočítat jeho vzdálenost z každé z těchto sad:
- Pro každého : a . Tj., je i-centrum nejblíže k proti, a je vzdálenost mezi nimi. Všimněte si, že pro pevné proti, tato vzdálenost se slabě zvyšuje s i. Všimněte si také, že pro každého proti, a .
- .
Pro každý uzel proti, vypočítat:
- Pro každého : . obsahuje všechny vrcholy v které jsou striktně blíže proti než všechny vrcholy v . Částečné odbory s jsou koule s rostoucím průměrem, které obsahují vrcholy se vzdálenostmi až k prvnímu vrcholu další úrovně.
Pro každého proti, spočítat jeho chomáč:
Je možné ukázat, že očekávaná velikost je nanejvýš .
Pro každou partu , postavte a hash tabulka to platí pro každého , vzdálenost .
Celková velikost datové struktury je
Po inicializaci této struktury následující algoritmus najde vzdálenost mezi dvěma uzly, u a proti:
- zatímco :
- (zaměňte dva vstupní uzly; tím se nezmění vzdálenost mezi nimi, protože graf je neorientovaný).
- vrátit se
Je možné ukázat, že v každé iteraci je vzdálenost roste maximálně . Od té doby , existuje nanejvýš k-1 iterace, takže konečně . Nyní u nerovnost trojúhelníku, , takže vrácená vzdálenost je maximálně .
Vylepšení
Výše uvedený výsledek později vylepšili Patrascu a Roditty[2] kteří navrhují DO velikosti který vrací aproximaci faktoru 2.
Redukce z nastaveného křižovatkového věštce
Pokud existuje DO s aproximačním faktorem nejvýše 2, je možné sestavit a nastavit křižovatku věštce (SIO) s časem dotazu a prostorové požadavky , kde n je počet sad a N součet jejich velikostí; vidět nastavit průnik věštec # Redukce na přibližnou vzdálenost věštec.
Předpokládá se, že problém SIO nemá netriviální řešení. Tj. To vyžaduje prostor pro včasné zodpovězení dotazů , např. pomocí n-podle-n tabulka s průnikem mezi oběma sadami. Pokud je tato domněnka pravdivá, znamená to, že neexistuje DO s aproximačním faktorem menším než 2 a konstantním časem dotazu.[2]
Reference
- ^ Thorup, M.; Zwick, U. (2005). "Přibližná vzdálenost věštců". Deník ACM. 52: 1–24. CiteSeerX 10.1.1.295.4480. doi:10.1145/1044731.1044732.
- ^ A b Patrascu, M .; Roditty, L. (2010). Vzdálenost věštců za hranicí Thorup – Zwick. 51. výroční sympozium IEEE 2010 o základech informatiky (FOCS). p. 815. doi:10.1109 / FOCS.2010.83. ISBN 978-1-4244-8525-3.