Quanto può essere piccolo un circuito booleano a strati per una funzione con complessità del circuito


12

Considera una funzione calcolata da un circuito booleano C con n ingressi di dimensione s ( n ) = p o l y ( n ) sulla base { X O R , A N D , N O T } (con indegree 2 per la X O R , A N D cancelli).fCns(n)=poly(n){XOR,AND,NOT}XOR,AND

Un circuito booleano è stratificato se può essere disposto in strati ( d essendo la profondità del circuito) di porte in modo tale che qualsiasi bordo tra due porte collega gli strati adiacenti.dd

Dato che ha un circuito booleano di dimensione s , cosa possiamo dire della dimensione di un circuito a strati che calcola f ? C'è un limite superiore banale: aggiungendo nodi fittizi a C su ogni strato attraversato da un bordo, otteniamo un circuito a strati di dimensioni al massimo O ( s 2 ) . Ma possiamo migliorare in generale (ad es. O ( s log s ) o O ( s ) ) o per una classe di circuiti interessante?fsfCO(s2)O(slogs)O(s)

Sfondo. Questa domanda deriva da recenti risultati nella crittografia che mostrano come calcolare saldamente strato circuito booleano di dimensione con comunicazione o ( s ) (es s / log s o s / log log s ) ; Sto cercando di capire quanto possa essere concreta questa limitazione ai circuiti booleani a strati, sia per i circuiti generali che per i circuiti "naturali". Tuttavia, non ho trovato molto sui circuiti a strati in letteratura; sarebbero anche ben accetti i suggerimenti appropriati.so(s)s/logss/loglogs)


4
Ecco un esempio di un circuito che sembra difficile da convertire in un circuito a strati senza un significativo ingrandimento delle dimensioni. Definisci per essere una funzione che può essere calcolata nella dimensione u . Definisci g ( x 1 , , x n ) = ( x 2 , , x n , x 1f ( x 2 ,f:{0,1}n1{0,1}u , e lascia che C sia t iterazioni di g . Quindi C ha dimensione O ( t u ) . Sembra difficile costruire un circuito a strati con dimensioni inferiori a Θ ( n t ) . Quindi, se u = o ( n ) , forse dovremmo aspettarci un divario tra la dimensione di un circuito contro la dimensione di un circuito a strati. Non una prova, solo un esempio suggestivo per guidare forse l'intuizione. g(x1,,xn)=(x2,,xn,x1f(x2,,xn))CtgCO(tu)Θ(nt)u=o(n)
DW

2
Per quanto ricordo, per i circuiti a strati il ​​limite inferiore più noto è della forma . È particolarmente facile dimostrare un n -a-- n funzione. Prendi, ad esempio, una mappa lineare A x dove A { 0 , 1 } n × n ha zeri solo sulla diagonale principale. Quindi deve avere almeno n gate su ogni layer e il numero di layer è almeno log 2 n . Si noti che questa funzione può essere facilmente calcolata da un circuito normale di dimensione O (Ω(nlogn)nnAxA{0,1}n×nnlog2n . Per le funzioni a uscita singola, è anche possibile dimostrare lo stesso limite inferiore, ma non ricordo l'argomento. O(n)
Alexander S. Kulikov,

1
Grazie mille per i commenti. @ AlexanderS.Kulikov, il tuo argomento è folklore o hai qualche puntatore a lavori su circuiti a strati? L' ha senso - sarei stato molto sorpreso da qualcosa di più piccolo - ma O ( n 2 ) è l'unico limite superiore noto? Ω(nlogn)O(n2)
Geoffroy Couteau,

1
Immagino sia un folklore, sì. Non sono sicuro di avere la domanda su limite superiore. Potresti dare un'occhiata al seguente documento: cs.utexas.edu/~panni/sizedepth.pdfO(n2)
Alexander S. Kulikov,

1
Penso che non conosciamo una trasformazione migliore di in generale. Si noti che un circuito di dimensioni s e profondità d può essere trasformato in un circuito a strati di dimensioni al massimo d s . (Che nel peggiore dei casi ci dà un circuito di dimensione O ( s 2 ) .) Volevo solo sottolineare che se potessimo dimostrare un limite inferiore di ω ( n log n ) sulla dimensione di un circuito a strati, questo sarebbe darci un limite inferiore superlineare sulla dimensione dei circuiti di profondità di registro per questa funzione. Questa domanda rimane aperta per oltre 40 anni.O(s2)sddsO(s2)ω(nlogn)
Alex Golovnev,

Risposte:


8

Per quanto ne so, sono state studiate tre classi di circuiti a strati. In tutte queste definizioni gli archi sono consentiti solo tra due strati adiacenti.

  1. Un circuito è chiamato sincrono ( Harper 1977 ) se tutte le porte sono disposte in strati e gli ingressi devono essere a livello 0. (Una definizione equivalente: per qualsiasi gate g , tutti i percorsi dagli ingressi a g hanno la stessa lunghezza.)

  2. Un circuito è localmente sincrono ( Belaga 1984 ) se ogni input si verifica esattamente una volta ma a un livello arbitrario.

  3. Un circuito è stratificato ( Gál, Jang 2010 ) se porte e ingressi sono disposti in strati, gli ingressi possono avvenire più volte in strati diversi. (Una definizione equivalente: per qualsiasi gate g uscita gate o , tutti i percorsi diretti da g a o hanno la stessa lunghezza.)

È facile vedere che le tre classi sono elencate dal più debole al più forte (e la classe dei circuiti senza restrizioni è ancora più forte).

Per quanto riguarda la dimensione di un circuito a strati che calcola un circuito senza restrizioni di dimensione s , sappiamo quanto segue:

  1. ss2

  2. ω(slogs)sdO(sd)fω(nlogn)fO(logn)O(n)

  3. Esistono funzioni esplicite

    Ω(nlogn)O(n)

    Ω(nlogn)O(n)

n

f:{0,1}n{0,1}niiO(n)lognnnfΩ(nlogn)n1Ω(logn)nn

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.