Algoritmos paralelos para conectividad st dirigida

13

Chong, Han y Lam mostraron que la conectividad st no dirigida se puede resolver en la EREW PRAM en tiempo con procesadores . ¿Cuál es el algoritmo paralelo más conocido para la conectividad st dirigida ? Indique el tiempo de ejecución, el algoritmo determinista / aleatorio y el modelo PRAM utilizado (suponiendo que el número de procesadores es polinómico). ¿Hay algún algoritmo paralelo de tiempo conocido para algún caso especial de conectividad st dirigida?O(logn)O(m+n)o(log2n)

Shiva Kintali
fuente
Wikipedia dice que los procesadores poly (n) + el tiempo polylog en una EREW PRAM es lo mismo que NC. No estoy muy familiarizado con el modelo EREW PRAM, pero ¿existe una conexión entre time (y polinomialmente muchos procesadores) y ? En otras palabras, ¿hay alguna manera de reformular su pregunta en términos de circuitos de profundidad limitada? (logn)iNCi
Robin Kothari
los diferentes modelos de RAM paralelos son equivalentes a factores de registro, por lo que si bien EREW PRAM coincide con NC, esto podría no ser cierto para potencias de registro específicas.
Suresh Venkat
Con restricciones apropiadas en el conjunto de instrucciones, el tiempo O (log ^ in) en una PRC CRCW es exactamente AC ^ i uniforme, para i> = 1.
Kristoffer Arnsfelt Hansen
Si hay una ruta dirigida , ¿es posible encontrarla? st
Kumar

Respuestas:

13

La accesibilidad directa dirigida se puede hacer fácilmente utilizando procesadores O ( ) y tiempo O ( log n ) en una CRCW-PRAM, o en procesadores O ( n ω ) y O ( log 2 n ) en un EREW-PRAM donde ω < 2.376 es el exponente de multiplicación de matrices yn es el número de vértices. El siguiente artículo afirma O ( n ω ) y O ( log nn3(lognnωlog2nω<2.376nnωlogn) tiempo en un CREW-PRAM: "Algoritmos paralelos óptimos para cierre transitivo y ubicación de puntos en estructuras planas" por Tamassia y Vitter. Otros documentos afirman lo mismo y citan la encuesta de Karp y Ramachandran (Algoritmos paralelos para máquinas de memoria compartida, en: J. van Leeuwen (Ed.), Handbook of Theoretical Computer Science). La encuesta en sí menciona que el cierre transitivo está en AC1 y, por lo tanto, puede resolverse en tiempo O (log n) en una CRCW-PRAM, pero falta la parte sobre CREW-PRAM.

Todos los algoritmos similares a Strassen para la multiplicación de matrices (incluido el de Coppersmith-Winograd) son esencialmente algoritmos paralelos que se ejecutan en tiempo O ; el cierre transitivo incurre en un registro adicional (pero si permite un abanico ilimitado, la matriz trivial O ( n 3 ) se puede hacer en profundidad constante y, por lo tanto, la accesibilidad está en tiempo O ( log n ) en una CRCW-PRAM). Es un problema abierto para mejorar el número de procesadores de la mejor actual ~ n 2.376 ; También es un gran problema abierto si la accesibilidad está en NC1, ya que implicaría L = NL entre otras cosas.(logn)n3(logn)norte2.376

virgi
fuente
1
¿Pueden agregar las referencias?
Shiva Kintali
Solo sé sobre el tiempo O (log n) en una CRCW PRAM. ¿A eso te referías?
Kristoffer Arnsfelt Hansen el
O (logn) en CREW es genial. Eso es lo que estoy buscando. Me gustaría aceptar tu respuesta. Por favor agregue la referencia.
Shiva Kintali
Necesitamos iteraciones O (logn) de multiplicación de matrices para resolver la conectividad st.
Shiva Kintali
En términos de algoritmos paralelos, necesita O (log n) iteraciones de matriz múltiple para resolver la accesibilidad; Este no es el caso de los algoritmos secuenciales, ya que puedes hacer algunas cosas recursivas inteligentes (ver Fisher & Meyer'71). Sin embargo, si su modelo de cómputo permite una matriz de abanico ilimitada (como con AC1 y, por lo tanto, CRCW PRAM), la matriz múltiple se puede hacer en profundidad constante y, por lo tanto, el cierre transitivo se puede hacer en profundidad logarítmica.
virgi
7

El libro "Una introducción a los algoritmos paralelos" de Joseph Jája (1992) enumera los siguientes resultados para el cierre transitivo:

  • O(Iniciar sesiónnorte)O(norte3Iniciar sesiónnorte)
  • O(Iniciar sesión2norte)O(norteωIniciar sesiónnorte)

O(Iniciar sesiónnorte)

  • tuvtuv
Kristoffer Arnsfelt Hansen
fuente
Entonces, parece que encontrar un algoritmo paralelo de tiempo o (log ^ 2 {n}) en CREW PRAM para gráficos dirigidos generales es un problema abierto.
Shiva Kintali
Tenga en cuenta que dije o (log ^ 2 {n}) no O (log ^ 2 {n}).
Shiva Kintali
5

¿Le importa mantener el trabajo pequeño, no solo polinómico, hay un algoritmo elegante de Ullman y Yannakakis que permite compensaciones de tiempo / trabajo? La Tabla 1 en mi artículo sobre el cálculo de componentes fuertemente conectados en paralelo resume los resultados de conectividad dirigida en paralelo que conozco: http://www.cs.brown.edu/~ws/papers/scc.pdf .

Warren Schudy
fuente