P-Completitud y computación paralela

23

Hace poco estuve leyendo sobre algoritmos para verificar la bimilaridad y leí que el problema es P-completo . Además, una consecuencia de esto es que este problema, o cualquier problema P-completo, es poco probable que tenga algoritmos paralelos eficientes.

¿Cuál es la intuición detrás de esta última declaración?

Dave Clarke
fuente
Esto se relaciona con NC (ver las respuestas), que en mi opinión es una forma horrible de formalizar "eficientemente paralelizable".
Raphael

Respuestas:

17

Es improbable que cualquier problema P completo tenga un algoritmo paralelo eficiente. Por qué ?

La existencia de problemas P completos es la pista más importante que (PPOLYLOGSPACE)P. La pregunta entonces es, ¿por qué esta conjetura es relevante para la computación paralela? Comencemos con los recursos utilizados en un cálculo. Para computación secuencial: tiempo y espacio; para computación paralela: tiempo y hardware (número de procesadores). ¿Hay una relación? ¡Sí! Espacio secuencial time tiempo paralelo; Tiempo secuencial hardware hardware paralelo. La correspondencia entre el espacio secuencial y el tiempo paralelo parece ser independiente del modelo de computación paralela adoptado; esto lleva a lo siguiente, llamada tesis de computación paralela que no está probada.

