Complexité du circuit OR d'un opérateur linéaire dense


14

Considérez le modèle de circuit monotone simple suivant: chaque porte est juste un OU binaire. Quelle est la complexité d'une fonction f ( x ) = A xf(x)=AxAA est une matrice booléenne n × nn×n avec O ( n )O(n) 0? Peut-il être calculé par des circuits OR de taille linéaire?

Plus formellement, ff est une fonction de nn à nn bits. La ii ième sortie de ff est n j = 1 ( A i jx j )nj=1(Aijxj) ( par exemple, un OU du sous - ensemble de bits d'entrée fournis par la -ième rangée de ).iiAA

Notez que 0 divise les lignes de en plages (sous-ensembles composés d'éléments consécutifs de ). Cela permet d'utiliser des structures de données d'interrogation de plage connues. Par exemple, une structure de données de table clairsemée peut être transformée en un circuit OU de taille . L'algorithme de Yao pour les requêtes d'opérateurs de semi-groupe de gamme peut être transformé en un circuit presque linéaire (de taille où est Ackermann inverse)O(n)O(n)AAO(n)O(n)[n][n]O(nlogn)O(nlogn)O(α(n)n)O(α(n)n)α(n)α(n)

En particulier, je ne sais même pas comment construire un circuit de taille linéaire pour un cas spécial où chaque ligne de contient exactement deux zéros. Alors que le cas d'exactement un zéro dans chaque ligne est facile. (Chaque fonction de sortie peut être calculée par un OU d'un préfixe et d'un suffixe , qui peuvent être précalculés par portes OU.)AA[1..k1][1..k1][k+1..n][k+1..n]2n2n


3
Une limite supérieure est connue: elle est au plus rk (A) fois n divisé par log n, où rk (A) est le rang OR d'une matrice booléenne A (= nombre minimum de toutes les 1 sous-matrices dont le OR coïncide avec A ). Voir le lemme 2.5 dans ce livre . Alors, quelle peut être la taille (au maximum) du rang booléen d'une matrice nxn avec O (n) zéros?
Stasys

@Stasys Merci, Stasys! Déjà pour la matrice à diagonale nulle, le rang OR est linéaire, non?
Alexander S.Kulikov

2
Le rang OR de votre matrice (zéro diagonale et 1s ailleurs) est au plus 2 \ log n: étiquetez les lignes / colonnes par des chaînes binaires de longueur \ log n, et considérez les rectangles {(r, c): r (i) = a, c (i) = 1-a} pour a = 0,1. Notez également que le lemme 2.5 est une limite supérieure . Une borne inférieure en termes de rang OR est donnée en Thm. 3.20. En outre, le log de rang OR est exactement la complexité de communication non déterministe des matrices.
Stasys

@Stasys oh, oui, c'est vrai!
Alexander S.Kulikov

Réponses:


7

Il s'agit d'une réponse partielle (affirmative) dans le cas où nous avons une limite supérieure sur le nombre de zéros dans chaque ligne ou dans chaque colonne.

Un rectangle est une matrice booléenne composée d'une sous-matrice tout-1 et comportant des zéros ailleurs. Un rang OR r k ( A ) d'une matrice booléenne est le plus petit nombre r de rectangles tels que A peut être écrit comme un (composant) OU de ces rectangles. Autrement dit, chaque entrée 1 de A est une entrée 1 dans au moins un des rectangles, et chaque entrée 0 de A est une entrée 0 dans tous les rectangles. Notez que log r k ( A ) est exactement la complexité de communication non déterministe de la matrice Ark(A)rAAAlogrk(A)A(où Alice obtient des lignes et des colonnes Bob). Comme OP l'a écrit, chaque matrice booléenne m × n A = ( a i , j ) définit un mappage y = A x , où y i = n j = 1 a i , j x j pour i = 1 , , m . Autrement dit, nous prenons un produit vecteur matriciel sur le semi-booléen. m×nA=(ai,j)y=Axyi=nj=1ai,jxji=1,,m

Le lemme suivant est dû à Pudlák et Rödl; voir la proposition 10.1 dans cet article ou le lemme 2.5 dans ce livre pour une construction directe.

Lemme 1: Pour chaque matrice booléenne n × n A , le mappage y = A x peut être calculé par un circuit OU de fanin illimité de profondeur 3 en utilisant au plus O ( r k ( A ) n / log n ) fils. n×nAy=AxO(rk(A)n/logn)

Nous avons également la borne supérieure suivante sur le rang OR des matrices denses. L'argument est une simple variation de celui utilisé par Alon dans cet article .

Lemme 2: Si chaque colonne ou chaque ligne d'une matrice booléenne A contient au plus d zéros, alors r k ( A ) = O ( d ln | A | ) , où | A | est le nombre de 1 s en A . Adrk(A)=O(dln|A|)|A|1A

Preuve: Construisez une sous-matrice R aléatoire tout en 1 en choisissant chaque ligne indépendamment avec la même probabilité p = 1 / ( d + 1 ) . Soit I le sous-ensemble aléatoire de lignes obtenu. Alors , que R = I × J , où J est l'ensemble de toutes les colonnes de A qui n'ont pas de zéros dans les lignes de I . 1Rp=1/(d+1)IR=I×JJAI

A 1 -entrée ( i , j ) de A est couvert par R si i a été choisi en I et aucun des (au plus d ) des rangées avec un 0 dans la j -ième colonne a été choisie en I . Par conséquent, l'entrée ( i , j ) est couverte avec une probabilité d'au moins p ( 1 - p ) dp e - p d - p 2 d1(i,j)ARiId0jI(i,j)p / e . Si nous appliquons cette procédure r fois pour obtenir r rectangles, alors la probabilité que ( i , j ) ne soit couverte par aucun de ces rectangles ne dépasse pas ( 1 - p / e ) re - r p / e . À la limite de l'union, la probabilité qu'uneentrée de 1 de A reste découverte est au plus | A | e - r p / ep(1p)dpepdp2dp/err(i,j)(1p/e)rerp/e1A|A|erp/e, qui est inférieur à 1 pour r = O ( d ln | A | ) . 1r=O(dln|A|)

Corollaire: si chaque colonne ou chaque ligne d'une matrice booléenne A contient au plus d zéros, le mappage y = A x peut être calculé par un circuit OU de fanin illimité de profondeur 3 utilisant des fils O ( d n ) . Ady=AxO(dn)

Je suppose qu'une limite supérieure similaire à celle du lemme 2 devrait également tenir lorsque d est le nombre moyen de 1 s dans une colonne (ou dans une rangée). Il serait intéressant de le montrer.d1


Remarque: (ajouté le 04.01.2018) Un analogue r k ( A ) = O ( d 2 log n ) du lemme 2 est également valable lorsque d est le nombre moyen maximal de zéros dans une sous-matrice de A , où le nombre moyen de zéros dans une matrice r × s est le nombre total de zéros divisé par s + r . Cela découle du théorème 2 de N. Eaton et V. Rödl ;, Graphs of small dimension, Combinatorica 16 (1) (1996) 59-85 . Une limite supérieure légèrement pirerk(A)=O(d2logn)dAr×ss+rr k ( A ) = O ( d 2 ln 2 n ) peut être dérivé directement du lemme 2 comme suit.rk(A)=O(d2ln2n)

Lemme 3: Soit d 1 . Si chaque sous-graphe couvrant un graphe biparti G a un degré moyen d , alors G peut être écrit comme une union G = G 1G 2 , où le degré gauche maximal de G 1 et le degré droit maximal de G 2 sont d . d1GdGG=G1G2G1G2d

Preuve: Induction sur le nombre n de sommets. Les cas de base n = 1 et n = 2 sont évidents. Pour l'étape d'induction, nous colorerons les bords en bleu et rouge afin que le degré maximum dans les sous-graphiques bleu et rouge soit d . Prenez un sommet u de degré d ; un tel sommet doit exister parce que le degré moyen de l'ensemble du graphe doit également être d . Si u appartient à la partie gauche, coloriez toutes les arêtes incidentes à u en bleu, sinon colorez toutes ces arêtes en rouge. Si l'on supprime le sommet unn=1n=2dudduuu then the average degree of the resulting graph GG is also at most dd, and we can color the edges of this graph by the induction hypothesis.

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

Proof: Consider the bipartite n×nn×n graph GG with (i,j)(i,j) being an edge iff ai,j=0ai,j=0. Then the maximum average degree of GG is at most dd. By Lemma 3, we can write G=G1G2G=G1G2, where the maximum degree of the vertices on the left part of G1G1, and the maximum degree of the vertices on the right part of G2G2 is dd. Let A1A1 and A2A2 be the complements of the adjacency matrices of G1G1 and G2G2. Hence, A=A1A2A=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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.