Formule booleane quantificate con alternanze logaritmiche


15

Sto studiando un problema difficile per la classe di formule booleane quantificate con un numero logaritmico di alternanze dei quantificatori. Un problema in questa classe sarebbe simile a:

(x1,x2,xa1)(xa1+1,xa2),(xalogn1,xalogn)F

Dove e è una formula booleana delle variabili .alogn=nx 1x nFx1xn

Questa classe contiene chiaramente ed è contenuta in . C'è un nome per questa classe? C'è qualcosa di più noto al riguardo?A P = P S P A C EPHAP=PSPACE


3
Bene, è completo per alternare il tempo polinomiale con logaritmicamente molte alternanze.
Emil Jeřábek sostiene Monica il

2
Una notazione concordata per la classe di complessità di questo problema sarebbe STA ( ). Qui, STA (s (n), t (n), a (n)) è la misura spazio-tempo-alternanza introdotta da Berman in "La complessità delle teorie logiche" che apparve in TCS nel 1980. Questa classe contiene tutte le decisioni problema decidibile da una macchina di Turing alternata nel tempo t (n) usando lo spazio s (n) e alternando al massimo a (n) volte su ogni ramo di calcolo. Come ha sottolineato Emil, il tuo problema dovrebbe essere completo per questa classe. ,nO(1),O(logn)
Christoph Haase,

2
AltTime (lg n, poly (n))
Kaveh,

Non è anche l'analogo binario della classe FOLL introdotto da Barrington, Kadau, McKenzie e Lange. FOLL è definito ripetendo un blocco FO fondamentalmente un log di circuito AC0 n-input, n-output n volte. È troppo debole per calcolare la parità ma non è noto per essere contenuto in una classe inferiore a AC ^ 1. Può fare una serie di cose non banali, incluso il potere in un gruppo commutativo presentato come una tabella di moltiplicazione. Vorrei chiamare la classe in questione PHL perché corrisponde a un registro PH ripetuto n volte. Penso che non sia ancora chiaro se è paragonabile a PSPACE.
SamiD,

Anche se un gruppo abeliano è dato da un circuito che prende in ingresso due numeri n-bit ed emette un numero n-bit, l'alimentazione è in PHL da una prova simile a Barrington et al.
SamiD,

Risposte:


7

Sulla base della risposta di Michael Wehar, sembra che si possa facilmente dimostrare che i possono essere codificati in QBF polisize: si usano alternanze , ognuna di bit e fa un argomento simile al teorema di Savitch. Ogni due alternanze divideranno il tempo di esecuzione del calcolo per un fattore .O ( log n ) p o l y ( n ) p o l y ( n )NTISP(nlogn,poly(n))O(logn)poly(n)poly(n)

Chiamerei la classe , in seguito alla notazione in "Time-Space Tradeoffs for Satisfiability" di Fortnow, che potrebbe anche essere citata per l'argomento del paragrafo precedente (ma si prega di consultare il documento per riferimenti precedenti).ΣO(logn)P


Grazie mille per il commento e la risposta di follow-up. Ho modificato la mia risposta e aggiunto dettagli sulla generalizzazione dell'argomento. In realtà c'è un compromesso di tempo, spazio e alternanza per i tipi di calcoli che possono essere codificati.
Michael Wehar,

Grazie per il riferimento aggiunto! Inoltre, ho aggiunto una risposta più concisa per chiarire, si spera. Grazie ancora. :)
Michael Wehar,

7

(1) Quello che già sappiamo:

Come hai già detto, QBF con alternanze di quantificatori è difficile per ogni livello della gerarchia polinomiale.log(n)

(2) Penso che possiamo anche provare quanto segue:

Il problema è -hard.NSPACE(log2(n))

(3) Ecco la mia giustificazione informale per l'affermazione precedente:

Dato un spazio vincolato NTM e una stringa di input, dobbiamo determinare se esiste un calcolo accettando sulla proposta stringa di input.log2(n)

Ogni configurazione nel calcolo può essere rappresentata essenzialmente dai bit. In altre parole, possiamo rappresentare una configurazione da un gruppo di variabili log 2 ( n ) .log2(n)log2(n)

L'idea è che abbiamo una configurazione iniziale e una configurazione finale e dobbiamo indovinare il calcolo che avviene nel mezzo. Indoviniamo ricorsivamente le configurazioni "intermedie" usando i quantificatori esistenti e ricerchiamo verificando che la configurazione "sinistra" vada al "medio" e la configurazione "centrale" vada al "giusto" usando per tutti i quantificatori.

Ora per far funzionare tutto questo, invece di scegliere una configurazione "centrale", dobbiamo scegliere un gruppo di configurazioni "intermedie" equidistanti tra le configurazioni "sinistra" e "destra". In particolare, potremmo indovinare configurazioni "intermedie" equidistanti usando esistono quantificatori connvariabili e quindi ricorrere su ogni gap tra le configurazioni usando per tutti i quantificatori con circalog(n)variabili.nlog2(n)log(n)

La ricorsione deve solo continuare fino alla profondità per poter coprire un calcolo della lunghezza 2log(n)dove ogni configurazione ha al massimolog2(n)molti bit.n2log(n)=nlog(n)=2log2(n)log2(n)

