Complejidad del circuito OR de un operador lineal denso

14

Considere el siguiente modelo de circuito monótono simple: cada puerta es solo un OR binario. ¿Cuál es la complejidad de una función f ( x ) = A xf(x)=Ax donde AA es una matriz booleana n × nn×n con O ( n )O(n) 0? ¿Se puede calcular mediante circuitos OR de tamaño lineal?

Más formalmente, ff es una función de nn a nn bits. La ii -ésima salida de ff es n j = 1 ( A i jx j )nj=1(Aijxj) (es decir, un OR del subconjunto de bits de entrada dado por la ii -ésima fila de AA ).

Tenga en cuenta que los O ( n )O(n) 0 dividen las filas de AA en rangos O ( n )O(n) (subconjuntos que consisten en elementos consecutivos de [ n ][n] ). Esto hace posible emplear estructuras de datos de consulta de rango conocidas. Por ejemplo, una estructura de datos de tabla dispersa se puede convertir en un circuito OR de tamaño O ( n log n )O(nlogn) . El algoritmo de Yao para consultas de operador de semigrupo de rango se puede convertir en un circuito casi lineal (de tamaño O ( α ( n ) n )O(α(n)n) dondeα ( n )α(n) es inverso Ackermann)

En particular, ni siquiera sé cómo construir un circuito de tamaño lineal para un caso especial donde cada fila de AA contiene exactamente dos ceros. Si bien el caso de exactamente un cero en cada fila es fácil. (Cada función de salida puede calcularse mediante un OR de un prefijo [ 1 .. k - 1 ][1..k1] y un sufijo [ k + 1 .. n ][k+1..n] , que puede calcularse previamente con 2 n2n compuertas OR).

Alexander S. Kulikov
fuente
3
Se conoce un límite superior: es como máximo rk (A) multiplicado por n dividido por log n, donde rk (A) es el rango OR de una matriz booleana A (= número mínimo de submatrices all-1 cuyo OR coincide con A ) Ver Lemma 2.5 en este libro . Entonces, ¿qué tan grande (como máximo) puede ser el rango booleano de una matriz nxn con O (n) ceros?
Stasys
@Stasys Gracias, Stasys! Ya para la matriz con diagonal cero, el rango OR es lineal, ¿verdad?
Alexander S. Kulikov
2
El rango OR de su matriz (diagonal cero y 1s en otro lugar) es como máximo 2 \ log n: etiquete las filas / columnas por cadenas binarias de longitud \ log n, y considere los rectángulos {(r, c): r (i) = a, c (i) = 1-a} para a = 0,1. Tenga en cuenta también que Lemma 2.5 es un límite superior . Un límite inferior en términos de rango OR se da en Thm. 3.20 Además, el registro del rango OR es exactamente la complejidad de comunicación no determinista de las matrices.
Stasys
@Stasys oh, sí, cierto!
Alexander S. Kulikov

Respuestas:

7

Esta es una respuesta parcial (afirmativa) en el caso cuando tenemos un límite superior en el número de ceros en cada fila o en cada columna.

Un rectángulo es una matriz booleana que consiste en una submatriz todo-1 y tiene ceros en otro lugar. Un rango OR r k ( A ) de una matriz booleana es el número más pequeño r de rectángulos, de modo que A se puede escribir como un OR (componente) de estos rectángulos. Es decir, cada entrada 1 de A es una entrada 1 en al menos uno de los rectángulos, y cada entrada 0 de A (donde Alice obtiene filas y columnas Bob). Como OP escribió, cada matriz booleana m × n A = ( a i , j ) define un mapeo yrk(A)rAAA es una entrada 0 en todos los rectángulos. Tenga en cuenta que log r k ( A ) es exactamente la complejidad de comunicación no determinista de la matriz Alogrk(A)Am×nA=(ai,j) = A x , donde y i = n j = 1 a i , j x j para i = 1 , ... , m . Es decir, tomamos un producto de matriz-vector sobre el semisele booleano. y=Axyi=nj=1ai,jxji=1,,m

El siguiente lema se debe a Pudlák y Rödl; vea la Proposición 10.1 en este documento o el Lema 2.5 en este libro para una construcción directa.

