Supposons qu'un graphe à n sommets soit présenté comme un flux de m arêtes, mais plusieurs passes sont autorisées sur le flux.
Monika Rauch Henzinger, Prabhakar Raghavan et Sridar Rajagopalan ont observé que l' espace est nécessaire pour déterminer s'il existe un chemin entre deux sommets donnés dans G , si k passes sont autorisées sur les données. (Voir aussi la version du rapport technique .) Cependant, ils ne fournissent pas d'algorithme pour réellement atteindre cette limite. Je suppose qu'un algorithme optimal prendrait en fait O ( ( n espace dans un modèle informatique réaliste, car il faut distinguer les n sommets différents si l'on ne peut pas indexer la mémoire à l'aide de pointeurs de taille constante.
Comment décider de la connectivité d'un graphe avec passes en utilisant O ( ( n espace?
Si un seul passage est autorisé, les données d'entrée peuvent être stockées en tant que partition de l'ensemble de sommets, fusionnant les ensembles si une arête est vue entre les sommets de deux ensembles différents. Cela nécessite clairement au plus espace. Ma question porte sur k > 1 : comment utiliser plus de passes pour réduire l'espace requis?
(Pour éviter la trivialité, est un paramètre qui ne peut pas être limité a priori par une constante, et les limites d'espace sont des expressions impliquant des fonctions à la fois de n et de k .)
Mise à jour: même pour il serait vraiment utile d'avoir un moyen de stocker uniquement n / 2 sommets. Ou existe-t-il réellement une borne inférieure plus forte c n pour une constante c , indépendamment de k ?
la source
Réponses:
C'est un problème ouvert de longue date que de trouver un algorithme de st-connectivité qui s'exécute simultanément dans un espace sub-linéaire et un temps polynomial, une tâche plus facile que ce que vous visez. De tels algorithmes sont connus pour la version non dirigée , mais même ceux-ci nécessitent un temps polynomial important (plutôt qu'un temps O (km) qui serait impliqué par un algorithme à k-passes). Voir en particulier la référence au document de Tompa sur les raisons pour lesquelles le cas dirigé semble difficile.
la source
la source
la source
Encore une autre non-réponse: il existe des articles sur les algorithmes de style mapreduce fonctionnant sur de grands graphes. L'objectif est d'obtenir un espace par machine o (m) pour les graphiques denses, mais nécessite généralement un espace O (n) par machine.
theory.stanford.edu/~sergei/papers/soda10-mrc.pdf http://theory.stanford.edu/~sergei/papers/spaa11-matchings.pdf
la source
la source