Poiché la ricorsione è di profondità , abbiamo solo gruppi di variabili O ( log ( n ) ) , ovvero alternanze. Poiché ogni gruppo di quantificatori ha solo O(log(n))O(log(n))variabili, in totale abbiamoO(nlog2(n)variabili.O(nlog3(n))

Sentiti libero di offrire feedback o correzioni. Grazie mille e spero che questo ti aiuti un po '.

(4) Un'asserzione più generale come suggerito dalla risposta di Ryan:

Dovresti essere in grado di eseguire la costruzione precedente in un modo più generale. Considera quanto segue:

Ad ogni passo della ricorsione, suddividere in gruppi di configurazioni "intermedie" usando i bit c ( n ) per configurazione. Quindi, eseguire la ricorsione alla profondità d ( n ) .g(n)c(n)d(n)

Finché non abbiamo troppe variabili e troppe alternanze, questo sembra funzionare bene. All'incirca, abbiamo bisogno di quanto segue per essere soddisfatti:

  • g(n)c(n)d(n)n
  • d(n)log(n)

Il nostro approccio generalizzato verrà utilizzato per simulare macchine di Turing non deterministiche che eseguono passi usando bit di memoria c ( n ) .g(n)d(n)c(n)

In particolare, scegliamo quanto segue:

  • g(n)=n

  • c(n)=n2log2n

  • d(n)=2log2(n)

Le precedenti disuguaglianze sono soddisfatte e possiamo eseguire la costruzione per simulare macchine di Turing non deterministiche che eseguono per circa passaggi usando 2log2(n) bit di memoria.n2log2n

In altre parole, abbiamo un risultato di durezza migliore rispetto a prima. In particolare, il problema è difficile per .NTISP(2log2(n),n2log2n)

(5) Altre generalizzazioni:

Nella precedente generalizzazione, simulavamo macchine di Turing non limitate nel tempo e nello spazio. Tuttavia, potremmo essere in grado di simulare anche macchine di Turing alternate nel tempo e nello spazio.

Lasciami spiegare un po '. Quindi usiamo approssimativamente le alternanze per fare la ricorsione in profondità log ( n ) . Tuttavia, potremmo usare inizialmente alcune delle alternative, diciamo log(n)log(n) . Quindi, potremmo usare il rimanentelog(n) alternanze per andare in profonditàlog(n) .log(n)

In questo caso, potremmo simulare macchine di Turing alternate che hanno alternanze con lunghezze dei testimoni sublineari, corsa per2 log 3log(n)passaggi e utilizzare2log32(n) bit di memoria.n2log2n

In altre parole, il problema è difficile per con lunghezze del testimone sublineari. In alternativa, questa classe potrebbe essere scritta usando lanotazioneSTAmenzionata nei commenti sopra.AltTimeSpace(log(n),2log32(n),n2log2n)STA

Grazie per i commenti e sentiti libero di offrire ulteriori correzioni o chiarimenti. :)


1
La durezza non seguirebbe immediatamente la durezza PH? NL2
Nikhil,

1
Come conosciamo esattamente il punto (1)? Non abbiamo bisogno di variabili per arrivare a qualche livello k di PH? Forse mi manca un semplice punto qui. 2kk
Markus,

1
@MichaelWehar Certo, ma sappiamo che giusto? Ciò significa che ogni problema in N L 2 si riduce a QBF con costantemente molte alternanze, che è un caso speciale di molte alternanze log? NL2PHNL2
Nikhil,

1
@MichaelWehar Oops. Certo che hai ragione! Una domanda correlata qui: cstheory.stackexchange.com/questions/14159/…
Nikhil

2
Perché non -hard? NTISP(nlogn,poly(n))
Ryan Williams,

1

Una risposta più breve

Osservazioni iniziali:

  • Il problema è difficile per ogni livello della gerarchia polinomiale.
  • Il problema è difficile per l'alternanza di macchine di Turing con alternanze che funzionano per un tempo polinomiale.log(n)

Approfondimenti:

  • Suggerita dal commento di Kaveh sopra, il problema può codificare i calcoli per Macchine di Turing.AltTime(log(n),n)
  • Inoltre, come ha sottolineato Ryan, il problema può codificare i calcoli per Macchine di Turing.NTimeSpace(2log2(n),n)
  • Più in generale, il problema può codificare calcoli per macchine corrispondenti a varie classi del modulo con lunghezze dei testimoni limitate. Non sono sicuro di quale sia la relazione esatta tra a ( n ) , t ( n ) e s ( n )AltTimeSpace(a(n),t(n),s(n))a(n)t(n)s(n) deve essere, ma sappiamo che:

    1. a(n)log(n)

    2. t(n)2log2(n)

    3. s(n)n

a(n)t(n)s(n)

npoly(n)a(n)t(n)s(n)


Inoltre, c'è un altro fattore che ho omesso. Cioè, la dimensione del testimone utilizzata con ogni alternanza occupa variabili. In altre parole, più grandi sono i testimoni, minori sono le variabili che abbiamo, il che significa che potenzialmente non possiamo rappresentare quanti bit per configurazione, il che ci fa richiedere che ci sia meno spazio per la macchina per la quale codifichiamo i calcoli.
Michael Wehar,

a(n)t(n)s(n)

Forse un quantificatore più interiore che esiste non ha bisogno di avere dimensioni limitate del testimone perché possiamo indovinare mentre andiamo.
Michael Wehar,
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.