La #P-completitud del 01-permanente , a veces conocido como el teorema de Valiant , [ 1 ] es una demostración matemática sobre el permanente de matrices , considerado un resultado seminal en la teoría de la complejidad computacional . [ 2 ] [ 3 ] En 1979, Leslie Valiant demostró que el problema computacional de calcular el permanente de una matriz es #P-difícil , incluso si la matriz está restringida a tener entradas que son todas 0 o 1. [ 4 ] En este caso restringido, calcular el permanente es incluso #P-completo , porque corresponde al problema #P de contar el número de matrices de permutación que se pueden obtener cambiando unos por ceros.
El artículo de Valiant de 1979 también introdujo #P como una clase de complejidad . [ 5 ]
La definición de completitud de Valiant y su prueba de completitud del 01-permanente utilizaron reducciones de Turing en tiempo polinomial . En este tipo de reducción, una única instancia difícil de algún otro problema en #P se reduce al cálculo del permanente de una secuencia de múltiples grafos, cada uno de los cuales podría depender de los resultados de cálculos de permanentes anteriores. Una simplificación posterior de Ben-Dor y Halevi (1993) demostró que es posible utilizar una noción de reducción más débil, una reducción de conteo en tiempo polinomial , que traduce el otro problema en una única instancia del problema del permanente.
Significado
Una razón para interesarse en la complejidad computacional del permanente es que proporciona un ejemplo de un problema en el que se puede construir una única solución de manera eficiente, pero en el que contar todas las soluciones es difícil. [ 6 ] Como escribe Papadimitriou en su libro Complejidad computacional :
Los problemas #P-completos más impresionantes e interesantes son aquellos para los que el problema de búsqueda correspondiente puede resolverse en tiempo polinomial. El problema PERMANENT para matrices 0-1, que es equivalente al problema de contar emparejamientos perfectos en un grafo bipartito [...] es el ejemplo clásico aquí. [ 1 ]
Específicamente, el cálculo del permanente (que los resultados de Valiant demostraron que es difícil) está estrechamente relacionado con encontrar un emparejamiento perfecto en un grafo bipartito, que se puede resolver en tiempo polinomial mediante el algoritmo de Hopcroft-Karp . [ 7 ] [ 8 ] Para un grafo bipartito con 2 n vértices particionado en dos partes con n vértices cada una, el número de emparejamientos perfectos es igual al permanente de su matriz de biadyacencia y el cuadrado del número de emparejamientos perfectos es igual al permanente de su matriz de adyacencia . [ 9 ] Dado que cualquier matriz 0-1 es la matriz de biadyacencia de algún grafo bipartito, el teorema de Valiant implica [ 9 ] que el problema de contar el número de emparejamientos perfectos en un grafo bipartito es #P-completo , y en conjunto con el teorema de Toda esto implica que es difícil para toda la jerarquía polinomial . [ 10 ] [ 11 ]
La complejidad computacional del permanente también tiene cierta importancia en otros aspectos de la teoría de la complejidad: no se sabe si NC es igual a P (de manera informal, si todo problema resoluble en tiempo polinomial puede resolverse mediante un algoritmo paralelo de tiempo polilogarítmico ) y Ketan Mulmuley ha sugerido un enfoque para resolver esta cuestión que se basa en escribir el permanente como el determinante de una matriz. [ 12 ]
Hartmann [ 13 ] demostró una generalización del teorema de Valiant sobre la complejidad del cálculo de inmanantes de matrices que generalizan tanto el determinante como el permanente.
La prueba de Ben-Dor y Halevi
A continuación se describe la demostración de que el cálculo del permanente de una matriz 01 es #P-completo . Sigue principalmente la demostración de Ben-Dor y Halevi (1993) . [ 14 ]
Descripción general
Cualquier matriz cuadradapuede verse como la matriz de adyacencia de un grafo dirigido , conrepresentando el peso de la arista desde el vérticeal vértice. Luego, la permanente dees igual a la suma de los pesos de todas las coberturas de ciclos del grafo; esta es una interpretación teórica de grafos del permanente .
#SAT , un problema de función relacionado con el problema de satisfacibilidad booleana , es el problema de contar el número de asignaciones que satisfacen una fórmula booleana dada. Es un problema #P-completo (por definición), ya que cualquier máquina NP puede codificarse en una fórmula booleana mediante un proceso similar al del teorema de Cook , de modo que el número de asignaciones que satisfacen la fórmula booleana es igual al número de caminos de aceptación de la máquina NP. Cualquier fórmula en SAT puede reescribirse como una fórmula en forma 3- CNF que conserva el número de asignaciones que la satisfacen, por lo que #SAT y #3SAT son equivalentes y #3SAT también es #P-completo .
Para demostrar que 01-Permanent es #P-difícil , basta con mostrar que el número de asignaciones que satisfacen una fórmula 3-CNF se puede expresar sucintamente como una función del permanente de una matriz que contiene solo los valores 0 y 1. Esto se suele lograr en dos pasos:
- Dada una fórmula 3-CNF, construir un grafo dirigido ponderado por enteros, de tal manera que la suma de los pesos de las cubiertas de ciclo de(o equivalentemente, el permanente de su matriz de adyacencia) es igual al número de asignaciones que satisfacen. Esto establece que Permanent es #P-duro.
- Mediante una serie de reducciones, se reduce el problema Permanente a 01-Permanente, que consiste en calcular el permanente de una matriz con todas sus entradas iguales a 0 o 1. Esto demuestra que 01-permanente también es #P-difícil.
Construcción del grafo de enteros
Dada una fórmula 3CNFconcláusulas yvariables, se puede construir un grafo dirigido ponderadode tal manera que
- cada tarea satisfactoria paratendrá un conjunto correspondiente de cubiertas de ciclo endonde la suma de los pesos de las cubiertas de ciclo en este conjunto será ; y
- todas las demás cubiertas de ciclo entendrán pesos que sumarán 0.
Por lo tanto, sies el número de asignaciones satisfactorias para, el permanente de este gráfico será. (La prueba original de Valiant construye un grafo con entradas encuyo permanente esdóndees "el doble del número de ocurrencias de literales en" –.)
La construcción del gráfico utiliza un componente que se trata como una "caja negra". Para simplificar la explicación, se proporcionan las propiedades de este componente sin definir su estructura.
Para especificar, primero se construye un nodo variable enpara cada uno de losvariables en. Además, para cada uno de loscláusulas en, se construye un componente de cláusulaenque funciona como una especie de "caja negra". Todo lo que hay que tener en cuenta es lo siguiente:es que tiene tres aristas de entrada y tres aristas de salida. Las aristas de entrada provienen de nodos variables o de componentes de cláusulas anteriores (por ejemplo,para algunos) y los bordes de salida van a nodos variables o a componentes de cláusulas posteriores (por ejemplo,para algunos). Los primeros bordes de entrada y salida corresponden con la primera variable de la cláusulay así sucesivamente. Hasta ahora, todos los nodos que aparecerán en el gráficohan sido especificados.
A continuación, se considerarían los bordes. Para cada variablede, se crea un ciclo verdadero (ciclo T) y un ciclo falso (ciclo F) enPara crear el ciclo T, se comienza en el nodo variable paray dibuja un borde al componente de la cláusulaque corresponde a la primera cláusula en la queaparece. Sies la primera variable en la cláusula decorrespondiente a, este borde será el primer borde de entrada dey así sucesivamente. Luego, dibuje una arista hasta el siguiente componente de la cláusula que corresponda a la siguiente cláusula deen el cualaparece, conectándolo desde el borde de salida apropiado deal borde de entrada apropiado del siguiente componente de cláusula, y así sucesivamente. Después de la última cláusula en la queaparece, conectamos el borde de salida apropiado del componente de cláusula correspondiente de vuelta anodo variable de . Por supuesto, esto completa el ciclo. Para crear el ciclo F, se seguiría el mismo procedimiento, pero conectandonodo variable de aquellos componentes de cláusula en los que ~aparece, y finalmente de vuelta anodo variable de . Todas estas aristas fuera de los componentes de la cláusula se denominan aristas externas , todas las cuales tienen peso 1. Dentro de los componentes de la cláusula, las aristas se denominan aristas internas . Cada arista externa es parte de un ciclo T o un ciclo F (pero no ambos, ya que eso forzaría una inconsistencia).
Tenga en cuenta que el gráficoes de tamaño lineal en, por lo que la construcción se puede realizar en tiempo polinomial (suponiendo que los componentes de la cláusula no causen problemas).
Propiedades notables del gráfico
Una propiedad útil dees que sus ciclos cubren las asignaciones de variables paraPara una funda de bicicletade, se puede decir queinduce una asignación de valores para las variables enpor si acasocontiene todos los bordes externos enEl ciclo T de y ninguno de los bordes externos enCiclo F para todas las variablesque la asignación hace verdadera, y viceversa para todas las variables.que la asignación hace falso. Aunque cualquier ciclo dado cubreno es necesario inducir una asignación para, cualquiera que lo haga induce exactamente una asignación, y la misma asignación inducida depende solo de los bordes externos de. El términose considera una cobertura de ciclo incompleta en esta etapa, porque solo se habla de sus bordes externos,En la sección siguiente se considera:-completaciones para demostrar que se tiene un conjunto de cubiertas de ciclo correspondientes a cada unaque tengan las propiedades necesarias.
El tipo de portadasque no inducen asignaciones son aquellas con ciclos que "salta" dentro de los componentes de la cláusula. Es decir, si para cada, al menos uno deLos bordes de entrada de están eny cada borde de salida de los componentes de la cláusula está encuando el borde de entrada correspondiente está en, entonceses apropiado con respecto a cada componente de la cláusula, yproducirá una tarea satisfactoria paraEsto se debe a que las cubiertas adecuadascontienen el ciclo T completo o el ciclo F completo de cada variable.enasí como cada uno incluyendo aristas que entran y salen de cada componente de la cláusula. Por lo tanto, estas cubiertas asignan verdadero o falso (pero nunca ambos) a caday asegurar que se cumpla cada cláusula. Además, los conjuntos de coberturas de ciclo correspondientes a todos ellostener pesoy cualquier otrotiene pesoLas razones de esto dependen de la estructura de los componentes de la cláusula y se detallan a continuación.
El componente de la cláusula
Para comprender las propiedades relevantes de los componentes de la cláusula, se necesita la noción de una M-completación. Una cobertura de cicloinduce una asignación satisfactoria solo si sus aristas externas satisfacen ciertas propiedades. Para cualquier cobertura de ciclo de, consideremos solo sus aristas externas, el subconjunto. Dejarun conjunto de aristas externas. Un conjunto de aristas internas.es un-completar por si acasoes una cubierta de ciclo de. Además, denotemos el conjunto de todos-completaciones pory el conjunto de todas las cubiertas de ciclo resultantes depor.
Recuerde que la construcción deera tal que cada borde externo tenía un peso de 1, por lo que el peso de, el ciclo cubre los resultados de cualquier, depende únicamente de los bordes internos involucrados. Añadimos aquí la premisa de que la construcción de los componentes de la cláusula es tal que la suma sobre posibles-completaciones del peso de las aristas internas en cada componente de la cláusula, dondees apropiado en relación con el componente de la cláusula, es 12. De lo contrario, el peso de los bordes internos es 0. Dado que haycomponentes de cláusulas y la selección de conjuntos de aristas internas,, dentro de cada componente de cláusula es independiente de la selección de conjuntos de aristas internas en otros componentes de cláusula, por lo que se puede multiplicar todo para obtener el peso de. Entonces, el peso de cada, dóndeinduce una asignación satisfactoria, es. Además, dondeno induce una asignación satisfactoria,no es apropiado con respecto a algunos, por lo tanto, el producto de los pesos de los bordes internos enserá.
El componente de cláusula es un grafo dirigido ponderado con 7 nodos, cuyas aristas tienen pesos y están dispuestos para producir las propiedades especificadas anteriormente, y se presenta en el Apéndice A de Ben-Dor y Halevi (1993). Nótese que las aristas internas aquí tienen pesos extraídos del conjunto.; no todas las aristas tienen pesos de 0 a 1.
Finalmente, dado que la suma de pesos de todos los conjuntos de recubrimientos de ciclos que inducen cualquier asignación particular satisfactoria esy la suma de los pesos de todos los demás conjuntos de cubiertas de ciclo es 0, uno tieneLa siguiente sección reduce el cálculoal permanente de una matriz 01.
01-Matriz
La sección anterior ha demostrado que Permanent es #P-difícil. Mediante una serie de reducciones, cualquier permanente puede reducirse al permanente de una matriz con entradas únicamente 0 o 1. Esto demostrará que 01-Permanente también es #P-difícil.
Reducción a una matriz no negativa
Utilizando aritmética modular , convierta una matriz entera.en una matriz no negativa equivalentepara que la permanente dese puede calcular fácilmente a partir del permanente de, de la siguiente manera:
Dejarfrijolmatriz de enteros donde ninguna entrada tiene una magnitud mayor que.
- Calcular. La elección deEsto se debe a que
- Calcular
- Calcular
- Sientonces Perm( A ) = P . De lo contrario
La transformación deenes polinomial eny, ya que el número de bits necesarios para representares polinomial eny
A continuación se muestra un ejemplo de la transformación y por qué funciona.
Aquí,,, y, entonces. De este modo
Nótese que los elementos son no negativos debido a la aritmética modular. Es sencillo calcular el permanente.
entonces. Entonces, entonces
Reducción a potencias de 2

