Complessità del circuito OR di un operatore lineare denso


14

Considera il seguente modello di circuito monotono semplice: ogni gate è solo un OR binario. Qual è la complessità di una funzione f ( x ) = A xf(x)=Ax dove AA è una matrice booleana n × nn×n con O ( n )O(n) 0? Può essere calcolato con circuiti OR di dimensioni lineari?

Più formalmente, ff è una funzione da nn a nn bit. L' ii - esima uscita di ff è n j = 1 ( A i jx j )nj=1(Aijxj) (ovvero un OR del sottoinsieme di bit di input dato dalla ii -esima riga di AA ).

Si noti che O ( n )O(n) 0 divide le righe di AA in intervalli di O ( n )O(n) (sottoinsiemi costituiti da elementi consecutivi di [ n ][n] ). Ciò consente di utilizzare strutture di dati di query di intervallo note. Ad esempio, una struttura di dati di tabella sparsa può essere trasformata in un circuito OR di dimensioni O ( n log n )O(nlogn) . L'algoritmo di Yao per le query dell'operatore del semigruppo di intervallo può essere trasformato in un circuito quasi lineare (di dimensione O ( α ( n ) n )O(α(n)n) doveα ( n )α(n) è Ackermann inverso)

In particolare, non so nemmeno come costruire un circuito di dimensioni lineari per un caso speciale in cui ogni riga di AA contiene esattamente due zeri. Mentre il caso di esattamente uno zero in ogni riga è facile. (Ogni funzione di uscita può essere calcolata da un OR di un prefisso [ 1 .. k - 1 ][1..k1] e un suffisso [ k + 1 .. n ][k+1..n] , che può essere precompilato da 2 n2n porte OR.)


3
È noto un limite superiore: è al massimo rk (A) volte n diviso per il log n, dove rk (A) è il rango OR di una matrice booleana A (= numero minimo di tutte le sottomaterie all-1 il cui OR coincide con A ). Vedi Lemma 2.5 in questo libro . Quindi, quanto può essere grande (al massimo) il rango booleano di una matrice nxn con zeri O (n)?
Stasys,

@Stasys Grazie, Stasys! Già per la matrice con diagonale zero il grado OR è lineare, giusto?
Alexander S. Kulikov il

2
Il grado OR della tua matrice (zero diagonale e 1s altrove) è al massimo 2 \ log n: etichetta righe / colonne per stringhe binarie di lunghezza \ log n e considera i rettangoli {(r, c): r (i) = a, c (i) = 1-a} per a = 0,1. Si noti inoltre che Lemma 2.5 è un limite superiore . Un limite inferiore in termini di grado OR è dato in Thm. 3.20. Inoltre, il registro del grado OR è esattamente la complessità di comunicazione non deterministica delle matrici.
Stasys,

@Stasys oh, sì, giusto!
Alexander S. Kulikov,

Risposte:


7

Questa è una risposta parziale (affermativa) nel caso in cui abbiamo un limite superiore sul numero di zeri in ogni riga o in ogni colonna.

Un rettangolo è una matrice booleana composta da una matrice secondaria all-1 e con zeri altrove. Un OR-rank r k ( A ) di una matrice booleana è il numero più piccolo r di rettangoli in modo tale che A possa essere scritto come OR (per componente) di questi rettangoli. Cioè, ogni 1 voce di A è 1 voce in almeno uno dei rettangoli e ogni 0 voci di A è 0 voci in tutti i rettangoli. Si noti che log r k ( A ) è esattamente la complessità di comunicazione non deterministica della matrice Ark(A)rAAAlogrk(A)A(dove Alice ottiene le righe e le colonne di Bob). Come ha scritto OP, ogni matrice booleana m × n A = ( a i , j ) definisce una mappatura y = A x , dove y i = n j = 1 a i , j x j per i = 1 , , m . Cioè, prendiamo un prodotto a matrice vettoriale rispetto al seme booleano. m×nA=(ai,j)y=Axyi=nj=1ai,jxji=1,,m

