Decidere se cambiare una voce riduce il permanente di una matrice nella gerarchia polinomiale?


11

Considera il seguente problema: data una matrice , indici i , j { 1 , ... , n } e un numero intero a . Sostituire M [ i , j ] da una e chiamare nuova matrice M . Is p e r ( M ) > pM{m,,0,,m}n×ni,j{1,,n}aM[i,j]aM^ ?per(M)>per(M^)

È questo problema nella gerarchia polinomiale?


4
Può essere risolto con due chiamate a un oracolo #P ... Se fosse in PH, ciò implicherebbe che anche PP è in PH ... Tuttavia, se PP è in PH, allora PH collassa. Quindi penso che sia improbabile che sia in PH.
Tayfun paga il

1
@TayfunPay Non penso che l'argomento sia corretto. Il problema può essere risolto con 2 chiamate a #P, ma non può essere escluso così facilmente che esiste un algoritmo più semplice che potrebbe mostrare che è in PH. Dovresti mostrare che è difficile per #P per questo, ad esempio riducendo Permanent ad esso.
Jan Johannsen,

8
Se si collega la definizione di permanente e si semplifica la risultante disuguaglianza, il problema si riduce alla domanda se il permanente di una data matrice (n-1) -by- (n-1) sia strettamente positivo.
Gamow,

2
@Gamow, e viceversa, cioè decidere se può essere ridotto a questo problema. Data una matrice M , costruisci M aggiungendo una linea in alto e una colonna a sinistra con un 1 nell'angolo in alto a sinistra e 0 altrimenti. Ora lascia che M sia la matrice M ′ in cui la voce in alto a sinistra è stata sostituita da - 1 . Quindi P E R ( M ) = - P E R ( M ) =PER(M)>0MMMM1 per multilinearità e sviluppo della prima colonna. Quindi P E R ( M ) > 0 iff il problema di Turbo su M , ( i , j ) = ( 0 , 0 ) e a = - 1 ritorna vero. PER(M)=PER(M)=PER(M)PER(M)>0M(i,j)=(0,0)a=1
lupo,

@holf: penso che dovresti pubblicare questo come risposta. Risponde piuttosto definitivamente alla domanda, e quindi la domanda non apparirà più come "senza risposta".
Joshua Grochow,

Risposte:


10

Il tuo problema è equivalente al test, dato M , se PER(M)>0 .

Prova : supponiamo che ti venga dato M e desideri decidere se PER(M)>0 . Costruiamo M come segue:

[1000M0]
È facile vedere chePER(M)=PER(M). Ora, definiamoM^ comeM dove sostituiamo la voce(0,0)diM con1. Per multilinearità, ne consegue chePER(M)=PER(M)=PER(M^) . QuindiPER(M)>0 se e solo sePER(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


Buona risposta, ma probabilmente vale la pena dichiarare esplicitamente anche la risposta alla domanda del PO.
Stella Biderman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.