Struttura dei dati per i percorsi più brevi


19

Sia un grafico non orientato non ponderato con vertici e bordi. E 'possibile pre-elaborare e produrre una struttura di dati di dimensioni in modo che possa rispondere alle domande del tipo "a distanza tra e " nel tempo O (n)?GnmGmpolylog(n)uv

Il problema sembra troppo semplice per essere irrisolto.


1
In risposta alla tua osservazione finale su "troppo semplice per essere irrisolto": se alla query deve essere data risposta in un tempo costante, è davvero ben studiata. Ma il punto della tua domanda è che permetti a O (n) il tempo per una query (invece di O (1) o O (m) banale). Sebbene ritenga che sia una domanda interessante, non credo che la questione sia di fondamentale importanza.
Tsuyoshi Ito,

1
@TsuyoshiIto - Non vedo perché la domanda perda la sua "importanza fondamentale" se consente tempi di query super costanti ma sub-lineari. Ad esempio, supponiamo che io possa risolvere il problema precedente con il vincolo che le query sulla distanza possono essere risposte in tempo O(n1ε) per alcuni ε>0 e che il tempo di elaborazione è al massimo O(n3ε) - questo non mi darebbe un algoritmo sub-cubico per il calcolo dei percorsi più brevi? Personalmente penso che questa sia una domanda molto interessante.
Rachit,

Non so che ci sia un modo generale o meno, ma c'è un buon modo nei grafici a larghezza di albero limitata, vedere la query Percorso più breve nei grafici a larghezza di albero limitata
Saeed,

Inoltre se m=Ω(n2) è possibile creare alberi di percorso più brevi (a partire da ciascun nodo) e quindi rispondere alla query di percorso più breve (per radice correlata) in O(n) , o in modo analogo, è possibile costruire un dato struttura con dimensioni di memoria inferiori.
Saeed,

Risposte:


9

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


La tecnica sopra descritta non sfrutta il fatto che il grafico di input non sia ponderato; potrebbe esserci qualcosa di interessante che puoi fare sfruttando quel fatto, ma non riesco a pensare a un modo per recuperare distanze esatte. Ad esempio, è possibile ridurre il tempo di interrogazione a e ottenere la distanza limitata da 2 d + 1 , dove d è la distanza esatta tra u e v . O(n2/m)2d+1duv
Rachit,

Mi sono reso conto che non capisco perché si tratta di un'approssimazione 2. Thorup-Zwick nelle stesse situazioni dà 3-ca.
ilyaraz,

@ilyaraz: Nota che lo schema di Thorup-Zwick non richiede di controllare (e, quindi, risponde alle domande in un tempo quasi costante). Vedi il documento che ho menzionato sopra per la prova tratto 2 . Γ(u)Γ(v)2
Rachit,

4

Ciò di cui hai bisogno è chiamato "oracolo a distanza". Sfortunatamente, non ho molta familiarità con gli oracoli della distanza, quindi posso riferirti solo al documento fondamentale dovuto a Thorup e Zwick:

Mikkel Thorup e Uri Zwick. Oracoli di distanza approssimativa. STOC '01, 2001.

Ecco un estratto dall'estratto:

Sia un grafico ponderato non indirizzato con | V | = n e | E | = m . Sia k un numero intero. Mostriamo che G = ( V , E ) può essere preelaborato in O ( k m n 1 / k ) tempo previsto, costruendo una struttura di dati di dimensione O ( k n 1 + 1 / kG=(V,E)|V|=n|E|=mkG=(V,E)O(kmn1/k) , in modo tale da poter rispondere a qualsiasi domanda di distanza successiva, approssimativamente, nel tempo O ( k ) . La distanza approssimativa restituita è di allungamento al massimo di 2 k - 1 , ovvero il quoziente ottenuto dividendo la distanza stimata per la distanza effettiva è compreso tra 1 e 2 k - 1 . [...] Il requisito di spazio del nostro algoritmo è essenzialmente [...] ottimale.O(kn1+1/k)O(k)2k12k1

In base ai loro risultati, ciò che richiedi è fondamentalmente fattibile anche per i grafici ponderati: la scelta di produce un oracolo di distanza di dimensione O ( n 2 ) ottenuto nel tempo previsto O ( m n ) , che può rispondere alle domande del percorso più breve con 1 -stretch in O ( 1 ) volta!k=1O(n2)O(mn)1O(1)

Gli oracoli della distanza sono un campo molto ben studiato, quindi credo che potrai scavare ulteriormente.


2
Versione ufficiale: JACM 2005 .
Tsuyoshi Ito,

3
Usando lo spazio si può ingenuamente memorizzare una tabella di ricerca. Quindi, questo documento (di cui ero a conoscenza) è irrilevante qui. O(n2)
ilyaraz,

1
Giusto. Il risultato più vicino a quello che si richiede per quanto ne so è per i grafici con grado medio che fornisce percorsi di stiro-2 con O ( n 3 / 2 ) lo spazio in O ( Θ(logn)O(n3/2)tempo di interrogazione. (R. Agarwal, P. Godfrey e S. Har-Peled, "Query di distanza approssimativa e routing compatto in graficiO(n)
sparsi

Usando l'incorporamento di metriche di Bourgain in , si può trovare un oracolo con spazio O ( n log 2 n ) , tempo di query O ( log 2 n ) ed errore moltiplicativo O ( log n ) . 1O(nlog2n)O(log2n)O(logn)
ilyaraz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.