Charaterization della complessità del circuito per DLogTime e NLogTime


13

DLogTime eNLogTime sono due delle classi di complessità più piccole che abbiamo. (Notare che la gerarchia temporale logaritmicaLH è uguale aAC0 e questi sono i primi due livelli diLH ).

Dopo aver letto questa domanda , divento interessato a vedere se la separazione tra queste due classi è nota, e infatti è facile separarli dal OR(x1,...,xn)NLogTimeDLogTime (grazie a Robin Kothari. Vedi anche noto). Ora sono interessato a conoscere la loro corrispondente caratterizzazione della complessità del circuito. Ho cercato un po 'e ho chiesto ad alcune persone ma non sono riuscito a trovare la risposta.

Abbiamo simpatiche caratterizzazioni della complessità del circuito per le classi di complessità e N L o g T i m e ?DLogTimeNLogTime

Nota: presenta molto nel definire l'uniformità per le classi di piccola complessità. Si noti che il piccolo limite di tempo non consente a queste macchine di leggere l'intero input, possono solo leggere lg n bit dall'input e le classi sono definite usando macchine che possono scrivere l'indirizzo di un bit e quindi leggere direttamente quel bit ( cioè non è necessario andare oltre tutti i bit precedenti per raggiungerlo).DLogTimelgn


3
È facile separare le due classi. NLOGTIME può calcolare la funzione OR, mentre DLOGTIME non può, poiché non è in grado di leggere l'intero input. Questo fatto può essere usato per costruire un linguaggio che separa i due usando trucchi standard.
Robin Kothari il

1
@Robin: come sempre grazie mille :). Mi è mancato
Kaveh,

. Le classi sono probabilmente qualcosa attorno alla clausola / termine / CNF / DNF della dimensione polinomiale. AltTime(O(1),O(logn))=AC0
Kaveh,

Hai finalmente trovato una risposta a questa domanda? Una caratterizzazione dei circuiti per DLOGTIME avrebbe due parti, il tipo di circuiti ammessi e la condizione di uniformità imposta loro. Conosci la risposta a una di queste?
Robin Kothari,

@Robin, no, non conosco la risposta, ma sospetto che probabilmente non corrispondano a belle classi di complessità del circuito.
Kaveh,

Risposte:


-11

Penso che sia molto più interessante che le classi di complessità del circuito utilizzate dalla teoria della complessità CS facciano previsioni diverse e utilizzino metriche diverse rispetto a quelle della comunità VLSI. Da La complessità VLSI delle funzioni booleane :

È noto che tutte le funzioni booleane di variabili possono essere calcolate da un circuito logico con porte O ( 2 n / n ) (teorema di Lupanov) e che esistono funzioni booleane di n variabili che richiedono circuiti logici di queste dimensioni (Shannon's teorema). Presentiamo i risultati corrispondenti per le funzioni booleane calcolate dai circuiti VLSI, utilizzando il modello Thompson di un chip VLSI. Dimostriamo che tutte le funzioni booleane di n variabili possono essere calcolate da un circuito VLSI di O ( 2 n ) area e periodo 1, e dimostriamo che esistono funzioni booleane di nnO(2n/n)nO(2n)nvariabili per le quali ogni chip VLSI (convesso) deve avere un'area .Ω(2n)

È interessante notare che la complessità del circuito VLSI ha la tendenza a considerare la profondità "irrilevante" in quanto esiste un'unica e sola "profondità" che conta: il percorso critico. Per la maggior parte degli scopi pratici, un circuito arbitrariamente complesso può essere trattato come con una latenza di n .O(1)n

In realtà, non sono nemmeno sicuro che il concetto di / N L o g T i m e si traduca direttamente nella complessità del circuito VLSI. Anche il risultato di Shannons 2 n / n non si traduce facilmente: i risultati di Shannons sono validi solo per una base booleana composta da arity 2 {AND, OR, NOT}. Questa non è l'unica base, e il numero di "cancelli" necessari diminuisce drasticamente quando si autorizzano sempre più tipi di gate. Di seguito sono una r all'e un 2DLogTimeNLogTime2n/n2area2 da una libreria di celle standard VLSI commerciale normalizzata alle dimensioni di una porta NAND a 2 ingressi:

        2 3 4 <- Arity
e 1,14 1,28 1,41
nand 1.00 1.14 1.28
o 1,14 1,41 1,41
né 1,00 1,14 1,41
xor 1.62 2.44
xnor 1.62 2.44

buf 1.14
inv 0.80

aoi22 1.28
aoi222 1.62
aoi33 1.62
oai22 1.41
oai222 1.72
oai33 1.62

addf 2.64

In particolare, notare le aoi/ oaiporte che sono And Or Invert/ Or And Invertcostituite da una prima funzione di dimensioni arity che alimentano la seconda funzione, dove il numero di prime porte di funzione è uguale al numero di volte che appare arity . Ad esempio, aoi22rappresenta "Due 2 porte AND di ingresso che alimentano una porta NOR".

Il mio punto è: presa separatamente, una oai222funzione può essere costruita usando tre porte OR a 2 ingressi e una porta NAND a 3 ingressi, per un'area totale di ~ 4,56, esclusa qualsiasi area utilizzata per l'interconnessione. Tuttavia questa primitiva può essere realizzata in un'area di appena 1,72, il che significa che una manifestazione discreta della stessa funzione booleana consuma 2,65 volte più area.

Si noti inoltre che l'area per un input {AND, NAND, OR, NOR, XOR, XNOR} gate, dove n 2 , è molto inferiore all'area che sarebbe necessaria per costruire la stessa funzione utilizzando 2 input gate discreti. Si noti inoltre che mentre l'area indicata per {XOR, XNOR} per questo processo è "grande" rispetto alle altre porte, ci sono altri modi per costruire le stesse n porte di input usando meno area.nn2n

Anche le proprietà di propagazione per le primitive più complesse sono significativamente migliori di quelle che si otterrebbero usando cancelli discreti.

PNP

PNPNPf:{0,1}n{0,1}f2n/nNP.

f:{0,1}n{0,1}NP{0,1}n2n/nnnNPNP2n/n

Sulla complessità delle implementazioni VLSI e delle rappresentazioni grafiche delle funzioni booleane con la moltiplicazione da applicazione a numero intero mostra che la previsione della complessità del circuito utilizzando un modello OBDD sopravvaluta la complessità effettiva del circuito:

AT2=Ω(n2)Ω(cn)c<1AT2=O(n1+c)

n2n1i12ni11inAT2=Ω(i2)Ω(1.09i)


5
-1: Non vedo quanto questo sia rilevante per la domanda del PO.
Robin Kothari il

5
La tua parte nel mezzo di Shannon e Cook non sembra avere alcun senso. Shannon ha dimostrato che "la maggior parte" delle funzioni richiede un circuito esponenzialmente ampio. Come possiamo concludere che qualsiasi problema NP richiede solo una famiglia di dimensioni lineari? E ti rendi conto che stiamo parlando di famiglie di circuiti, giusto?
Mark Reitblatt il

6
johne: questo non è un forum appropriato per quelli che possono essere descritti solo come inversioni sulla comunità VLSI di fronte alla comunità CS.
Suresh Venkat,
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.