Tenga en cuenta que cualquier número puede descomponerse en una suma de potencias de 2. Por ejemplo,
Este hecho se utiliza para convertir una matriz no negativa en una matriz equivalente cuyas entradas son todas potencias de 2. La reducción se puede expresar en términos de gráficas equivalentes a las matrices.
Dejarser un-grafo dirigido ponderado de nodos con pesos no negativos, donde el peso más grande esCada bordecon pesose convierte en una arista equivalente con pesos en potencias de 2 de la siguiente manera:
- ,
Esto se puede ver gráficamente en la Figura 1. El subgrafo que reemplaza la arista existente contienenodos ybordes.
Para demostrar que esto produce un gráfico equivalenteque tiene el mismo permanente que el original, se debe mostrar la correspondencia entre las cubiertas del ciclo dey.
Considere alguna cobertura de cicloen.
- Si un bordeno está en, entonces para cubrir todos los nodos en el nuevo subgrafo, se deben usar los bucles propios. Dado que todos los bucles propios tienen un peso de 1, el peso de las coberturas de ciclos enyfósforo.
- Siestá en, luego en todas las coberturas de ciclo correspondientes en, debe haber un camino desdea, dóndeyson los nodos de arista. Desde la construcción, se puede ver que haydiferentes caminos y la suma de todos estos caminos es igual al peso de la arista en el grafo original.. Por lo tanto, el peso de las cubiertas de ciclo correspondientes enyfósforo.
Tenga en cuenta que el tamaño dees polinomial eny.
Reducción a 0–1

