Рассмотрим следующую простую модель монотонной схемы: каждый элемент - это просто двоичное ИЛИ. Какова сложность функции где - булева матрица с 0? Может ли он быть рассчитан по линейным размерам OR-цепей?f ( x ) = A x
Более формально, является функцией от до n битов. Я -ый выход ф вне \ bigvee_ {j = 1} ^ {N} (A_ {IJ} \ земельного x_j) (то есть, ИЛИ подмножеств входных бит , заданных я -й строкой А ).f
Обратите внимание, что 0 разбивает строки на диапазоны (подмножества, состоящие из последовательных элементов ). Это позволяет использовать известные структуры данных запроса диапазона. Например, структура данных разреженной таблицы может быть преобразована в схему OR размера . Алгоритм Яо для запросов операторов полугруппы диапазонов можно превратить в почти линейную схему (размером где - обратный Аккерманн)O ( n )
В частности, я даже не знаю, как построить схему линейного размера для особого случая, когда каждая строка содержит ровно два нуля. Хотя в случае ровно одного нуля в каждом ряду все просто. (Каждая функция вывода может быть вычислена с помощью ИЛИ префикса и суффикса , который может быть предварительно вычислен с помощью ИЛИ-вентилей.)A [ 1 .. k - 1 ] [
источник
Ответы:
Это частичный (утвердительный) ответ в случае, когда у нас есть верхняя граница числа нулей в каждой строке или в каждом столбце.
Прямоугольник является булевой матрицей , состоящей из одного все-1 подматрицы и имеющие нули в других местах. OR-ранг r k ( A ) булевой матрицы - это наименьшее число r прямоугольников, так что A можно записать как (компонентно) OR этих прямоугольников. Таким образом, каждая 1-запись A является 1-позицией по меньшей мере в одном из прямоугольников, и каждая 0-запись A является 0-позицией во всех прямоугольниках. Обратите внимание, что log r k ( A ) является именно недетерминированной коммуникационной сложностью матрицы Ar k ( A ) р A A A журналr k ( A ) A (где Алиса получает строки и столбцы Боба). Как писал OP, каждая булева матрица m × n A = ( a i , j ) определяет отображение y = A x , где y i = ⋁ n j = 1 a i , j x j для i = 1 , … , m . То есть мы берем матрично-векторное произведение над логическим полукольцом.
м × н А = ( ая , дж) Y= A x Yя= ⋁Nj=1ai,jxj i=1,…,m
Следующая лемма принадлежит Пудлаку и Редлу; см. предложение 10.1 в этой статье или лемму 2.5 в этой книге для прямого построения.
У нас также есть следующая верхняя оценка OR-ранга плотных матриц. Аргумент - это простая вариация того, что использовал Алон в этой статье .
Доказательство: Постройте случайную все- 1 подматрицу R , выбирая каждую строку независимо с одинаковой вероятностью p = 1 / ( d + 1 ) . Позвольте мне быть полученным случайным подмножеством строк. Тогда пусть R = I × J , где J представляет собой множество всех столбцов A , которые не имеют нулей в строках в I .1 R p=1/(d+1) I R=I×J J A I
1 -Посещение ( я , J ) из А покрывается R , если я не был выбран в I , и ни один из (не более г ) строк с 0 в J -й столбец был выбран в I . Следовательно, запись ( i , j ) покрыта с вероятностью не менее p ( 1 - p ) d ≥ p e - p d - p 2 d ≥1 (i,j) A R i I d 0 j I (i,j) п / э . Если мы применяем эту процедуру r раз для получения r прямоугольников, то вероятность того, что ( i , j ) не покрыт ни одним из этих прямоугольников, не превышает ( 1 - p / e ) r ≤ e - r p / e . В силу границы объединения вероятность того, что некоторый 1- вход A останется непокрытой, не
превосходит | A | ⋅ e - r p / ep(1−p)d≥pe−pd−p2d≥p/e r r (i,j) (1−p/e)r≤e−rp/e 1 A |A|⋅e−rp/e , который меньше 1 при r = O ( d ln | A | ) .
◻1 r=O(dln|A|) □
Я предполагаю, что аналогичная верхняя граница, как в лемме 2, должна также выполняться, когда d является средним числом 1 с в столбце (или в строке). Было бы интересно показать это.d 1
Замечание: (добавлено 04.01.2018) Аналог r k ( A ) = O ( d 2 log n ) леммы 2 также имеет место, когда d - максимальное среднее число нулей в подматрице A , где среднее число нулей в давал R × сек матрицей является общим числом нулей , разделенных на s + г . Это следует из теоремы 2 Н. Итона и В. Рёдля; «Графики малой размерности», Combinatorica 16 (1) (1996) 59-85 . Немного хуже верхняя границаrk(A)=O(d2logn) d A r×s s+r r k ( A ) = O ( d 2 ln 2 n ) можно вывести непосредственно из леммы 2 следующим образом.rk(A)=O(d2ln2n)
Доказательство: Индукция по числу n вершин. Базовые случаи n = 1 и n = 2 очевидны. Для шага индукции мы закрасим края синим и красным, чтобы максимальный градус как в синем, так и в красном подграфах был ≤ d . Возьмем вершину u степени ≤ d ; такая вершина должна существовать, потому что средняя степень всего графа должна быть ≤ d . Если u принадлежит левой части, то все ребра, наложенные на вас, закрашиваем синим, а все эти ребра - красным. Если мы удалим вершину иn n=1 n=2 ≤d u ≤d ≤d u u u 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. ◻□
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.
источник
(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.
источник