Dies ist eine teilweise (bejahende) Antwort in dem Fall, dass wir in jeder Zeile oder in jeder Spalte eine Obergrenze für die Anzahl der Nullen haben.
Ein Rechteck ist eine boolesche Matrix, die aus einer all-1-Submatrix besteht und an anderer Stelle Nullen aufweist. Ein OR-Rang r k ( A ) einer Booleschen Matrix ist die kleinste Anzahl r von Rechtecken, so dass A als (komponentenweises) OR dieser Rechtecke geschrieben werden kann. Das heißt, jeder 1-Eintrag von A ist ein 1-Eintrag in mindestens einem der Rechtecke, und jeder 0-Eintrag von A ist ein 0-Eintrag in allen Rechtecken. Beachten Sie, dass log r k ( A ) genau die nicht deterministische Kommunikationskomplexität der Matrix A istrk(A)rAAAlogrk(A)A(wo Alice Zeilen und Bob Spalten bekommt). Als OP geschrieben, jede Boolesche m × n Matrix A = ( a i , j ) definiert eine Abbildung Y = A x , wobei y i = ⋁ n j = 1 a i , j x j für i = 1 , ... , m . Das heißt, wir nehmen ein Matrix-Vektor-Produkt über das Boolesche Semiren.
m×nA=(ai,j)y=Axyi=⋁nj=1ai,jxji=1,…,m
Das folgende Lemma stammt von Pudlák und Rödl; Siehe Proposition 10.1 in diesem Artikel
oder Lemma 2.5 in diesem Buch für eine direkte Konstruktion.
Lemma 1: Für jede boolesche n × n- Matrix A kann die Abbildung y = A x durch eine unbegrenzte Fanin-ODER-Schaltung der Tiefe 3 unter Verwendung von höchstens O ( r k ( A ) ⋅ n / log n ) -Drähten berechnet werden .
n×nAy=AxO(rk(A)⋅n/logn)
Wir haben auch die folgende Obergrenze für den OR-Rang von dichten Matrizen. Das Argument ist eine einfache Variation des von Alon in diesem Artikel verwendeten .
Lemma 2: Wenn jede Spalte oder jede Zeile einer Booleschen Matrix A höchstens d Nullen enthält, dann ist r k ( A ) = O ( d ln | A | ) , wobei | A | ist die Anzahl von 1 s in A .
Adrk(A)=O(dln|A|)|A|1A
Beweis:
Konstruieren Sie eine zufällige all- 1- Submatrix R, indem Sie jede Zeile einzeln mit der gleichen Wahrscheinlichkeit p = 1 / ( d + 1 ) auswählen . Sei ich die erhaltene zufällige Teilmenge von Zeilen. Dann sei R = I × J , wobei J die Menge aller Spalten von A ist , die keine Nullen in den Zeilen in I haben .
1Rp=1/(d+1)IR=I×JJAI
Ein 1- Eintrag ( i , j ) von A wird von R abgedeckt, wenn i in
I gewählt wurde und keine der (höchstens d ) Zeilen mit einer 0 in der j- ten Spalte in I gewählt wurde . Daher wird der Eintrag ( i , j ) wird mit einer Wahrscheinlichkeit von mindestens abgedeckt p ( 1 - p ) d ≥ p e - p d - p 2 d ≥1(i,j)ARiId0jI(i,j)p / e . Wenn wir diese Prozedur r- malanwenden, um r Rechtecke zu erhalten,überschreitetdie Wahrscheinlichkeit, dass ( i , j ) von keinem dieser Rechtecke abgedeckt wird, nicht ( 1 - p / e ) r ≤ e - r p / e . Nach der Vereinigungsgrenzebeträgtdie Wahrscheinlichkeit, dass ein 1 -Eintrag von A aufgedeckt bleibt, höchstens
| A | ⋅ e - r p / ep(1−p)d≥pe−pd−p2d≥p/err(i,j)(1−p/e)r≤e−rp/e1A|A|⋅e−rp/e, der für r = O kleiner als 1 ist ( d ln | A | ) .
◻1r=O(dln|A|)□
Folgerung: Wenn jede Spalte oder jede Zeile einer Booleschen Matrix A höchstens d Nullen enthält, kann die Abbildung y = A x durch eine unbegrenzte Fan-in-ODER-Schaltung der Tiefe 3 unter Verwendung von O ( d n ) -Drähten berechnet werden
.
Ady=AxO(dn)
Ich vermute, dass eine ähnliche obere Schranke wie in Lemma 2 auch gelten sollte, wenn d die durchschnittliche Anzahl von 1 s in einer Spalte (oder in einer Reihe) ist. Es wäre interessant, dies zu zeigen.d1
Bemerkung: (hinzugefügt am 04.01.2018) Ein Analogon r k ( A ) = O ( d 2 log n ) von Lemma 2 gilt auch, wenn d die maximale durchschnittliche Anzahl von Nullen in einer Untermatrix von A ist , wobei die durchschnittliche Anzahl von Nullen in Eine r × s- Matrix ist die Gesamtzahl der Nullen geteilt durch s + r . Dies folgt aus Satz 2 in N. Eaton und V. Rödl ;, Graphs of small dimension, Combinatorica 16 (1) (1996) 59-85 . Eine etwas schlechtere Obergrenzerk(A)=O(d2logn)dAr×ss+rrk(A)=O(d2ln2n)rk(A)=O(d2ln2n) can be derived directly from Lemma 2 as follows.
Lemma 3: Let d≥1d≥1. If every spanning subgraph of a bipartite graph GG has average degree ≤d≤d, then GG can be written as a union G=G1∪G2G=G1∪G2, where the maximum left degree of G1G1 and the maximum right degree of G2G2 are ≤d≤d.
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≤d. If uu belongs to the left part, then color all edges incident to uu in blue, else color all these edges in red. If we remove the vertex uu 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 d≥1d≥1. 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=G1∪G2G=G1∪G2, 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 ≤d≤d.
Let A1A1 and A2A2 be the complements of the adjacency matrices of G1G1 and G2G2.
Hence, A=A1∧A2A=A1∧A2 is a componentwise AND of these matrices.
The maximum number of zeros in every row of A1A1 and in every column of A2A2 is at most dd. Since rk(A)≤rk(A1)⋅rk(A2)rk(A)≤rk(A1)⋅rk(A2), Lemma 2 yields rk(A)=O(d2ln2n)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)d=d(A) to be the average number of zeros in the entire matrix AA (not the maximum of averages over all submatrices), then Lemma 2 can badly fail. Let m=√nm=n−−√, and put an identity m×mm×m matrix in, say left upper corner of AA, and fill the remaining entries by ones. Then d(A)≤m2/2n<1d(A)≤m2/2n<1 but rk(A)≥mrk(A)≥m, which is exponentially larger than ln|A|ln|A|. Note, however, that the OR complexity of this matrix is very small, is O(n)O(n). So, direct arguments (not via rank) can yield much better upper bounds on the OR complexity of dense matrices.