stringtranslate.com

♯P-completo

Los problemas #P-completos (que se pronuncian "sharp P complete" o "number P complete") forman una clase de complejidad en la teoría de la complejidad computacional . Los problemas de esta clase de complejidad se definen por tener las dos propiedades siguientes:

Los problemas #P-completos son al menos tan difíciles como los problemas NP-completos . [1] Un algoritmo de tiempo polinomial para resolver un problema #P-completo, si existiera, resolvería el problema de P versus NP al implicar que P y NP son iguales. No se conoce ningún algoritmo de ese tipo, ni tampoco se conoce una prueba de que no exista tal algoritmo.

Ejemplos

Algunos ejemplos de problemas #P-completos incluyen:

Todos ellos son necesariamente miembros de la clase #P también. Como no-ejemplo, considere el caso de contar soluciones a un problema de 1-satisfacibilidad: una serie de variables que están restringidas individualmente, pero no tienen relaciones entre sí. Las soluciones se pueden contar de manera eficiente, multiplicando el número de opciones para cada variable de manera aislada. Por lo tanto, este problema está en #P , pero no puede ser #P-completo a menos que #P = FP . Esto sería sorprendente, ya que implicaría que P = NP = PH .

Problemas sencillos con versiones de conteo difíciles

Algunos problemas #P-completos corresponden a problemas fáciles ( tiempo polinomial ). Determinar la satisfacibilidad de una fórmula booleana en DNF es fácil: dicha fórmula es satisfacible si y solo si contiene una conjunción satisfacible (una que no contenga una variable y su negación), mientras que contar el número de asignaciones satisfactorias es #P-completo. Además, decidir la 2-satisfacibilidad es fácil en comparación con contar el número de asignaciones satisfactorias. La ordenación topológica es fácil en contraste con contar el número de ordenaciones topológicas. Se puede encontrar una única coincidencia perfecta en tiempo polinomial, pero contar todas las coincidencias perfectas es #P-completo. El problema de conteo de coincidencia perfecta fue el primer problema de conteo correspondiente a un problema P fácil que se demostró que era #P-completo, en un artículo de 1979 de Leslie Valiant que también definió la clase #P y los problemas #P-completos por primera vez. [3]

Aproximación

Existen algoritmos probabilísticos que devuelven buenas aproximaciones a algunos problemas #P-completos con alta probabilidad. Esta es una de las demostraciones del poder de los algoritmos probabilísticos.

Muchos problemas #P-completos tienen un esquema de aproximación aleatorio de tiempo polinomial completo , o "FPRAS", que, informalmente, producirá con alta probabilidad una aproximación con un grado arbitrario de precisión, en un tiempo que es polinomial con respecto tanto al tamaño del problema como al grado de precisión requerido. Jerrum , Valiant y Vazirani demostraron que cada problema #P-completo tiene un FPRAS, o es esencialmente imposible de aproximar; si hay algún algoritmo de tiempo polinomial que produzca consistentemente una aproximación de un problema #P-completo que esté dentro de una proporción polinomial en el tamaño de la entrada de la respuesta exacta, entonces ese algoritmo puede usarse para construir un FPRAS. [4]

Referencias

  1. ^ Valiant, Leslie G. (agosto de 1979). "La complejidad de los problemas de enumeración y confiabilidad" (PDF) . Revista SIAM de Computación . 8 (3): 410–421. doi :10.1137/0208032.
  2. ^ Brightwell, Graham R.; Winkler, Peter (1991). "Conteo de extensiones lineales". Orden . 8 (3): 225–242. doi :10.1007/BF00383444. S2CID  119697949..
  3. ^ Leslie G. Valiant (1979). "La complejidad de calcular lo permanente". Ciencias de la computación teórica . 8 (2). Elsevier: 189–201. doi : 10.1016/0304-3975(79)90044-6 .
  4. ^ Mark R. Jerrum; Leslie G. Valiant; Vijay V. Vazirani (1986). "Generación aleatoria de estructuras combinatorias a partir de una distribución uniforme". Ciencias de la computación teórica . 43 . Elsevier: 169–188. doi : 10.1016/0304-3975(86)90174-x .

Lectura adicional