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?
complexity-theory
parallel-computing
Dave Clarke
fuente
fuente
Respuestas:
Es improbable que cualquier problemaPAGS completo tenga un algoritmo paralelo eficiente. Por qué ?
La existencia de problemasPAGS completos es la pista más importante que ( P∩ PO L YL O G SPAGSA Cmi) ≠ 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 EPAGSSPAGSA Cmi PAGS PAGSSPAGSA Cmi PAGS nortePAGS PAGSSPAGSA Cmi ... 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.PAGS
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.PAGS
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 ′R ∈ TyoMETROmi_ SPAGSA CmiTMETRO( nk, ( l o gn )h) k h R O ( ( l o gn )k′) k′ Es 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 quePAGSO L YL O G SPAGSA Cmi PAGSO L YL O G SPAGSA Cmi PAGSO L YL O G SPAGSA Cmi≠ P
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 ) .PAGS∩ PO L YL O G SPAGSA Cmi PAGS PAGS- ( P∩ PO L YL O G SPAGSA Cmi)
(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 Onortedo O ( ( l o gn )k) ) O ( f( n ) ) F norte .nortedo⊂ ( P∩ PO L YL O G SPAGSA Cmi)
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!nortedo pags nortedo
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 PPAGS PAGS Q O ( ( l o gn )k) O ( ( l o gn )k′) Q PAGS problema -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.PAGS ( P∩ PO L YL O G SPAGSA Cmi) = P ( P∩ PO L YL O G SPAGSA Cmi) ⊂ 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.
fuente
Debido a que "paralelo eficiente" cae dentroN C ( “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 N C ≠ P . Así que cualquier problema no se cree que tener un algoritmo paralelo eficiente (ya que ello implicaría que P = N C ).P-complete P=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 1 ≠ P .NC≠P P NC NC1≠P
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) conP AC0[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.
fuente
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.
fuente
Sea muy consciente de quién toma "algoritmos paralelos eficientes" para decir exactamente qué.
En particular, la clase a menudo nombrada NC es la
Esto no tiene nada que ver con si existen algoritmos paralelos para estos problemas que sean eficientes en términos más prácticos¹:
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.
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.
fuente
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.
fuente