Calcul d'un oracle d'existence d'achèvement / chemin transitif


9

Il y a eu quelques questions ( 1 , 2 , 3 ) sur l'achèvement transitif ici qui m'ont fait penser si quelque chose comme ça était possible:

Supposons que nous obtenions un graphe orienté en entrée et que nous souhaitions répondre aux requêtes de type " ?", C'est-à-dire demander s'il existe une arête entre deux sommets dans l'achèvement transitif d'un graphe ? (de manière équivalente, "existe-t-il un chemin de à dans ?").G(u,v)G+GuvG

Supposons qu'après donné, vous êtes autorisé à exécuter le prétraitement au temps et ensuite requis pour répondre aux requêtes au temps .Gf(n,m)g(n,m)

Évidemment, si (c'est-à-dire qu'aucun prétraitement n'est autorisé), le mieux que vous puissiez faire est de répondre à une requête dans le temps . (exécutez DFS de à et retournez true s'il existe un chemin).f=0g(n)=Ω(n+m)uv

Un autre résultat trivial est que si , vous pouvez calculer la fermeture transitive puis répondre aux requêtes dans .f=Ω(min{nm,nω})O(1)

Et quelque chose au milieu? Si vous êtes autorisé, disons temps de prétraitement, pouvez-vous répondre aux requêtes plus rapidement que ? Peut-être l'améliorer en ?f=n2O(m+n)O(n)

Une autre variante est la suivante: supposez que vous disposez d'un temps de prétraitement , mais uniquement de l' espace , pouvez-vous utiliser le prétraitement pour répondre à des requêtes plus efficaces que ?poly(n,m)o(n2)O(n+m)

Pouvons-nous dire quelque chose en général sur le compromis qui permet de répondre à de telles requêtes?f,g

Une structure de compromis quelque peu similaire est considéré dans les systèmes GPS, où la tenue d' une table de routage complète de toutes les distances par paires entre les emplacements est infaisable il est donc en utilisant l'idée de Oracles distance qui stocke une table partielle mais permet SpeedUp requête importante sur le calcul de la distance de l'ensemble graphique (ne donnant généralement qu'une distance approximative entre les points).


La distance de Hamming entre ce que deux nœuds et peuvent atteindre en sauts pourrait être une métrique plus informative. j tijt
Chad Brewbaker

Réponses:


6

Des oracles d'accessibilité compacts existent pour les graphes planaires,

Mikkel Thorup: oracles compacts pour l'accessibilité et les distances approximatives dans les digraphes planaires . J. ACM 51 (6): 993-1024 (2004)

mais sont "difficiles" pour les graphiques généraux (même les graphiques clairsemés)

Mihai Patrascu: Unifier le paysage des limites inférieures des sondes cellulaires . SIAM J. Comput. 40 (3): 827-847 (2011)

Néanmoins, il existe un algorithme qui peut calculer un étiquetage d'accessibilité proche de optimal

Edith Cohen, Eran Halperin, Haim Kaplan, Uri Zwick: accessibilité et requêtes de distance via des étiquettes à 2 sauts . SIAM J. Comput. 32 (5): 1338-1355 (2003)

Maxim A. Babenko, Andrew V. Goldberg, Anupam Gupta, Viswanath Nagarajan: Algorithms for Hub Label Optimization . ICALP 2013: 69-80

S'appuyant sur les travaux de Cohen et al. et d'autres, il y a pas mal de recherche appliquée (communauté de base de données) voir par exemple

Ruoming Jin, Guan Wang: Oracle accessible, simple et évolutif . PVLDB 6 (14): 1978-1989 (2013)

Yosuke Yano, Takuya Akiba, Yoichi Iwata, Yuichi Yoshida: requêtes d'accessibilité rapides et évolutives sur les graphiques par étiquetage élagué avec repères et chemins . CIKM 2013: 1601-1606


4

Je répondrai partiellement à votre question: il semble qu'il y ait des raisons pour lesquelles une telle construction peut être difficile à obtenir.

Supposons que, étant donné n'importe quel graphe dirigé à n nœuds, vous pouvez le prétraiter en temps T (m, n) afin que les requêtes d'accessibilité puissent être répondues en temps q (m, n). Ensuite, par exemple, vous pourriez trouver un triangle dans un graphe à m nœuds à n nœuds en temps . Par conséquent, et impliquerait un résultat révolutionnaire. Le meilleur algorithme que nous avons pour la recherche de triangles s'exécute en temps et il n'est pas clair si .T ( m , n ) = O ( n 2 ) q ( m , n ) = O ( n ) O ( n ω ) ω = 2T(O(m),O(n))+nq(O(m),O(n))T(m,n)=O(n2)q(m,n)=O(n)O(nω)ω=2

Pour voir la réduction, supposons que nous voulons trouver un triangle dans un graphe . Construisez un graphique à 4 couches sur 4 ensembles de nœuds chacun où chaque nœud d'origine dans a des copies . Maintenant, pour chaque arête dans ajoutez les arêtes dirigées . Ceci termine le graphique. Effectuez maintenant le prétraitement en temps et posez les questions sur pour chaque .GnX,Y,Z,WvGvX,vY,vZ,vW(u,v)G(uX,vY),(uY,vZ),(uZ,vW)v X , v W vT(O(m),O(n))vX,vWv

Probablement, avec un peu plus de travail, on peut modifier la réduction pour lister également les triangles dans un graphique (actuellement, il ne répertorie que les nœuds dans les triangles). Si l'on peut le faire efficacement, on pourrait probablement obtenir une limite inférieure conditionnelle basée sur 3SUM nécessitant également temps, en utilisant un résultat de Patrascu de 2010.n2+o(1)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.