Lema 1: Para cada matriz booleana n × n A , el mapeo y = A x puede calcularse mediante un circuito OR de ventilador sin límites de profundidad-3 utilizando como máximo cables O ( r k ( A ) n / log n ) . n×nAy=AxO(rk(A)n/logn)

También tenemos el siguiente límite superior en el rango OR de matrices densas. El argumento es una variación simple de la utilizada por Alon en este artículo .

Lema 2: si cada columna o cada fila de una matriz booleana A contiene como máximo d ceros, entonces r k ( A ) = O ( d ln | A | ) , donde | A | es el número de 1 s en A . Adrk(A)=O(dln|A|)|A|1A

Prueba: Construya una submatriz R aleatoria de todo 1 seleccionando cada fila independientemente con la misma probabilidad p = 1 / ( d + 1 ) . Deje que yo sea ​​el subconjunto aleatorio de filas obtenido. A continuación, dejar que R = I × J , donde J es el conjunto de todas las columnas de A que no tienen ceros en las filas de I . 1Rp=1/(d+1)IR=I×JJAI

A 1 -entry ( i , j ) de A está cubierto por R si i fue elegido en I y ninguno de (como máximo d ) filas con un 0 en la j columna -ésimo fue elegido en I . Por lo tanto, la entrada ( i , j ) está cubierta con probabilidad al menos p ( 1 - p ) dp e - p d - p 2 d1(i,j)ARiId0jI(i,j)p / e . Si aplicamos este procedimiento r veces para obtener r rectángulos, entonces la probabilidad de que ( i , j ) no esté cubierta por ninguno de estos rectángulos no excede ( 1 - p / e ) re - r p / e . Por el límite de la unión, la probabilidad de que algunaentrada de 1 de A permanezca descubierta es como máximo | A | e - r p / ep(1p)dpepdp2dp/err(i,j)(1p/e)rerp/e1A|A|erp/e, que es menor que 1 para r = O ( d ln | A1|)r=O(dln|A|).

Corollary: If every column or every row of a boolean matrix AA contains at most dd zeros, then the mapping y=Axy=Ax can be computed by an unbounded fanin OR-circuit of depth-3 using O(dn)O(dn) wires.

I guess that a similar upper bound as in Lemma 2 should also hold when dd is the average number of 11s in a column (or in a row). It would be interesting to show this.


Remark: (added 04.01.2018) An analogue rk(A)=O(d2logn)rk(A)=O(d2logn) of Lemma 2 also holds when dd is the maximum average number of zeros in a submatrix of AA, where the average number of zeros in an r×sr×s matrix is the total number of zeros divided by s+rs+r. This follows from Theorem 2 in N. Eaton and V. Rödl;, Graphs of small dimension, Combinatorica 16(1) (1996) 59-85. A slightly worse upper bound rk(A)=O(d2ln2n)rk(A)=O(d2ln2n) can be derived directly from Lemma 2 as follows.

Lemma 3: Let d1d1. If every spanning subgraph of a bipartite graph GG has average degree dd, then GG can be written as a union G=G1G2G=G1G2, where the maximum left degree of G1G1 and the maximum right degree of G2G2 are dd.

Proof: Induction on the number n of vertices. The base cases n=1 and n=2 are obvious. For the induction step, we will color the edges in blue and red so that the maximum degree in both blue and red subgraphs are d. Take a vertex u of degree d; such a vertex must exists because also the average degree of the entire graph must be d. If u belongs to the left part, then color all edges incident to u in blue, else color all these edges in red. If we remove the vertex u then the average degree of the resulting graph G is also at most d, and we can color the edges of this graph by the induction hypothesis.

Lemma 4: Let d1. If the maximum average number of zeros in a boolean n×n matrix A=(ai,j) is at most d, then rk(A)=O(d2ln2n).

Proof: Consider the bipartite n×n graph G with (i,j) being an edge iff ai,j=0. Then the maximum average degree of G is at most d. By Lemma 3, we can write G=G1G2, where the maximum degree of the vertices on the left part of G1, and the maximum degree of the vertices on the right part of G2 is d. Let A1 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.

Stasys
fuente
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.

Alexander S. Kulikov
fuente
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