Il seguente lemma è dovuto a Pudlák e Rödl; vedere la proposizione 10.1 in questo documento o Lemma 2.5 in questo libro per una costruzione diretta.

Lemma 1: per ogni matrice booleana n × n A , la mappatura y = A x può essere calcolata da un circuito OR illimitato di fanin di profondità-3 utilizzando al massimo cavi O ( r k ( A ) n / log n ) . n×nAy=AxO(rk(A)n/logn)

Abbiamo anche il seguente limite superiore sul rango OR delle matrici dense. L'argomento è una semplice variante di quella usata da Alon in questo documento .

Lemma 2: Se ogni colonna o ogni riga di una matrice booleana A contiene al massimo d zeri, allora r k ( A ) = O ( d ln | A | ) , dove | A | è il numero di 1 s in A . Adrk(A)=O(dln|A|)|A|1A

Dimostrazione: Costruire un casuale all 1 sottomatrice R scegliendo ogni riga indipendentemente con la stessa probabilità p = 1 / ( D + 1 ) . Lasciate che io sarò il sottoinsieme casuale ottenuto di righe. Poi lasciate R = I × J , dove J è l'insieme di tutte le colonne di A che non hanno zeri nelle righe a I . 1Rp=1/(d+1)IR=I×JJAI

A 1 -entry ( i , j ) di A è coperto da R se mi è stato scelto I e nessuno di (al massimo d ) righe con un 0 nella j colonna esimo stato scelto in I . Quindi, la voce ( i , j ) è coperta con probabilità almeno p ( 1 - p ) dp e - p d - p 2 d1(i,j)ARiId0jI(i,j)p / e . Se applichiamo questa procedura r volte per ottenere r rettangoli, la probabilità che ( i , j ) sia coperta da nessuno di questi rettangoli non supera ( 1 - p / e ) re - r p / e . Secondo il limite del sindacato, la probabilità che qualche 1 -entry of A rimanga scoperta è al massimo | A | e - r p / ep(1p)dpepdp2dp/err(i,j)(1p/e)rerp/e1A|A|erp/e, che è inferiore a 1 per r = O ( d ln | A | ) . 1r=O(dln|A|)

Corollario: se ogni colonna o ogni riga di una matrice booleana A contiene al massimo d zeri, la mappatura y = A x può essere calcolata da un circuito OR illimitato di fanin di profondità 3 utilizzando fili O ( d n ) . Ady=AxO(dn)

Immagino che un limite superiore simile a quello di Lemma 2 dovrebbe valere anche quando d è il numero medio di 1 s in una colonna (o in una riga). Sarebbe interessante mostrarlo.d1


Osservazione: (aggiunto il 04.01.2018) Un analogo r k ( A ) = O ( d 2 log n ) di Lemma 2 vale anche quando d è il numero medio massimo di zeri in una sottostruttura di A , dove il numero medio di zeri in una matrice r × s è il numero totale di zeri diviso per s + r . Ciò segue dal Teorema 2 in N. Eaton e V. Rödl ;, Grafici di piccola dimensione, Combinatorica 16 (1) (1996) 59-85 . Un limite superiore leggermente peggiorerk(A)=O(d2logn)dAr×ss+rr k ( A ) = O ( d 2 ln 2 n ) può essere derivato direttamente da Lemma 2 come segue.rk(A)=O(d2ln2n)

Lemma 3: Let d 1 . Se ogni sottografo spanning di un grafico bipartito G ha un grado medio d , allora G può essere scritto come unione G = G 1G 2 , dove il grado massimo sinistro di G 1 e il grado massimo destro di G 2 sono d . d1GdGG=G1G2G1G2d