(Chandra y Stockmeyer) Cada cálculo de una TM con complejidad espacial puede simularse en un modelo de computación paralela en el tiempo T ( n ) = O ( S ( n ) O ( 1 ) ) y cada cómputo de una computación paralela El modelo con complejidad temporal T ( n ) puede ser simulado por una TM con complejidad espacial S ( n ) = O ( T ( n ) OS(n)T(n)=O(S(n)O(1))T(n).S(n)=O(T(n)O(1))

La clase de problemas que se pueden resolver secuencialmente en el espacio polinomial es y el conjunto de problemas que se pueden resolver en el tiempo polinómico es P. Dado que se piensa que P S P A C E es una clase de problemas mucho mayor que P , la tesis cuantifica la mejora efectiva hecha posible por el paralelismo. Una consecuencia de esta tesis es que una PRAM puede resolver problemas completos de N P en tiempo polinómico ... ¡Desafortunadamente, no! La tesis de computación paralela implica que en realidad podemos tratar problemas que pertenecen a P S P A C EPSPACEPPSPACEPNPPSPACE... pero esto requiere un número exponencial de procesadores! Está funcionando una compensación tiempo-espacio: el tiempo exponencial en el modelo de computación secuencial se transforma en un número exponencial de procesadores en el modelo de computación paralela, mientras que el espacio polinómico en el modelo de computación secuencial se transforma en un tiempo polinómico en el paralelo modelo informático

Esta compensación es más fácil de entender si tratamos de restringir tanto tiempo paralelo y hardware en paralelo: si el modelo de computación en paralelo tiene un número polinómico de procesadores, entonces la clase de problemas que tienen solución en tiempo polinómico paralelo es . Si restringimos el número de procesadores a un polinomio, podemos mejorar el rendimiento de una máquina secuencial, pero no más que un factor polinomial. Por lo tanto, podemos reducir el grado del polinomio que representa la complejidad del tiempo, pero no podemos usar el paralelismo para reducir los costos exponenciales a los costos polinomiales.P

Los problemas resueltos en paralelo con la complejidad tiempo polinómico son esos problemas pertenecientes a . La restricción polinómica en el número de procesadores conduce a un modelo de computación paralelo equivalente a TM. Hay dos consideraciones prácticas importantes: ¿qué número polinómico de procesadores es aceptable / asequible? En la práctica, el número polinómico de procesadores debe ser lineal o cercano. ¿Qué tiempo subpolinomial es alcanzable? Resultó que casi todos los problemas viables altamente paralelos pueden alcanzar el tiempo paralelo pollogarítmico. En paralelo, una complejidad temporal que es logarítmica en la longitud de entrada representa un cálculo paralelo eficiente. Un algoritmo paralelo se considera eficiente si, dado un número polinómico de procesadores, su complejidad temporal es poliglogarítmica.P

Dado un problema donde k y h son constantes, la tesis de computación paralela implica la existencia de un algoritmo paralelo para R con complejidad de tiempo O ( ( l o g n ) k ) donde k RTIME_SPACETM(nk,(logn)h)khRO((logn)k)kEs una constante. La comparación entre tiempo secuencial y paralelo permite clasificar a como un problema altamente paralelizable (desde una perspectiva de tiempo).R

De la tesis de computación paralela, se deduce que es la clase de problemas altamente paralelizables. P O L Y L O G S P A C E no contiene problemas completos con respecto a las reducciones de espacio logarítmico; esto implica P O L Y L O G S P A C E P . Parece quePOLYLOGSPACEPOLYLOGSPACEPOLYLOGSPACEP

  1. POLYLOGSPACEP
  2. PPOLYLOGSPACE

contiene los problemas que se pueden resolver en el tiempo polinomial utilizando el espacio poliligarítmico. Los problemas completos de P probablemente pertenecen a P - ( P P O L Y L O G S P A C E ) .PPOLYLOGSPACEPP(PPOLYLOGSPACE)

(la clase de Nick, llamada así en honor a Nicholas Pippenger, el primero en identificarla y caracterizarla en 1979) es la clase de problemas que se pueden resolver en el tiempo poliligárítmico (es decir, con la complejidad del tiempo O ( ( l o g n ) k ) ) con un número polinómico de procesadores (es decir, delimitado por O ( f ( n ) ) para alguna función polinómica f donde n es el tamaño del problema) La tesis de computación paralela implica N C ( P P ONCO((logn)k))O(f(n))fn .NC(PPOLYLOGSPACE)

Sin embargo, desafortunadamente, por definición, también incluye muchos problemas que no son paralelizables de manera eficiente. El ejemplo más infame es la búsqueda binaria paralela . El problema es que este problema tiene una complejidad de tiempo pollogarítmico incluso para p = 1. ¡Cualquier algoritmo secuencial que requiera como máximo tiempo logarítmico en el peor de los casos está en N C, independientemente de su viabilidad paralela!NCpNC

Ahora, finalmente podemos explicar por qué los problemas completos son los problemas paralelizables más difíciles. Dado un problema Q- P completo , es muy poco probable la existencia de un algoritmo paralelo eficiente: si dicho algoritmo paralelo existiera con una complejidad temporal O ( ( l o g n ) k ) , entonces la tesis de computación paralela implicará la existencia de un algoritmo secuencial con complejidad espacial O ( ( l o g n ) k ' ) para el mismo problema. Como Q es una PPPQO((logn)k)O((logn)k)QPproblema -Complete esto a su vez implica que todos los problemas en puede ser resuelto en el espacio poli-log: ( P P O L Y L O G S P A C E ) = P . Como ya sabe, creemos que ( P P O L Y L O G S P A C E ) P , aunque todavía no podemos probar esto.P(PPOLYLOGSPACE)=P(PPOLYLOGSPACE)P

Una observación final, sobre el requisito del procesador polinomial. Bueno, esa es una afirmación teórica. En la práctica: un requisito de procesador que crece más rápido que el tamaño del problema podría no ser realmente útil.

Massimo Cafaro
fuente
10

Debido a que "paralelo eficiente" cae dentro NC ( “Clase de Nick” de los problemas decidibles en el tiempo polilogarítmico con un número polinómico de procesadores), y es ampliamente cree que NCP . Así que cualquier problema no se cree que tener un algoritmo paralelo eficiente (ya que ello implicaría que P = N C ).P-completeP=NC

Por supuesto, todo esto depende de la conjetura de que , como usted sabe que es un problema abierto que P no se encuentra en el primer nivel de N C , es decir, que no lo hacen saben si N C 1P .NCPPNCNC1P

Aún más, ni siquiera sabemos si no puede resolver problemas en en A C 0 [ 6 ] , es decir, circuitos booleanos de profundidad constante (= tiempo paralelo constante) conPAC0[6] puertas.mod6

Para más información, eche un vistazo al siguiente libro:

Raymond Greenlaw, H. James Hoover, Walter L. Ruzzo, " Límites a la computación paralela: Teoría de integridad de P ", 1995.

Kaveh
fuente
NC también incluye muchos problemas que no son eficientemente paralelizables. Vea mi respuesta para más detalles.
Massimo Cafaro
Es posible que desee decir explícitamente que "Si alguno problema está en N C a continuación, N C = P ". P-completeNCNC=P
Alex ten Brink
1
@unforgiven, hay varias opiniones sobre qué clase captura correctamente los algoritmos "paralelos eficientes", por esa razón utilicé una clase que se considera un enlace superior. Creo que P vs. NC es la razón típica por la cual las personas piensan que los problemas P-completos no tienen algoritmos paralelos eficientes, aunque hay detalles interesantes como se indica en su respuesta. Agregué una referencia a mi respuesta.
Kaveh
1
@Kaveh, estoy de acuerdo contigo. La mayoría de la gente piensa en esto exactamente en estos términos. Es por eso que quería ofrecer un punto de vista ligeramente diferente, basado en la tesis de computación paralela. La referencia que proporcionó es excelente y representa, de hecho, el mejor tratamiento del tema que he leído.
Massimo Cafaro
6

La respuesta de Kaveh cubre la definición habitual de "paralelismo", que es NC. La pregunta de si P NC es una de las preguntas más difíciles en la teoría de la complejidad (y de alguna manera tan relevante como la pregunta P < NP).<<

La intuición detrás de esto es que algunos problemas en P, como la programación lineal o el orden DFS, sienten que tienen muchas dependencias que fuerzan un largo "camino crítico" que no puede ser paralelo. Esta no es una prueba más de lo que lo es el no determinismo que parece ser muy poderoso, pero esta es la idea básica.

Editar: para aclarar los comentarios, el objetivo de esta respuesta es decir por qué (algunas) personas no piensan que P y NC son iguales. Al igual que con P y NP, nadie sabe cómo probar si los dos son diferentes, pero hay algo sobre los problemas difíciles que hace que (algunos) informáticos piensen que son.

Otro aspecto aparte es que NC es "tiempo de polillog en muchos procesadores polinomiales", que está pidiendo una aceleración muy dramática pero dando muchos procesadores. Por lo tanto, podría no ajustarse a una noción práctica de paralelizable.

<

Louis
fuente
PP
Pero el punto de Louis debe ser visto como intuición, y no está completamente equivocado. Lo que es problemático es que aunque P-completitud de la DFS es muy frágil - que necesita lexicographics DFS y es también en RNC, etc, etc
Suresh
@Suresh: Sí. Quiero decir, no tengo idea de cómo probar esa lex. el orden DFS no se puede simular determinísticamente de una manera mucho mejor que simplemente hacerlo, pero la gente no "siente" que sea posible sin aleatoriedad. (Si es importante, mi "religión" es que mucha aleatoriedad tiene cierto poder).
Louis
@Kaveh: Esta "ruta crítica" (también llamada "profundidad de trabajo") no es una característica del algoritmo sino del problema; Por eso es difícil de mostrar. Es la secuencia más larga de "pieves de trabajo" que se han investigado en secuencia (por cualquier algoritmo).
Raphael
@Raphael, dado un lenguaje, no hay una razón conocida por la cual un algoritmo que lo resuelve debe seguir una secuencia particular de pasos, si pudieras demostrar que implicaría un límite inferior que no tenemos. Y esta es una de las razones por las que probar los límites inferiores es tan difícil que no se puede suponer nada acerca de cómo se verá el cálculo de un algoritmo para resolver el problema. Ese es mi punto.
Kaveh
3

Sea muy consciente de quién toma "algoritmos paralelos eficientes" para decir exactamente qué.

O(f(n))O(g(n))

En particular, la clase a menudo nombrada NC es la

Conjunto de problemas de decisión que se pueden resolver en tiempo pollogarítmico en una computadora paralela con un número polinómico de procesadores.

Esto no tiene nada que ver con si existen algoritmos paralelos para estos problemas que sean eficientes en términos más prácticos¹:

  • Si tiene un algoritmo NC, no obtiene información sobre cómo resolver el problema (eficientemente) en ninguna máquina con un número fijo de procesadores.
  • n

    Por ejemplo, en muchos procesadores con memoria compartida constantemente, el análisis CYK se puede realizar en paralelo con una aceleración asintóticamente óptima (consulte mi tesis maestra , aunque el análisis sin contexto es P-completo.

O()


  1. Tp:NR0T1(n)/Tp(n)pT1(n)T(n)T

  2. Esto no siempre es cierto; La jerarquía de memoria y el hardware pueden permitir una mayor velocidad, al menos a veces. Sin embargo, habrá otro límite constante.

Rafael
fuente
0

Supongamos que mañana alguien descubre una prueba de que P = NC. ¿Cuáles serían las consecuencias para la investigación en ciencias de la computación y las aplicaciones prácticas en este caso?

Esa pregunta se marcó como duplicada , así que déjenme suponer que realmente es un duplicado y proporcione una posible respuesta.

Sabemos que NC! = PSPACE, por lo tanto, una prueba de que P = NC también probaría P! = PSPACE. Puede que no parezca un gran problema, pero es una consecuencia de la investigación en informática.

¿Por qué sabemos NC! = PSPACE? Bueno, sabemos NC k ⊆ DSPACE (O (log k )), por lo que podemos usar el teorema de la jerarquía espacial.


En términos de aplicaciones prácticas, las aplicaciones en torno a la programación lineal (y convexa) podrían ser tan seductoras que se podrían desarrollar y vender arquitecturas paralelas personalizadas junto con compiladores para traducir formulaciones de programación lineal de manera eficiente a ese hardware.

Thomas Klimpel
fuente