El objetivo aquí es reducir una matriz cuyas entradas son potencias de 2 a una matriz equivalente que contenga solo ceros y unos (es decir, un grafo dirigido donde cada arista tiene un peso de 1).
Dejarser un-grafo dirigido de nodos donde todos los pesos en las aristas son potencias de dos. Construya un grafo,, donde el peso de cada arista es 1 y. El tamaño de este nuevo gráfico,, es polinómico enydonde el peso máximo de cualquier arista en el grafoes.
Esta reducción se realiza localmente en cada borde enque tenga un peso mayor que 1. Dejeser una ventaja encon un pesoSe reemplaza por un subgrafoque está compuesto denodos ybordes como se ve en la Figura 2. Cada borde entiene un peso de 1. Por lo tanto, el gráfico resultanteContiene únicamente aristas con un peso de 1.
Considere alguna cobertura de cicloen.
- Si un borde originaldel gráficono está enNo se puede crear un camino a través del nuevo subgrafo.. La única forma de formar una cubierta de ciclo sobreEn tal caso, cada nodo del subgrafo debe completar su propio bucle. Como cada arista tiene un peso de uno, el peso de la cobertura de ciclos resultante es igual al de la cobertura de ciclos original.
- Sin embargo, si la ventaja enes parte de la cubierta de ciclo entonces en cualquier cubierta de ciclo dedebe haber un camino desdeaen el subgrafo. En cada paso hacia abajo del subgrafo hay dos opciones que se pueden tomar para formar dicho camino. Se debe tomar esta opción.veces, lo que resulta enposibles rutas desdeaPor lo tanto, hayposibles coberturas de ciclo y dado que cada ruta tiene un peso de 1, la suma de los pesos de todas estas coberturas de ciclo es igual al peso de la cobertura de ciclo original.
La prueba de Aaronson
En 2011, el científico informático cuántico Scott Aaronson demostró que el permanente es #P-difícil utilizando métodos cuánticos. [ 15 ]
Referencias
- 1 2 Christos H. Papadimitriou . Complejidad computacional. Addison-Wesley , 1994. ISBN 0-201-53082-1Página 443
- ↑ Allen Kent , James G. Williams, Rosalind Kent y Carolyn M. Hall (editores). Enciclopedia de microcomputadoras . Marcel Dekker , 1999. ISBN 978-0-8247-2722-2pág. 34
- ↑ Jin-Yi Cai, A. Pavan y D. Sivakumar, Sobre la dureza de los permanentes. En: STACS, '99: 16.º Simposio Anual sobre Aspectos Teóricos de la Informática, Trier, Alemania, 4-6 de marzo de 1999. Actas. págs. 90-99. Springer-Verlag , Nueva York, LLC. Fecha de publicación: octubre de 2007. ISBN 978-3-540-65691-3; pág. 90.
- ↑ Leslie G. Valiant (1979). "La complejidad del cálculo del permanente". Theoretical Computer Science . 8 (2). Elsevier: 189– 201. doi : 10.1016/0304-3975(79)90044-6 .
- ↑ Lance Fortnow . Mis diez teoremas de complejidad favoritos de la última década. Fundamentos de la tecnología del software y la informática teórica: Actas de la 14.ª Conferencia, Madrás, India, 15-17 de diciembre de 1994. PS Thiagarajan (editor), págs. 256-275, Springer-Verlag , Nueva York, 2007. ISBN 978-3-540-58715-6pág. 265
- ↑ Bürgisser, Peter (2000). Completitud y reducción en la teoría de la complejidad algebraica . Algoritmos y computación en matemáticas. Vol. 7. Berlín: Springer-Verlag . p. 2. ISBN 978-3-540-66752-0. Zbl 0948.68082 .
- ↑ John E. Hopcroft , Richard M. Karp : UnAlgoritmo para emparejamientos máximos en grafos bipartitos. SIAM J. Comput. 2(4), 225–231 (1973)
- ↑ Cormen, Thomas H. ; Leiserson, Charles E. ; Rivest, Ronald L. ; Stein, Clifford (2001) [1990]. "26.5: El algoritmo de reetiquetado al frente". Introducción a los algoritmos (2.ª ed.). MIT Press y McGraw-Hill. págs. 696–697 . ISBN 0-262-03293-7.
- 1 2 Dexter Kozen . Diseño y análisis de algoritmos. Springer-Verlag , Nueva York, 1991. ISBN 978-0-387-97687-7págs. 141–142
- ↑ Seinosuke Toda . PP es tan difícil como la jerarquía de tiempo polinomial. SIAM Journal on Computing , volumen 20 (1991), número 5, págs. 865-877 .
- ↑ "Premio Gödel 1998. Seinosuke Toda" . Archivado del original el 8 de enero de 2014. Consultado el 6 de julio de 2016 .
- ↑ Ketan Mulmuley . Límites inferiores en un modelo paralelo sin operaciones de bits. SIAM Journal on Computing , volumen 28 (1999), número 4, págs. 1460-1509 .
- ↑ W. Hartmann. Sobre la complejidad de los inmanentes. Álgebra lineal y multilineal 18 (1985), n.º 2, págs. 127–140.
- ↑ Ben-Dor, Amir; Halevi, Shai (1993). "El permanente cero-uno es #P -completo, una prueba más sencilla". Actas del 2.º Simposio de Israel sobre Teoría y Sistemas Informáticos (PDF) . págs. 108–117 .
- ↑ S. Aaronson , Una prueba óptica lineal de que el permanente es #P-difícil
- Problemas computacionales
- Combinatoria
- Pruebas de artículos