Questa è una domanda molto interessante Ad un livello elevato, ti stai chiedendo se è possibile preelaborare un grafico in modo tale che le query del percorso più breve diventino indipendenti dalla densità del grafico, senza utilizzare molto spazio extra - interessante, ma come dici, irrisolto.
Se sei soddisfatto delle distanze approssimative, ecco un modo per ottenere un'approssimazione . Sia G un grafico non orientato ponderato con n nodi e m bordi. Nel documento seguente viene mostrato che per le query a distanza approssimativa, progettare strutture di dati per grafici con bordi m non è più difficile dei grafici in cui ciascun nodo ha un margine limitato da m / n :2Gnmmm/n
R. Agarwal, PB Godfrey, S. Har-Peled, Query di distanza approssimativa e routing compatto in grafici sparsi, INFOCOM 2011
Quindi, supponiamo che sia un grafico limitato al livello m / n . I nodi campione α = O ( m / n ) si uniformano casualmente; chiama questi nodi di riferimento. Durante la fase di preelaborazione, memorizzare la distanza tra ciascun nodo di riferimento e l'altro nodo nel grafico; questo richiede O ( m ) spazio. Per ciascun nodo u , memorizzare il nodo punto di riferimento più vicino ℓ ( u ) . Inoltre, memorizza il grafico all'interno della struttura dei dati, ad esempio come un elenco di adiacenza.Gm/nα=O(m/n)O(m)uℓ(u)
Quando viene richiesta la distanza tra e v , far crescere le sfere attorno a entrambi i nodi: la sfera del nodo w è definita come l'insieme di nodi che sono strettamente più vicini a w rispetto al nodo di riferimento più vicino, ad esempio ℓ ( w ) . Si può dimostrare che la dimensione di ogni palla è O ( n 2 / m ) , in previsione. Sia Γ ( u ) = B ( u ) ∪ N ( B ( u ) ) , dove B ( uuvwwℓ(w)O(n2/m)Γ(u)=B(u)∪N(B(u)) è la sfera del nodo u e N ( B ( u ) ) è l'insieme dei vicini di nodi in B ( u ) . Si può dimostrare che la dimensione di Γ ( u ) è O ( n ) , in previsione.B(u)uN(B(u))B(u)Γ(u)O(n)
Rispondere alla domanda: se , restituisce min x ∈ Γ ( u ) ∩ Γ ( v ) { d ( u , x ) + d ( v , x ) } ; altrimenti se d ( u , ℓ ( u ) ) ≤ d ( v , ℓ ( vΓ(u)∩Γ(v)≠∅minx∈Γ(u)∩Γ(v){d(u,x)+d(v,x)} , restituisce d ( u , ℓ ( u ) ) + d ( ℓ ( u ) , v ) ; altrimenti restituisce d ( v , ℓ ( v ) ) + d ( ℓ ( v ) , u ) . È facile dimostrare che si tratta diun'approssimazione di 2 .d(u,ℓ(u))≤d(v,ℓ(v))d(u,ℓ(u))+d(ℓ(u),v)d(v,ℓ(v))+d(ℓ(v),u)2
In termini di tempo di query, notare che le sfere in crescita impiegano il tempo per un grafico limitato a m / n gradi; la costruzione di Γ ( u ) e Γ ( v ) date le rispettive sfere richiede tempo O ( n ) (poiché i vicini sono memorizzati nella struttura dei dati); e verificare se Γ ( u ) ∩ Γ ( v ) è vuoto o meno richiede anche O ( n ) tempo.O(n)m/nΓ(u)Γ(v)O(n)Γ(u)∩Γ(v)O(n)
I limiti di cui sopra sono attesi; Penso che sia facile derandomizzare la costruzione. Sfortunatamente, questa tecnica non sembra consentire un'approssimazione migliore di . È una domanda molto interessante però ...2