¿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 ) > pM{m,,0,,m}n×ni,j{1,,n}aM[i,j]aM^ ?per(M)>per(M^)

¿Es este problema en la jerarquía polinómica?


44
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 ) =PER(M)>0MMMM1 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:

[1000M0]
Es fácil ver quePER(M)=PER(M). Ahora, definaM^ comoM donde reemplazamos la entrada(0,0)deM por1. Por multilinealidad, se deduce quePER(M)=PER(M)=PER(M^) . Por lo tanto,PER(M)>0 si y solo siPER(M)>PER(M^) .

M(i,j)aM^M[i,j]a

PER(M)>PER(M^) iffσk=1nM[k,σ(k)]>σk=1nM^[k,σ(k)] iffσ,σ(i)=jM[i,j]kinM[k,σ(k)]>σ,σ(i)=jakinM[k,σ(k)] iff(M[i,j]a)σ,σ(i)=jkinM[k,σ(k)]>0 iff(M[i,j]a)PER(M)>0

M(n1)×(n1)Mij


Buena respuesta, pero probablemente también valga la pena indicar explícitamente la respuesta a la pregunta del OP.
Stella Biderman
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.