Gibt es einen Algorithmus zur effizienten Verwaltung der Verbindungsinformationen für eine DAG, wenn Einfügungen / Löschungen vorhanden sind?

17

Ist es bei einem gerichteten azyklischen Graphen möglich, die folgenden Operationen effizient zu unterstützen?G(V,E)

  • : bestimmtob ein Pfad inisConnected(G,a,b) vom Knoten a zum Knoten BGab
  • : Fügt eine Kante von a hinzulink(G,a,b)a dem Graphen G nach bG
  • : Entfernt die Kante von aunlink(G,a,b)a nach in GbG
  • : Fügt einen Eckpunkt zu G hinzuadd(G,a)
  • : Entfernt einen Scheitelpunkt von Gremove(G,a)

Ein paar Anmerkungen:

  • Wenn wir es nicht erlaubten , scheint es einfach zu sein, die Verbindungsinformationen unter Verwendung einer Datenstruktur mit disjunkten Sätzen zu pflegen.unlink
  • Offensichtlich implementiert werden könnte unter VerwendungTiefen- oder Breitensuche, die naive zeigerbasierte Darstellung des Graphen verwendet. Dies ist jedoch ineffizient.isConnected

Ich hoffe auf eine amortisierte konstante oder logarithmische Zeit für alle drei Operationen. Ist das möglich?

Justin Kilpatrick
quelle
3
Verwandte: Die ungerichtete Grafikversion wurde bereits gefragt. Gibt es einen Online-Algorithmus, um die Komponenten in einem sich ändernden ungerichteten Diagramm zu verfolgen?
Tsuyoshi Ito
1
Können Sie erklären, wie Sie den einfacheren Fall (ohne Verknüpfung) mit einer Datenstruktur mit disjunkten Sätzen lösen können?
jbapple
@ Tsuyoshi - die Links zu dieser Frage sehen interessant aus, ich schaue sie mir jetzt an.
Justin Kilpatrick
(1) Sie suchen einen dynamischen Graph-Algorithmus für die gerichtete Erreichbarkeit mit der Einschränkung, dass der Graph eine DAG ist. Wenn ich mich nicht irre, ist die dynamisch gerichtete Erreichbarkeit viel schwieriger als das ungerichtete Gegenstück, aber hier könnte die DAG-Eigenschaft helfen. (2) Entfernt removeauch die einfallenden Kanten? Wenn dies der Fall ist, ist es möglicherweise zu viel zu hoffen, dass diese Operation O (log n) -Zeit hat.
Tsuyoshi Ito

Antworten:

19

Das von Ihnen beschriebene Problem ist die volldynamische Erreichbarkeit der DAG (auch als volldynamischer transitiver Abschluss bei DAGs bezeichnet). Es wird als vollständig dynamisch bezeichnet, da die Benutzer auch die Versionen untersuchen, bei denen nur Löschvorgänge möglich sind (dann wird es als inkrementelle Erreichbarkeit bezeichnet) und bei denen nur Einfügungen möglich sind (als inkrementelle Erreichbarkeit bezeichnet).

Es gibt einige Kompromisse zwischen der Aktualisierungszeit und der Abfragezeit. Sei die Anzahl der Kanten und n die Anzahl der Eckpunkte. Für DAGs gaben Demetrescu und Italiano (FOCS'00) eine randomisierte Datenstruktur an, die Aktualisierungen (Randeinfügungen oder -löschungen) in O-Zeit ( n 1,58 ) und Erreichbarkeitsabfragen in O-Zeit ( n 0,58 ) unterstützt (Knoteneinfügungen / -löschungen werden ebenfalls unterstützt) in O (1) -Zeit); Dieses Ergebnis wurde von Sankowski (FOCS'04) erweitert, um für allgemein gerichtete Graphen zu arbeiten. Auch für DAGs zeigte Roditty (SODA'03), dass Sie die transitive Verschlussmatrix in der Gesamtzeit O ( m n + I · n 2 + D beibehalten könnenmnn1.58n0.58mn+I·n2+D ) , wobei ist die Anzahl der Einfügungen, D die Anzahl der Löschungen und natürlich die Abfragezeit ist O ( 1 ).ID1

Für allgemein gerichtete Graphen sind die folgenden (Aktualisierungs-, Abfrage-) Zeiten bekannt: (O ( ), O (1)) (Demetrescu und Italiano FOCS'00 (amortisiert), Sankowski FOCS'04 (ungünstigster Fall)) ( O ( m n2 ),O(mn )) (Roditty, Zwick FOCS'02), (O (m+nlogn), O (n)) (Roditty, Zwick STOC'04), (O (n 1,58 ), O (n 0,58 )) und (O (n 1,495 ), O (n 1,495O(nm+nlognnn1.58n0.58n1.495n1.495 )) von Sankowski (FOCS'04).

Das Erhalten einer polylogarithmischen Abfragezeit, ohne die Aktualisierungszeit zu stark zu erhöhen, ist ein großes offenes Problem, selbst für DAGs.

virgi
quelle
1
Vielen Dank für Ihre Antwort. Obwohl ich sagen muss, dass ich enttäuscht bin, wie arm diese Grenzen sind. :(
Justin Kilpatrick
1
Eine verwandte Frage: Können Sie mir Hinweise auf die einfacheren Probleme, die inkrementelle Erreichbarkeit und die dekrementelle Erreichbarkeit für DAGs geben?
Justin Kilpatrick
Dies ist nicht viel besser als der naive dfs Ansatz (O(1),O(n^2))oder (O(m),O(n+m)).
Thomas Ahle
4

Ich denke, die besten Ergebnisse werden bisher in "Mantaining Dynamic Matrices for Fully Dynamic Transitive Closure" diskutiert . In diesem Artikel wird ein randomisierter Algorithmus mit einer Abfragezeit von und einer Abfragezeit von O ( n 1,58 ) beschrieben.O(n0.58)O(n1.58) Aktualisierungszeit von .

(Dies gilt nur für die erste Version Ihrer Frage, mit linkund unlinkaber ohne addund remove.)

Apfel
quelle
Die Grenzen sind jedoch auf Strassens Algorithmus aufgebaut, sodass die Konstante riesig ist.
Thomas Ahle