Prova: induzione sul numero n di vertici. I casi base n = 1 e n = 2 sono ovvi. Per la fase di induzione, coloreremo i bordi in blu e rosso in modo che il grado massimo nei sottografi blu e rosso sia d . Prendi un vertice u di grado d ; tale vertice deve esistere perché anche il grado medio dell'intero grafico deve essere d . Se fai parte della parte sinistra, allora colora tutti i bordi che ti ricadono in blu, altrimenti colora tutti questi bordi in rosso. Se rimuoviamo il vertice unn=1n=2dudduuuallora anche il grado medio del grafico risultante G è al massimo d , e possiamo ipotizzare i bordi di questo grafico dall'ipotesi di induzione. Gd

Lemma 4: Let d 1 . Se il numero medio massimo di zeri in una matrice booleana n × n A = ( a i , j ) è al massimo d , allora r k ( A ) = O ( d 2 ln 2 n ) . d1n×nA=(ai,j)drk(A)=O(d2ln2n)

Prova: considera il grafico n × n bipartito G con ( i , j ) come un bordo iff a i , j = 0 . Quindi il massimo grado medio di G è al massimo d . Con Lemma 3, possiamo scrivere G = G 1G 2 , dove il massimo grado dei vertici sulla parte sinistra di G 1 e il massimo grado dei vertici sulla parte destra di G 2 è d . Permetteren×nG(i,j)ai,j=0GdG=G1G2G1A1 and A2 be the complements of the adjacency matrices of G1 and G2. Hence, A=A1A2 is a componentwise AND of these matrices. The maximum number of zeros in every row of A1 and in every column of A2 is at most d. Since rk(A)rk(A1)rk(A2), Lemma 2 yields rk(A)=O(d2ln2n).

N.B. The following simple example (pointed by Igor Sergeev) shows that my "guess" at the end of the answer was totally wrong: if we take d=d(A) to be the average number of zeros in the entire matrix A (not the maximum of averages over all submatrices), then Lemma 2 can badly fail. Let m=n, and put an identity m×m matrix in, say left upper corner of A, and fill the remaining entries by ones. Then d(A)m2/2n<1 but rk(A)m, which is exponentially larger than ln|A|. Note, however, that the OR complexity of this matrix is very small, is O(n). So, direct arguments (not via rank) can yield much better upper bounds on the OR complexity of dense matrices.


Thanks a lot, Stasys! This is nice! In the meantime, Ivan Mihajlin came with another proof. I've posted it below.
Alexander S. Kulikov

2

(I tried to post this as a comment to Stasys' answer above, but this text is too long for a comment, so posting it as an answer.) Ivan Mihajlin (@ivmihajlin) came up with the following construction. Similarly to Stasys' proof, it works for the case when the maximum (rather than average) number of 0’s in each row is bounded.

First, consider the case when every row contains exactly two zeros. Consider the following undirected graph: the set of vertices is [n]; two nodes i and j are joined by an edge, if there is a row having zeros in columns i and j. The graph has n edges and hence it contains a cut (L,R) of size at least n/2. This cut splits the columns of the matrix into two parts (L and R). Let now also split the rows into two parts: the top part T contains all columns that have exactly one zero in both L and R; the bottom part B contains all the remaining rows. What is nice about the top part of the matrix (T×(LR)) is that it can be computed by O(n) gates. For the bottom part, let’s cut all-1 columns out of it and make a recursive call. The corresponding recurrence relation is C(n)an+C(n/2) implying C(n)=O(n).

Now, generalize it to the case of at most d zeros in every row. Let Cd(n) be the complexity of an n×(dn) matrix with at most d zeros per row (if there are more than dn columns, then some of them are all-1). Partition the columns into two parts L and R such that at least n(12d) rows (call them T) satisfy the following property: if there are exactly d zeroes in a row, then not all of them belong to the same part (denote the remaining rows by B). Then make three recursive calls: T×L, T×R, and B×(LR). This gives a recurrence relation Cd(n)an+2Cd1(n(12d))+Cd(2dn). This, in turn, implies that Cd(n)f(d)n. The function f(d) is exponential, but still.


A nice argument. But it seems to be tailor made for the case of d=2 zeros per row. What about d>2 zeros?
Stasys

@Stasys, it is doable if I'm not mistaken. I've updated the answer.
Alexander S. Kulikov
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.