¿Decidir si cambiar una entrada disminuye el permanente de una matriz en la jerarquía polinómica?
11
Considere el siguiente problema: dada una matriz , índices i , j ∈ { 1 , ... , n } y un número entero a . Reemplazar M [ i , j ] por una y llame nueva matriz M . Es p e r ( M ) > pMETRO∈ { - m , ... , 0 , ... , m }n × ni , j ∈ { 1 , ... , n }unaMETRO[ i , j ]unaMETRO^ ?p e r ( M) > p e r ( M^)
Se puede resolver con dos llamadas a un oráculo #P ... Si estaba en PH, entonces implicaría que PP también está en PH ... Sin embargo, si PP está en PH, entonces PH colapsa. Así que creo que es poco probable que esté en PH.
Tayfun paga
1
@TayfunPay No creo que ese argumento sea correcto. El problema se puede resolver con 2 llamadas a #P, pero no se puede descartar tan fácilmente que hay un algoritmo más simple que puede mostrar que está en PH. Tendría que mostrar que es difícil para #P para eso, por ejemplo, reduciendo Permanente.
Jan Johannsen
8
Si conecta la definición del permanente y simplifica la desigualdad resultante, su problema se reduce a la pregunta de si el permanente de una matriz dada (n-1) -por- (n-1) es estrictamente positivo.
Gamow
2
@Gamow, y viceversa, es decir, decidir si puede reducirse a este problema. Dada una matriz M , construya M ' agregando una línea en la parte superior y una columna a la izquierda con un 1 en la esquina superior izquierda y 0 en caso contrario. Ahora deje que M ″ sea la matriz M ′ donde la entrada superior izquierda ha sido reemplazada por - 1 . Entonces P E R ( M ″ ) = - P E R ( M ′ ) =PAGmiR ( M) > 0MM′M′′M′−1 por multilinealidad y desarrollando la primera columna. Por lo tanto, P E R ( M ) > 0 si el problema de Turbo en M ' , ( i , j ) = ( 0 , 0 ) y a = - 1 devuelve verdadero. PER(M′′)=−PER(M′)=−PER(M)PER(M)>0M′(i,j)=(0,0)a=−1
holf
@holf: Creo que deberías publicar esto como respuesta. Responde definitivamente la pregunta, y luego la pregunta ya no aparecerá como "sin respuesta".
Joshua Grochow
Respuestas:
10
Su problema es equivalente a probar, dado M , si PER(M)>0 .
Prueba : Suponga que recibe M y desea decidir si PER(M)>0 . Construimos M′ como sigue:
⎡⎣⎢⎢⎢10…00…M0⎤⎦⎥⎥⎥
Es fácil ver quePER(M)=PER(M′). Ahora, definaM′^ comoM′ donde reemplazamos la entrada(0,0)deM′ por−1. Por multilinealidad, se deduce quePER(M)=PER(M′)=−PER(M′^) . Por lo tanto,PER(M)>0 si y solo siPER(M′)>PER(M′^) .
Respuestas:
Su problema es equivalente a probar, dadoM , si PER(M)>0 .
Prueba : Suponga que recibeM y desea decidir si PER(M)>0 . Construimos M′ como sigue:
⎡⎣⎢⎢⎢10…00…M0⎤⎦⎥⎥⎥
Es fácil ver quePER(M)=PER(M′) . Ahora, definaM′^ comoM′ donde reemplazamos la entrada(0,0) deM′ por−1 . Por multilinealidad, se deduce quePER(M)=PER(M′)=−PER(M′^) . Por lo tanto,PER(M)>0 si y solo siPER(M′)>PER(M′^) .
fuente