Considere o seguinte modelo de circuito simples monótono: cada porta é apenas um OR binário. Qual é a complexidade de uma função f ( x ) = A x emf(x)=Ax que AA é uma matriz booleana n × nn×n com O ( n )O(n) 0's? Pode ser calculado por circuitos OR de tamanho linear?
Mais formalmente, ff é uma função de nn para nn bits. A ii -ésima saída de ff é ⋁ n j = 1 ( A i j ∧ x j )⋁nj=1(Aij∧xj)(isto é, um OR do subconjunto de bits de entrada dadas pelaiilinha de -ésimoUmA).
Observe que O ( n )O(n) 0's dividem as linhas de AA em intervalos de O ( n )O(n) (subconjuntos que consistem em elementos consecutivos de [ n ][n] ). Isso torna possível empregar estruturas de dados de consulta de intervalo conhecidas. Por exemplo, uma estrutura de dados de tabela esparsa pode ser transformada em um circuito OR do tamanho O ( n log n )O(nlogn) . O algoritmo de Yao para consultas de operadores de semigrupos de alcance pode ser transformado em um circuito quase linear (do tamanho O ( α ( n ) ⋅ n )O(α(n)⋅n) ondeα ( n )α(n) é inverso de Ackermann)
Em particular, nem sei como construir um circuito de tamanho linear para um caso especial em que cada linha de AA contém exatamente dois zeros. Embora o caso de exatamente um zero em cada linha seja fácil. (Cada função de saída pode ser calculada por um OR de um prefixo [ 1 .. k - 1 ][1..k−1] e um sufixo [ k + 1 .. n ][k+1..n] , que pode ser pré-computado por 2 n2n OR-gates.)
Respostas:
Esta é uma resposta parcial (afirmativa) no caso em que temos um limite superior no número de zeros em todas as linhas ou colunas.
Um retângulo é uma matriz booleana que consiste em uma submatriz all-1 e possui zeros em outro lugar. Um OR-rank r k ( A ) de uma matriz booleana é o menor número r de retângulos, de modo que A possa ser escrito como um OR (componente a componente) desses retângulos. Ou seja, cada entrada de A é uma entrada em pelo menos um dos retângulos e cada entrada de A é entrada de 0 em todos os retângulos. Observe que log r k ( A ) é exatamente a complexidade de comunicação não determinística da matriz Ark(A) r A A A logrk(A) A (onde Alice obtém linhas e colunas Bob). Como OP escreveu, toda matriz × n m × n A = (m×n b a i , j ) define um mapeamento y = A x , onde y i = ⋁ n j = 1 a i , j x j para i = 1 , … , m . Ou seja, tomamos um produto de vetor de matriz sobre o semiamento booleano.
A=(ai,j) y=Ax yi=⋁nj=1ai,jxj i=1,…,m
O seguinte lema é devido a Pudlák e Rödl; veja a Proposição 10.1 neste artigo ou o Lema 2.5 deste livro para uma construção direta.
Também temos o seguinte limite superior no ranking OR de matrizes densas. O argumento é uma variação simples da usada por Alon neste artigo .
Prova: Construa uma submatriz aleatória all- 1 R escolhendo cada linha independentemente com a mesma probabilidade p = 1 / ( d + 1 ) . Seja eu o subconjunto aleatório obtido de linhas. Então deixe- R = I × J , onde J é o conjunto de todas as colunas de A que não têm zeros nas linhas em que eu .1 R p=1/(d+1) I R=I×J J A I
A 11 -entry (i,j)(i,j) of AA is covered by RR if ii was chosen in
II and none of (at most dd ) rows with a 00 in the jj -th column
was chosen in II . Hence, the entry (i,j)(i,j) is covered with probability at least p(1−p)d≥pe−pd−p2d≥p/ep(1−p)d≥pe−pd−p2d≥p/e .
If we apply this procedure rr times to get rr rectangles,
then the probability that (i,j)(i,j) is covered by none of these
rectangles does not exceed (1−p/e)r≤e−rp/e(1−p/e)r≤e−rp/e . By the union bound, the
probability that some 11 -entry of AA remains uncovered is at most
|A|⋅e−rp/e|A|⋅e−rp/e , which is smaller than 11 for r=O(dln|A|)r=O(dln|A|) .
◻□
I guess that a similar upper bound as in Lemma 2 should also hold when dd is the average number of 11 s 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.
Proof: Induction on the number nn of vertices. The base cases n=1n=1 and n=2n=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≤d . Take a vertex uu of degree ≤d≤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. ◻
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=G1∪G2, 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=A1∧A2 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.
fonte
(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×(L∪R)) 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(1−2−d) 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×(L∪R). This gives a recurrence relation Cd(n)≤an+2⋅Cd−1(n(1−2−d))+Cd(2−dn). This, in turn, implies that Cd(n)≤f(d)⋅n. The function f(d) is exponential, but still.
fonte