Sei ein ungewichteter ungerichteter Graph mit Ecken und Kanten. Ist es möglich, vorzuverarbeiten und eine Datenstruktur der Größe erzeugen, damit Anfragen der Form "Abstand zwischen und " in der Zeit O (n) beantwortet werden können ?n m G m ⋅ p o l y l o g ( n ) u v
Das Problem scheint zu grundlegend, um ungelöst zu sein.
Antworten:
Das ist eine sehr interessante Frage. Auf hoher Ebene fragen Sie sich, ob Sie ein Diagramm so vorverarbeiten können, dass kürzeste Pfadabfragen unabhängig von der Dichte des Diagramms werden, ohne viel zusätzlichen Platz zu benötigen - interessant, aber wie Sie sagen, ungelöst.
Wenn Sie mit ungefähren Entfernungen zufrieden sind, finden Sie hier eine Möglichkeit, eine Annäherung zu erhalten . Sei ein gewichteter ungerichteter Graph mit Knoten und Kanten. In der folgenden Abhandlung wird gezeigt, dass das Entwerfen von Datenstrukturen für Graphen mit Kanten für Abstandsabfragen nicht schwieriger ist als für Graphen, bei denen jeder Knoten einen durch begrenzten Grad aufweist :G n m m m / n2 G n m m m/n
R. Agarwal, PB Godfrey, S. Har-Peled, Ungefähre Entfernungsabfragen und kompaktes Routing in spärlichen Diagrammen, INFOCOM 2011
Nehmen wir also an, dass ein Grad-begrenzter Graph ist. Stichprobe Knoten gleichmäßig zufällig; Nennen Sie diese Orientierungspunkte. Speichern Sie während der Vorverarbeitungsphase die Entfernung von jedem Orientierungspunktknoten zu jedem anderen Knoten im Diagramm. dies erfordert Raum. Speichern Sie für jeden Knoten den nächsten Orientierungspunktknoten . Speichern Sie das Diagramm auch in der Datenstruktur, beispielsweise als Adjazenzliste.m / n α = O ( m / n ) O ( m ) u ℓ ( u )G m/n α=O(m/n) O(m) u ℓ(u)
Wenn der Abstand zwischen und abgefragt wird , wachsen Kugeln um beide Knoten - Kugel des Knotens ist definiert als die Menge von Knoten, die strikt näher an als an seinem nächsten Orientierungspunktknoten, z. B. . Es kann gezeigt werden, dass die Größe jeder Kugel erwartungsgemäß ist. Sei , wobei die Kugel des Knotens und die Menge der Nachbarn der Knoten in . Es kann gezeigt werden , dass die Größe ist , in der Erwartung.v w w ℓ ( w ) O ( n 2 / m ) Γ ( u ) = B ( u ) ∪ N ( B ( u ) ) B ( u ) u N ( B ( u ) ) B ( u ) Γ ( u ) O ( n )u v w w ℓ(w) O(n2/m) Γ(u)=B(u)∪N(B(u)) B(u) u N(B(u)) B(u) Γ(u) O(n)
Beantworten der Abfrage: Wenn , geben Sie ; sonst, wenn , gib ; sonst gib . Es ist leicht zu zeigen, dass dies eine Annäherung ist.Γ(u)∩Γ(v)≠∅ minx∈Γ(u)∩Γ(v){d(u,x)+d(v,x)} d(u,ℓ(u))≤d(v,ℓ(v)) d(u,ℓ(u))+d(ℓ(u),v) d(v,ℓ(v))+d(ℓ(v),u) 2
In Bezug auf die Abfragezeit ist zu beachten, dass das Wachsen von Bällen -Zeit für einen Graph mit Grad-Grenze benötigt. Das Konstruieren von und gegebenen jeweiligen Bällen benötigt Zeit (da Nachbarn in der Datenstruktur gespeichert sind); und die Überprüfung, ob leer ist oder nicht, dauert ebenfalls .O(n) m/n Γ(u) Γ(v) O(n) Γ(u)∩Γ(v) O(n)
Die obigen Grenzen sind in Erwartung; Ich denke, es ist einfach, die Konstruktion zu derandomisieren. Leider scheint diese Technik keine bessere Annäherung als . Es ist allerdings eine sehr interessante Frage ...2
quelle
Was Sie brauchen, nennt man "Distanz-Orakel". Leider kenne ich Distanz-Orakel nicht sehr gut, so dass ich nur auf die wegweisende Arbeit von Thorup und Zwick verweisen kann:
Mikkel Thorup und Uri Zwick. Ungefähre Entfernung Orakel. STOC '01, 2001.
Hier ist ein Auszug aus dem Abstract:
Sei ein ungerichteter gewichteter Graph mit und . Sei eine ganze Zahl. Wir zeigen, dass in der erwarteten Zeit vorverarbeitet werden kann , wobei eine Datenstruktur der Größe konstruiert wird , so dass jede folgende Datenstruktur entsteht Entfernungsabfrage kann ungefähr in Zeit beantwortet werden. Die ungefähre zurückgegebene Distanz ist maximal , dh der Quotient aus der Division der geschätzten Distanz durch die tatsächliche Distanz liegt zwischen 1 und . Der Platzbedarf unseres Algorithmus ist [...] im Wesentlichen optimal.G=(V,E) |V|=n |E|=m k G=(V,E) O(kmn1/k) O(kn1+1/k) O(k) 2k−1 2k−1
Nach ihren Ergebnissen ist das, was Sie verlangen, grundsätzlich auch für gewichtete Graphen machbar: Wenn Sie wählen, erhalten Sie ein Entfernungsorakel der Größe das in der erwarteten Zeit und das Ihre kürzesten Pfadabfragen mit beantworten kann -Dehnung in Zeit!O ( n 2 ) O ( m n ) 1 O ( 1 )k=1 O(n2) O(mn) 1 O(1)
Distance Orakel ist ein sehr gut erforschtes Gebiet, so dass Sie, glaube ich, weiter graben können.
quelle