Perché P = NP non implica P = AP (cioè P = PSPACE)?


18

È noto che se allora la gerarchia polinomiale collassa e .P = P HP=NPP=PH

Questo può essere facilmente compreso induttivamente usando macchine oracolari. La domanda è: perché non possiamo continuare il processo induttivo oltre un livello costante di alternanze e dimostrare (aka )?A P = P S P A C EP=AltTime(nO(1))AP=PSPACE

Sto cercando una risposta intuitiva.



4
È noto che ma si sospetta che (ovvero ) non sia uguale a . A L P N LNL=coNLALPNL
sdcvvc,

Risposte:


32

La prova per P=AltTime(O(1)) ( =PH ) è un'induzione con P=NP . L'induzione mostra che per qualsiasi numero naturale k , P=AltTime(k) (e AltTime(O(1)) è solo la loro unione).

L'induzione non funziona quando il numero di alternanza può variare con la dimensione di input (cioè quando il numero di possibili alternanze della macchina non è un numero ma una funzione della dimensione di input, cioè non stiamo dimostrando che un'esecuzione della macchina su un singolo input può essere ridotto a nessuna alternanza, stiamo dimostrando che le esecuzioni della macchina su tutti gli input possono essere "uniformemente" ridotte a nessuna alternanza).

Diamo un'occhiata a un'affermazione simile ma più semplice. Vogliamo dimostrare che la funzione identità alla fine domina tutte le funzioni costanti ( f g iff per tutti ma finitamente molte n f ( n ) g ( n ) ). Si può dimostrare per induzione. Per tutti k , k n (cioè f ki d dove f k ( n ) = kid(n)=nfgn f(n)g(n)kknfkidfk(n)=kn2n2≪̸n


22

Confronta la gerarchia polinomiale con la gerarchia per prove interattive. Se per alcune k fisse , hai k alternanze in una prova interattiva - IP ( k ) - la classe di complessità risultante non ha più potenza di quella che ottieni con due alternanze - cioè IP ( k ) = IP (2 ) = AM (assumendo k ≥2). Tuttavia, se si consente un numero polinomiale di alternanze, si ottiene la classe di complessità IP = PSPACE, che si ritiene sia molto più grande di AM, una classe è contenuta in Π 2 P, al secondo livello della gerarchia polinomiale. Quindi questo fenomeno si verifica effettivamente (sebbene, per quanto non sappiamo, con la gerarchia polinomiale).

Ciò accade perché la riduzione che prende un problema di dimensione n in IP ( k ) e lo trasforma in un problema in IP (2) fa esplodere la dimensione del problema, in modo che mentre per qualsiasi IP specifico ( k ) il problema rimanga polinomiale , se lasci che k cambi, la riduzione risultante non dà problemi polinomiali in k .


11

Ecco una piccola intuizione riguardo al divario tra alternanze costanti e illimitate: un'operazione polinomiale ripetuta un numero costante di volte è polinomiale, ma ripetere un numero polinomiale di volte può essere esponenziale. Ad esempio, prendi la moltiplicazione ripetuta su se stessa:

v = 2
for(i=1 to n)
  v = v*v

Il numero di iterazioni è lineare e l'output è esponenziale. Ma se si corregge n, è polinomiale sulla dimensione del valore iniziale.


4

Di seguito espongo un po 'il punto nella risposta di Peter, cercando di eseguire la rimozione del quantificatore per più di un numero costante di passaggi per vedere dove fallisce e se qualcosa può essere salvato da un simile tentativo.

Proviamo ad amplificare P=NP per più di un numero costante di volte.

Si supponga che P=NP . Pertanto esiste una macchina del tempo polinomiale che risolve Ext-Circuit-SAT (esiste un'estensione soddisfacente per un dato circuito e un'assegnazione parziale ai suoi ingressi?).

Più formalmente, abbiamo un algoritmo polytime A con tempo di esecuzione polinomiale p(n)poly(n) st

Dato un circuito booleano φ e un'assegnazione parziale τ agli ingressi,
A restituisce "sì" se esiste un'estensione di τ che soddisfa φ e restituisce "no" in caso contrario.

Per superare tempi costanti, è necessario eseguire la rimozione del quantificatore in modo efficace. Possiamo farlo perché la Cook-Levin teorema è un teorema costruttiva, infatti dà un polinomio tempo algoritmo di Cook st

Dato un DTM M riceve due ingressi, e tre numeri unari n , m , e t ,
Cook(M,n,m,t) restituisce un circuito booleano di dimensione O(t2) che simula M su input di largo (n,m) per t passi.

Proviamo a usarli per estendere l'argomento di P=PH per ottenere un algoritmo che risolve TQBF (in realtà TQBCircuit, ovvero il problema del circuito booleano totalmente quantificato).

L'idea dell'algoritmo è il seguente: useremo ripetutamente Cook su A per rimuovere le occorrenze di un dato circuito quantificato. Ci sono certo numero lineare di occorrenze quindi speriamo di ottenere un algoritmo di tempo polinomiale (abbiamo un algoritmo con polinomialmente molti passaggi utilizzando il polinomio tempo subroutine Cook ). Alla fine di questo processo di eliminazione del quantificatore avremo un circuito privo di quantificatore che può essere valutato in tempo polinomiale (il problema del valore del circuito è in P , lascia che CV sia un algoritmo del tempo polinomiale per calcolare il valore del circuito di un dato circuito) .

Tuttavia vedremo che questa idea non funziona (per lo stesso motivo indicato da Peter).

  • Sia φ un circuito quantificato (inizializzato con la formula quantificata fornita).
  • Sia k il numero di quantificatori in φ .
  • Per i da k a 1 do

    • Lasciare ψ = Qxkσ(x1,...,xk) l'ultimo quantificatore e la parte libera-quantificatore.
    • Se , Q=""

      1. Calcola , C=Cook(A,|σ|,|x1|+...+|xk1|,p)
      2. Sostituire i bit di ingresso con nel circuito , σC
      3. Sostituisci con in . ψCφ
    • Se , Q=""

      1. Considera come , ψ¬xk¬σ
      2. Calcola , C=Cook(A,|¬σ|,|x1|+...+|xk1|,p)
      3. Sostituire i bit di ingresso con nel circuito , ¬σC
      4. Sostituisci con in .ψ¬Cφ
  • Calcola e ritorna CV(φ) .

L'algoritmo risultante sembra tempo polinomiale: abbiamo molti passaggi polinomiali, ogni passo è calcolabile nel tempo polinomiale. Tuttavia, ciò non è corretto, l'algoritmo non è il tempo polinomiale.

L'uso delle subroutine di tempo polinomiale in un algoritmo di tempo polinomiale è tempo polinomiale. Il problema è che in generale questo non deve essere vero se i valori restituiti dalle subroutine non hanno dimensioni polinomiali nell'input originale e supponiamo che eseguiamo assegnazioni sui valori restituiti dalle subroutine. (Nel modello TM dobbiamo leggere l'uscita di ogni bit tempo subroutine polinomiale per bit.) Qui la dimensione del valore restituito da algoritmo Cook sta aumentando (può essere una potenza della dimensione della sollecitazione che gli , la potenza esatta dipende dal tempo di esecuzione di A ed è intorno a p2(|input|), quindi poiché sappiamo che A non può essere inferiore al tempo lineare, |output|è almeno |input|2 ).

Il problema è simile al semplice codice seguente:

  • Dato x ,
  • Sia n=|x|,
  • Lascia y=x ,
  • Per i da 1 a n fare
    • Lascia y=y|y|, (ovvero concatenazione di |y| copie di y )
  • Ritorna y

Ogni volta che eseguiamo y=y|y|quadriamo la dimensione di y . Dopo n esecuzioni avremo una y che è x2n e ha dimensione n2n , ovviamente non un polinomio nella dimensione dell'input.

Supponiamo che prendiamo in considerazione solo le formule quantificate con alternanze di quantificatori k(n) (dove n è la dimensione totale della formula quantificata).

Supporre che A viene eseguita in tempo p (es lineare di tempo che non è esclusa finora), e hanno forse un più efficiente Cook algoritmo uscita un piccolo circuito di dimensioni l(t) al posto del t2 , otteniamo un algoritmo per ExtCircuitSat che viene eseguito nel tempo (lp)O(k)(n)=l(p(l(p((l(p(n)))))))O(k) compositions . Anche nel caso in cui sialepè lineare (ma con coefficiente totalea2) si otterrebbe un algoritmo che esegue in un tempoΩ(n2k(n))e sek(n)=Θ(n)it sarebbeΩ(n2n) simile all'algoritmo a forza bruta (e anche questo si basava sull'ipotesi che Cook-Levin potesse essere eseguito su algoritmi risultanti circuiti di dimensione lineare nel tempo di esecuzione dell'algoritmo).


Mi piace molto questa risposta !!
Tayfun Pay

@kaveh Cosa succede se mentre l ( t ) = O ( t ) allora abbiamo bisogno almeno del doppio tempo esponenziale per N P N P N P ? Il tuo argomento sembra suggerire questa possibilità mentre sappiamo che P S P A C E è in E X P e quindi come recuperare il singolo esponenziale? p(n)=2Ω(n)l(t)=O(t)NPNPNPPSPACEEXP
T ....

3

Penso che ciò sia dovuto al fatto che ad ogni livello del PH, il numero di alternanze è una costante (cioè indipendente dalla dimensione dell'input), mentre in AP il numero di alternanze può essere illimitato (eppure polinomiale nella dimensione dell'input).

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.